Дипломная (вкр): Разработка блока управления шлагбаумом с использованием сетей мобильной связи GSM

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Фрагмент текста программы терминала для компьютеров с процессорами х86 и операционной системой Windows:

using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.IO.Ports;System.IO;ERNC_COMPort

{partial class Form1 : Form

{

// string str;void SetTextCallback(string text);Form1()

{();

}void Form1_Load(object sender, EventArgs e)

{

{[] availablePorts = SerialPort.GetPortNames();(string port in availablePorts)

{.Items.Add(port);

}.Text = comboBox5.Items[0].ToString();

// comboBox4.Text = "1";.StopBits = StopBits.One;.DataBits = 8;.BaudRate = 115200;.PortName = comboBox5.Text;.Parity = Parity.None;

}(Exception e9)

{.Show(e9.Message);

}

}void button1_Click(object sender, EventArgs e)

{

{.Open();(serialPort1.IsOpen)

{.Enabled = false;.Enabled = true;.Enabled = false;_load.Enabled = true;_save.Enabled = true;

}

}(Exception e1)

{.Show(e1.Message);

}

}void comboBox5_SelectedIndexChanged(object sender, EventArgs e)

{.Text = comboBox5.SelectedItem.ToString();.PortName = comboBox5.Text;

}void button5_Click(object sender, EventArgs e)

{

{.Close();(!serialPort1.IsOpen)

{.Enabled = true;.Enabled = false;.Enabled = true;_load.Enabled = false;_save.Enabled = false;

}

}(Exception e2)

{.Show(e2.Message);

}

}void N_tel_list_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)

{(N_tel_list.CurrentCell.ColumnIndex == 0)

{tb = (TextBox)e.Control;.KeyPress += new KeyPressEventHandler(tb_KeyPress);

}

{tb = (TextBox)e.Control;.KeyPress -= tb_KeyPress;

}

}tb_KeyPress(object sender, KeyPressEventArgs e)

{((!Char.IsNumber(e.KeyChar) && (e.KeyChar != '-') && (e.KeyChar != ',')))

{((e.KeyChar != (char)Keys.Back) || (e.KeyChar != (char)Keys.Delete))

{ e.Handled = true; }

}

}void bt_add_Click(object sender, EventArgs e)

{_tel_list.Rows.Add();_N_num.Text = Convert.ToString(N_tel_list.Rows.Count);_tel_list.Rows[N_tel_list.Rows.Count - 1].Cells[0].Value = Convert.ToUInt32(tb_add.Text);

}void bt_del_Click(object sender, EventArgs e)

{(int i = 0; i < N_tel_list.SelectedRows.Count; i++)

{_tel_list.Rows.RemoveAt(N_tel_list.SelectedRows[0].Index);

}_N_num.Text = Convert.ToString(N_tel_list.Rows.Count);

}void bt_save_Click(object sender, EventArgs e)

{[] com = new byte[1];[] mas_N_tel = new byte[4];[] mas_index = new byte[2];i;[0] = 0x01;_index[0] = (byte)(N_tel_list.Rows.Count);_index[1] = (byte)(N_tel_list.Rows.Count >> 8);.Write(com, 0, 1);.Write(mas_index, 0, mas_index.Length);(i = 0; i < N_tel_list.Rows.Count; i++)

{N_tel = Convert.ToUInt32(N_tel_list.Rows[i].Cells[0].Value);_N_tel[0] = (byte)(N_tel);_N_tel[1] = (byte)(N_tel >> 8);_N_tel[2] = (byte)(N_tel >> 16);_N_tel[3] = (byte)(N_tel >> 24);.Write(mas_N_tel, 0, mas_N_tel.Length);

}

}void bt_load_Click(object sender, EventArgs e)

{[] com = new byte[3];[] in_mas = new byte[60000];[] N_tel = new uint[15000];[] mas_N_tel = new byte[4];[] mas_index = new byte[2];i,j=0,N_rec;(N_tel_list.Rows.Count != 0) while (N_tel_list.Rows.Count != 0) N_tel_list.Rows.Remove(N_tel_list.Rows[N_tel_list.Rows.Count - 1]);[0] = 0x03;[1] = 0x00;[2] = 0x00;.Write(com, 0, 3);_rec = (int)serialPort1.ReadByte() | (int)serialPort1.ReadByte() << 8;(i = 0; i < N_rec*4; i++) in_mas[i] = (byte)(serialPort1.ReadByte());= 0;(j = 0; j < N_rec; j++)

{_tel[j] = (uint)(in_mas[i]) | (uint)(in_mas[i+1]) << 8 | (uint)(in_mas[i+2]) << 16 | (uint)(in_mas[i+3]) << 24;_tel_list.Rows.Add();_tel_list.Rows[N_tel_list.Rows.Count - 1].Cells[0].Value = N_tel[j];= i + 4;

}_N_num.Text = Convert.ToString(N_tel_list.Rows.Count);

}void bt_search_Click(object sender, EventArgs e)

{N_tel_search = Convert.ToUInt32(tb_search.Text);(int i = 0; i < N_tel_list.Rows.Count; i++) if (Convert.ToUInt32(N_tel_list.Rows[i].Cells[0].Value) == N_tel_search)

{_tel_list.CurrentCell = N_tel_list[0, i];

break;

}

}

}

}

Выводы по разделу

В ходе выполнения специальной части проекта был создан блок управления шлагбаумом с использованием GSM сети, обладающий следующими характеристиками:

возможность хранения номеров до 19000 абонентов;

возможность корректировки списка номеров телефонов дистанционно с использованием Wi-Fi сети;

возможность считывания и имитации сигналов пультов практически любых шлагбаумов;

лёгкая интеграция в существующие системы без доработки конструкции;

возможность автономной работы при временном отсутствии напряжения питания;

за счёт универсальности конструкции возможность установки, как в помещениях, так и на улице, в любом удобном для заказчика месте в зоне действия передатчика 433 Мгц.

блок управление шлагбаум сигнал

11. Экономическая часть

.1 Планирование разработки блока управления шлагбаумом с построением ленточного графика

.1.1 Определение трудоёмкости и продолжительности работ по созданию блока управления шлагбаумом

Процесс разработки включает: обзор и анализ аналогичных систем управления шлагбаумами, анализ и выбор аппаратных и программных средств для создания системы; отладка; испытание. Согласно ГОСТ 23501.1-79 регламентируются следующие стадии проведения исследования:

техническое задание - ТЗ (ГОСТ 23501.2-79);

эскизный проект - ЭП (ГОСТ 23501.5-80);

технический проект - ТП (ГОСТ 23501.6-80);

рабочий проект - РП (ГОСТ 23501.11-81);

внедрение - ВП (ГОСТ 23501.15-81).

В таблице 11.1. приведён перечень работ, выполняемых на всех стадиях разработки БУШ.

Таблица 11.1 - Состав работ и стадии разработки БУШ

Стадии разработки

Перечень работ

Техническое задание

- постановка задачи; - подбор литературы; - сбор исходных данных; - определение требований к системе; - определение этапов, и сроков.

Эскизный проект

- анализ аналогичных систем; - разработка общей структуры системы; - детализация подсистем в первом приближении; -документирование.

Технический проект

- разработка структуры системы; - выбор и описание элементов системы; - разработка управляющей программы.

Рабочий проект

- описание технических особенностей элементов системы; - программирование; - разработка программной документации; - согласование и утверждение программы и методики испытаний.

Внедрение

- опытная эксплуатация; - анализ данных, полученных в результате опытной эксплуатации; - корректировка технической документации по результатам испытаний.


Трудоёмкость разработки БУШ на каждой из стадий определяется как сумма трудоёмкостей входящих в них работ, оцениваемых экспертным путём в человеко-днях, и носит вероятностный характер, так как зависит от множества трудно-учитываемых факторов.

Трудоёмкость каждой отдельной работы определяется по формуле (3.1).

 ,                                                    (3.1)

где

tmin - минимально возможная трудоёмкость выполнения данной работы в человеко-днях;

tmax - максимально возможная трудоёмкость выполнения этой работы в человеко-днях.

Продолжительность каждого вида работ в календарных днях (Ti) определяется по формуле (3.2), в днях.

,                                                                 (3.2)

где

ti - трудоёмкость работ, человек-дней;

Чi - численность исполнителей, человек;

Kвых - коэффициент, учитывающий выходные и праздничные дни, вычисляется по формуле (3.3).

,                                                                (3.3)

где

Ккал. - число календарных дней;

Краб. - число рабочих дней.

Для расчёта принимается среднее значение Kвых=1,47.

Полный список видов и этапов работ по созданию программного продукта, экспертные оценки и расчётные величины их трудоёмкости, а также продолжительность каждого вида работ, рассчитанные по формулам (3.1) и (3.2), представлены в таблице 11.2.

Таблица 11.2. - Расчёт трудоёмкости и продолжительности работ по созданию системы мониторинга.

№ п/п

Наименование стадий и работ

Трудоёмкость, человеко-дни

Количество исполнителей, чел.

Продолжи- тельность, календарные дни



tmin

tmax

ti

Чi

Тi

1

2

3

4

5

6

7

Техническое задание

1

Постановка задачи

3

3

3

2

2,2

2

Подбор литературы

4

4

4

1

5,88

3

Сбор исходных данных

5

5

5

1

7,35

4

Определение требований к системе

3

3

3

2

2,2

5

Определение стадий, этапов и сроков разработки системы

2

2

2

2

1,47

Эскизный проект

6

Анализ аналогичных систем

2

2

2

1

2,94

7

Разработка общей структуры системы

2

3

2,4

2

1,77

8

Детализация подсистем в первом приближении

1

2

1,4

2

1,03

9

Документирование

2

3

2,4

1

3,53

Технический проект

10

Разработка структуры системы

5

5

5

1

7,35

11

Выбор и описание элементов системы

2

3

2,4

1

3,53

12

Разработка управляющей программы

5

5

5

1

7,35

Рабочий проект

13

Описание технических особенностей элементов системы

3

4

3,4

1

5

14

Программирование

11

13

11,8

1

17,35

15

Разработка программной документации

4

5

4,4

1

6,47

16

Согласование и утверждение программы и методики испытаний

1

2

1,4

2

1,03

Внедрение

17

6

7

6,4

1

9,4

18

Анализ данных, полученных в результате опытной эксплуатации

2

3

2,4

1

3,53

19

Корректировка технической документации по результатам испытаний

2

2

2

1

2,94

Итого



70


93


Таким образом, общая трудоёмкость разработки программного продукта составляет 70 человеко-дней, а их продолжительность - 93 календарных дней.

.1.2 Построение ленточного графика разработки программного продукта

В качестве инструмента планирования работ используем ленточный график. Ленточный график является удобным, простым и наглядным инструментом для планирования работ. Он представляет собой таблицу, где перечислены работы и длительность выполнения каждой из них. Продолжением таблицы является линейный график, построенный в масштабе, наглядно показывающий продолжительность каждой работы в виде отрезков прямых, располагающихся в соответствии с последовательностью выполнения работ.

Ленточный график разработки программного продукта, построенный по данным таблицы 11.2, приведён на рисунке 11.1.

Рисунок 11.1. Ленточный график разработки системы

График позволяет наглядно представить логическую последовательность и взаимосвязь отдельных работ, сроки начала и окончания работ, соблюдение которых обеспечит своевременное выполнение проекта и разработку программного продукта.

11.2 Расчёт сметы затрат на разработку программного обеспечения

Сметная стоимость проектирования и внедрения системы включает в себя затраты, определяемые по формуле (3.4)

Спр=Сосн+Сдоп+Снзп+См+Смаш.вр+Сн;                        (3.4)

где

Спр- стоимость разработки системы;

См - затраты на используемые материалы;

Сосн - основная заработная плата исполнителей;

Сдоп - дополнительная заработная плата исполнителей, учитывающая потери времени на отпуска и болезни (принимается в среднем 10% от основной заработной платы);

Снзп -обязательные начисления на заработную плату;

Сн - накладные расходы включают затраты на управление, уборку, ремонт, электроэнергию, отопление и другие хозяйственные расходы (принимаются в размере 60% от основной и дополнительной заработной платы);

Смаш.вр - стоимость машинного времени.

11.2.1 Основная заработная плата исполнителей

На статью «Заработная плата» относят заработную плату научных, инженерно-технических и других работников, непосредственно участвующих в разработке ПС. Расчёт ведётся по формуле (3.5)

Зисп=Зср*Т ,                                                                       (3.5)

где

Зисп - заработная плата исполнителей (руб.);

Зср - средняя дневная тарифная ставка работника организации разработчика программного продукта (руб./чел.дни);

Т - трудоёмкость разработки ПС (чел./дни).

Зср определяется по формуле (3.6):

Зср=С/Фмес ,                                                                        (3.6)

где:

С - месячная зарплата работника (руб./мес.);

Фмес - среднее количество рабочих дней в месяце (20дн.).

Расчёт затрат на основную заработную плату разработчиков программного продукта приведен в таблице 11.3

Таблица 11.3- Затраты на заработную плату

Исполнитель

Оклад, руб./мес.

Оклад, руб./день

Трудоёмкость, чел. дней

Сумма, руб.

1

2

3

4

5

6

1

Инженер-программист

15000

750

70

52500

2

Руководитель

30000

1500

6

9000

Итого Сосн

76

61500


.2.2 Дополнительная заработная плата

Дополнительная заработная плата на период разработки системы рассчитывается относительно основной и составляет 10% от её величины.

Сдоп=Сосн*0.1=61500*0,1=6150 руб.

.2.3 Расчёт обязательных начислений на заработную плату

Согласно Федеральному закону от 24.12.2009 №212-ФЗ «О страховых взносах в пенсионный фонд Российской Федерации, фонд социального страхования Российской Федерации, федеральный фонд обязательного медицинского страхования и территориальные фонды обязательного медицинского страхования» совокупность фискальной нагрузки на предприятия составляет:

- 30% от суммы основной и дополнительной заработной платы в отношении каждого работника нарастающим итогом с начала года и до 512 000 руб.

10% от суммы основной и дополнительной заработной платы в отношении каждого работника нарастающим итогом с начала года и составляет более 512 000 руб. Величина годовых обязательных начислений на заработную плату (Снзп) определяется по формуле (3.7).

Снзп = (Сосн + Сдоп) * 30%, руб.                             (3.7)

Снзп = (61500 + 6150) *0,3 = 20295 руб.

.2.4 Расчёт расходов на материалы

На эту статью относят все затраты на приобретаемые устройства, магнитные носители данных, бумагу, для печатных устройств, канцтовары и др. Затраты по ним определяются по экспертным оценкам. Расчёт расходов на материалы приведен в таблице 11.4

Таблица 11.4. Расчёт затрат на материалы

Материалы

Количество, штуки

Стоимость, рубли

1

2

3

4

1

Модуль SIM900

1

1587

2

Wi-Fi модуль HLK-RM04

1

1299

3

Договор с оператором сотовой связи + SIM-карта

1

200

4

Передатчик FS1000A

1

1050

5

Li-ion аккумулятор

1

550

6

Пластиковый корпус G1022BF

1

925

7

Микроконтроллер STM32F103C8T6

1

280

8

EEPROM 24C512

1

350

9

Приёмник XY-MK-5V

1

660


Итого, См


6901

Источник: https://www.bibliofond.ru/detail.aspx?id=863934