Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Система мониторинга и обнаружения лесных пожаров (с SMS-оповещениями)

Компоненты и расходные материалы

Модуль Itead Gboard Pro 800 SIM800 GSM / GPRS 3,3 В Системная плата ATmega2560 Для Arduino Starter
× 1
Arduino UNO
× 1
Датчик температуры и влажности DHT11 (3 контакта)
× 2
Перемычки (общие)
× 1

Приложения и онлайн-сервисы

IDE Arduino

Об этом проекте

Процесс обнаружения лесного пожара инициируется на любом из узлов, расположенных на дереве внутри леса. В лесу есть сеть узлов, расположенных на подходящем расстоянии друг от друга, узлы имеют возможность связываться через устройства (в нашем случае RF-модуль) и с помощью Arduino. Если какое-либо изменение выше порогового значения обнаруживается в параметрах атмосферы (повышение температуры, загрязнение воздуха дымом и т. Д.) Рядом с узлом (узлом источника), информация передается в ближайший промежуточный узел, пока не достигает основного / головной терминал. Главный / головной терминал использует модем GSM для передачи информации на сотовый телефон (центр мониторинга лесных пожаров).

ПЕРЕДАТЧИК ФИЗИЧЕСКОЙ МОДЕЛИ

Модуль обнаружения лесных пожаров работает в три этапа. Первый этап состоит в считывании некоторых внешних параметров окружающей среды, таких как температура и дым. Первый этап выполняется с помощью некоторых датчиков, которые используются для распознавания и преобразования аналоговых данных в цифровые. Датчики считывают такие параметры, как температура, влажность и качество воздуха, а затем отправляют эту информацию в следующий ближайший узел. Этот процесс продолжается до тех пор, пока информация не достигнет конечного узла или главного терминала, что является вторым этапом общего процесса. Третий этап - передача информации в пункт лесопожарного контроля.

Каждый узел имеет датчик температуры и влажности, датчик дыма и блок микроконтроллера. Arduino использовался как устройство микроконтроллера. Эти датчики взаимодействуют с Arduino и хранят информацию для процесса сравнения. Для каждого из этих параметров существует предопределенное пороговое значение. Микропроцессор регулярно сравнивает значения датчика с пороговыми значениями. На основе сравнения, если входные значения датчиков превышают пороговое значение, узел передает информацию следующему соседнему узлу, который снова, в свою очередь, передает информацию другому соседнему узлу. Таким образом, в этой модели регулируется поток сообщений.

ФИЗИЧЕСКАЯ МОДЕЛЬ АППАРАТА

ПЕРЕДАТЧИК ФИЗИЧЕСКОЙ МОДЕЛИ

ПОСЛЕДОВАТЕЛЬНОЕ СЧИТЫВАНИЕ В ПОСЛЕДОВАТЕЛЬНОМ МОНИТОРЕ

СООБЩЕНИЯ, ПОЛУЧЕННЫЕ МОДУЛЕМ GSM

Код

  • Коды модулей Arduino на стороне приемника и передатчика
Коды модулей Arduino на стороне приемника и передатчика Python
Этот код настраивает модуль Arduino на принимающей стороне для мониторинга температуры и влажности. Если значения превышают пороговое значение, на базовую станцию ​​отправляется SMS с предупреждением о том же. Если есть рост значения на узле стороны передатчика, то это передается через модуль RF-Transmitter на стороне передатчика Arduino Uno на модуль RF-Receiver на принимающей стороне Arduino Uno. ОБРАТИТЕ ВНИМАНИЕ, что приведенный ниже код состоит из двух частей:одна для "Arduino на стороне приемника", а другая для "Arduino на стороне передатчика"
 ######## (PART-1) ###### Arduino на стороне приемника КОД ######################## // Включить библиотеку амплитудной манипуляции RadioHead # include  #include  / / Включить зависимую библиотеку SPI #include  #include  SoftwareSerial mySerial (4, 3); // Константы # определить DHTPIN 2 // к какому выводу мы подключены # определить DHTTYPE DHT11 // DHT11int smokeA0 =A5; // Ваше пороговое значение int sensorThres =400; // Определение переменных DHT dht (DHTPIN, DHTTYPE); // Инициализируем датчик DHT для нормальной работы Arduino 16 МГц // Variablesfloat hum; // Сохраняет значение влажности float temp; // Сохраняет значение температуры // Определить выходные строки String str_humid; String str_temp; String str_smk; String str_out; // Создание объекта с амплитудной манипуляцией RH_ASK rf_driver; void setup () {pinMode (smokeA0, INPUT); dht.begin (); // Инициализируем объект ASK rf_driver.init (); // Настройка последовательного монитора Serial.begin (9600); mySerial.begin (115200);} недействительный цикл () {задержка (2000); hum =dht.readHumidity (); temp =dht.readTemperature (); Serial.print ("Влажность приемника ="); Serial.print (гул); Serial.print ('\ n'); Серийный принт ('\ n'); Serial.print ("Температура приемника ="); Serial.println (темп); int analogSensor =analogRead (дымА0); String smk; // Проверяет, достигло ли оно порогового значения if (analogSensor> sensorThres) {Serial.print ("Smoke at Receiever"); Serial.print ('\ n'); Серийный принт ('\ n'); smk ="Дым"; } else {Serial.print ("Очистить у получателя"); Serial.print ('\ n'); Серийный принт ('\ n'); smk ="Очистить"; } // Устанавливаем размер буфера ожидаемого сообщения uint8_t buf [20]; uint8_t buflen =sizeof (buf); // Проверяем правильность размера полученного пакета if (rf_driver.recv (buf, &buflen)) {str_out =String ((char *) buf); for (int i =0; i  =60 &&temp>
 =25) {Serial.print ("Пожар обнаружен на приемнике"); mySerial.println ("AT + CMGF =1"); // Устанавливает модуль GSM в текстовый режим delay (1000); // Задержка 1000 миллисекунд или 1 секунда mySerial.println ("AT + CMGS =\" + 918744984131 \ "\ r"); // Заменить x на номер мобильного телефона delay (1000); mySerial.println («ПОЖАРНАЯ ТРЕВОГА !!»); Serial.println ('\ п'); mySerial.println («Пожар на узле-приемнике»); Serial.println ('\ п'); mySerial.println ("Температура:" + Строка (темп)); Serial.print ('\ n'); Серийный принт ('\ n'); mySerial.println ("Влажность:" + строка (шум)); Serial.print ('\ n'); Серийный принт ('\ n'); mySerial.println ("Качество воздуха:" + smk); задержка (100); mySerial.println ((char) 26); // ASCII-код CTRL + Z delay (1000); } if (str_humid.toInt ()> =60 &&str_temp.toInt ()> =25) {Serial.print («Пожар обнаружен на передатчике»); mySerial.println ("AT + CMGF =1"); // Устанавливает модуль GSM в текстовый режим delay (1000); mySerial.println ("AT + CMGS =\" + 918744984131 \ "\ r"); // Заменить x на номер мобильного телефона delay (1000); mySerial.println («ПОЖАРНАЯ ТРЕВОГА !!»); Serial.println ('\ п'); mySerial.println («Пожар на узле передатчика»); Serial.println ('\ п'); mySerial.println ("Температура:" + str_temp); Serial.print ('\ n'); Серийный принт ('\ n'); mySerial.println ("Влажность:" + str_humid); Serial.print ('\ n'); Серийный принт ('\ n'); mySerial.println ("Качество воздуха:" + String (str_smk)); задержка (100); mySerial.println ((char) 26); // ASCII-код CTRL + Z delay (1000); }} ####### (ЧАСТЬ-2) ############ Код Arduino на стороне передатчика ################### ########################################################################### ################## include  #include  #include  // Константы # определить DHTPIN 2 // какой пин мы подключены к # define DHTTYPE DHT11 // DHT11DHT dht (DHTPIN, DHTTYPE); // Инициализируем датчик DHT для нормальной 16 МГц Arduinoint smokeA0 =A5; // Ваше пороговое значение int sensorThres =400; // Определение переменных float hum; // Сохраняет значение влажности в процентах float temp; // Сохраняет значение температуры в Celciusfloat smk; // Определение строк вывода String str_humid; String str_temp; String str_smk; String str_out; // Создание объекта с амплитудной манипуляцией RH_ASK rf_driver; // Инициализируем датчик DHT для нормальной работы Arduino 16 МГц void setup () {dht.begin (); pinMode (smokeA0, ВХОД); // Инициализируем объект ASK rf_driver.init (); } void loop () {задержка (2000); // Задержка, чтобы датчик DHT-22 мог стабилизировать шум =dht.readHumidity (); // Получить значение влажности temp =dht.readTemperature (); // Получение значения температуры // Преобразование влажности в строку str_humid =String (hum); Serial.print (гул); // Преобразование температуры в строку str_temp =String (temp); Serial.print (темп); int analogSensor =analogRead (дымА0); // Проверяет, достигло ли оно порогового значения if (analogSensor> sensorThres) {str_smk ="1"; } еще {str_smk ="0"; } // Объединение влажности и температуры if (str_smk =="1") {str_out =str_humid + "," + str_temp + "," + "Smoke"; } if (str_smk =="0") {str_out =str_humid + "," + str_temp + "," + "Очистить"; } // Составить выходной символ const char * msg =str_out.c_str (); rf_driver.send ((uint8_t *) сообщение, strlen (сообщение)); rf_driver.waitPacketSent (); } 

Схема


Производственный процесс

  1. Мониторинг температуры с помощью Raspberry Pi
  2. Создайте пожарный извещатель за считанные минуты с помощью Samsung SAMIIO, Arduino UNO и Raspberry Pi
  3. Домашняя страница / Система мониторинга отелей с автоматическими элементами управления
  4. Система посещаемости с использованием Arduino и RFID с Python
  5. Робототехническая система для обнаружения человека с использованием Arduino Uno
  6. Мониторинг CO2 с помощью датчика K30
  7. Управление монетоприемником с помощью Arduino
  8. Система сигнализации Arduino:SERENA
  9. Автоматическая система полива растений с Arduino
  10. Система управления лесами IoT двойного назначения