Оглавление:

Мониторинг предприятия с помощью SMS-оповещений: 5 шагов
Мониторинг предприятия с помощью SMS-оповещений: 5 шагов

Видео: Мониторинг предприятия с помощью SMS-оповещений: 5 шагов

Видео: Мониторинг предприятия с помощью SMS-оповещений: 5 шагов
Видео: Основы Wireshark. Настройка, захват и расшифровка трафика 2024, Ноябрь
Anonim
Мониторинг предприятия с помощью SMS-оповещений
Мониторинг предприятия с помощью SMS-оповещений

Здесь я создаю мониторинг завода с оповещением по SMS. Для этой системы предупреждений сервер не требуется. Это очень дешевый и надежный проект.

Шаг 1: блок-схема системы

Блок-схема системы
Блок-схема системы

В современных теплицах требуется много измерений параметров.

для мониторинга и контроля хорошего качества и продуктивности растений. Но для достижения желаемых результатов в игру вступают некоторые очень важные факторы, такие как температура, влажность, свет и хорошая почва, которые необходимы для лучшего роста растений. Помня об этих параметрах, я построил автоматическую систему мониторинга предприятия через модуль GSM с использованием Arduino. Эта система очень эффективна для выращивания растений хорошего качества. Другой важной частью этого проекта является то, что он полностью автоматический и работает от низкого напряжения, например; Питание 5-12 В постоянного тока.

В настоящее время GSM-модуль широко используется для отправки SMS-сообщений с любыми данными. Здесь, в этом проекте, с помощью модуля SIM900A GSM мы можем хранить информацию о влиянии климата на растения. Система также должна демонстрировать климатические изменения, которые влияют на производительность и качество растений и т. Д. Основная цель создания этого проекта - создание системы автоматического мониторинга растений, в которой модуль GSM отправляет информацию о температуре, влажности, интенсивности света, почве. влага.

Поскольку я гражданин Индии, использовал модуль SIM900A (A означает азиатскую сеть), но вы можете использовать другой тип модуля SIM в зависимости от вашей страны. Коды AT могут отличаться.

Шаг 2: Детали компонента

Деталь компонента
Деталь компонента
Деталь компонента
Деталь компонента
Деталь компонента
Деталь компонента

------------------ Я измеряю четыре типа параметров, которые собираются

обсудить ниже: ------------------

Температура и влажность

Датчик DHT11 используется для измерения температуры и влажности. При высокой температуре и влажности корни растений повреждаются и растения плохо развиваются.

Интенсивность света

Интенсивность света - важный фактор для роста растений. Для определения силы света используется LDR (светозависимый резистор). Интенсивность света измеряется в люксах, поэтому для демонстрации используется определенный или пороговый уровень света 100 люкс.

Влажность почвы

Содержание влаги в почве очень важно для хорошего роста растений. Здесь датчик почвы используется для измерения содержания влаги в почве. Используя этот датчик, мы можем измерять данные о почве как в аналоговом, так и в цифровом виде.

СМС-уведомление:

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

Уведомление отправляется только один раз, пока условие не изменится, чтобы владелец или оператор не получал частые SMS. Следовательно, требуется меньший пакет SMS.

Шаг 3: Принципиальная схема

Принципиальная электрическая схема
Принципиальная электрическая схема

Все эти детали легко доступны на любом сайте интернет-магазина.

или у известного продавца запчастей для электроники. Спецификации всех компонентов доступны в Интернете. Если возникнут трудности, смело обращайтесь на мою почту.

Шаг 4: рабочее видео и файл кода

Финальное рабочее видео проекта

Шаг 5: Код программы

#включают

#включают

ЖК-дисплей LiquidCrystal (2, 3, 4, 5, 6, 7);

dht DHT; #define dht_dpin A1 #define LUX A0 #define грунт A3

поплавок вольт, люкс, значение; int output_value; внутренняя температура, влажность; int lightflag = 0; int humflag = 0; int почвенный флаг = 0; int tempflag = 0; int check; int test, test1; байтовая степень [8] = {0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000};

установка void ()

{Serial.begin (9600); // Инициализируем последовательный порт для связи с GSM-модемом lcd.begin (16, 2); pinMode (почва, ВХОД); lcd.createChar (1, степень); lcd.setCursor (0, 0); lcd.print («Здоровье растений»); lcd.setCursor (0, 1); lcd.print («Мониторинг»); задержка (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print («АГРИ ПРОЕКТ»); lcd.setCursor (0, 1); lcd.print ("Автор С. К. ЧХАЯ"); задержка (1000); lcd.clear (); } void loop () {output_value = analogRead (почва); output_value = карта (output_value, 550, 0, 0, 100); значение = analogRead (ЛЮКС); вольт = (значение / 1023,0) * 5; люкс = ((2500 / Вольт) - 500) / 3,3; задержка (10000); // Даем достаточно времени GSM для регистрации в сети DHT.read11 (dht_dpin); lcd.clear (); lcd.setCursor (0, 0); lcd.print («Температура»); lcd.setCursor (0, 1); lcd.print (температура = DHT.температура); // Данные о температуре на ЖК-дисплее lcd.write (1); lcd.print («C»); задержка (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print («Влажность»); lcd.setCursor (0, 1); lcd.print (влажность = DHT.влажность); // Данные о влажности на ЖК-дисплее lcd.print ("%"); задержка (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print («Свет»); lcd.setCursor (0, 1); lcd.print (люкс); // Световые данные на ЖК-дисплее lcd.print ("LUM"); задержка (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print («Влага»); lcd.setCursor (0, 1); lcd.print (output_value); // Данные о почве на ЖК-дисплее lcd.print ("%"); задержка (1000); lcd.clear ();

если (температура 40) {SendSMS (); // SMS при высокой температуре} if (влажность 40) {SendSMS2 (); // SMS для высокой влажности} if (lux 100) {SendSMS4 (); // SMS для Light high} if (output_value == 950) {SendSMS7 (); // SMS для сухой почвы} else if (output_value! = 950) {SendSMS6 (); // SMS для влажной почвы}} void SendSMS () {if (tempflag == 0) {Serial.println ("AT + CMGF = 1"); задержка (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); задержка (500); Serial.print («Высокая температура»); Serial.print («Темп»); Serial.print (температура); Serial.println («степень C»); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print («Высокая температура»); задержка (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print («Температура»); lcd.setCursor (0, 1); lcd.print (температура); lcd.write (1); lcd.print («C»); задержка (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print («Отправка SMS»); задержка (1000); lcd.clear (); tempflag = 1; check = 0; test = 0; задержка (10); }} void SendSMS1 () {if (tempflag == 1) {Serial.println ("AT + CMGF = 1"); задержка (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); задержка (500); Serial.print («Низкая температура»); Serial.print («Темп»); Serial.print (температура); Serial.println («степень C»); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print («Низкая температура»); задержка (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print («Температура»); lcd.setCursor (0, 1); lcd.print (температура); lcd.write (1); lcd.print («C»); задержка (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print («Отправка SMS»); задержка (1000); lcd.clear (); tempflag = 0; check = 0; test = 0; задержка (10); }} void SendSMS2 () {if (humflag == 0) {Serial.println ("AT + CMGF = 1"); задержка (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); задержка (500); Serial.print ("Влажность высокая"); Серийный отпечаток (влажность); Serial.println ("%"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print («Влажность высокая»); задержка (1000); lcd.setCursor (0, 1); lcd.print («Влажность»); lcd.print (влажность); lcd.print ("%"); задержка (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print («Отправка SMS»); задержка (1000); lcd.clear (); humflag = 1; check = 0; test = 0; задержка (10); }}

void SendSMS3 () {если (humflag == 1) {Serial.println ("AT + CMGF = 1"); задержка (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); задержка (500); Serial.print («Низкая влажность»); Serial.print («Влажность»); Серийный отпечаток (влажность); Serial.println ("%"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print («Низкая влажность»); задержка (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print («Влажность»); lcd.setCursor (0, 1); lcd.print (влажность); lcd.print ("%"); задержка (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print («Отправка SMS»); задержка (1000); lcd.clear (); humflag = 0; check = 0; test = 0; задержка (10); }} void SendSMS4 () {if (lightflag == 0) {Serial.println ("AT + CMGF = 1"); // Для отправки SMS в текстовом режиме delay (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); // Переход на номер телефона назначения delay (500); Serial.print («Хороший СВЕТ»); Serial.print («Интенсивность»); Serial.print (люкс); Serial.println («ЛЮКС»); Serial.println ((char) 26); // останавливающий символ Ctrl + Z lcd.setCursor (0, 0); lcd.print («Хороший свет»); задержка (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print («Интенсивность»); lcd.setCursor (0, 1); lcd.print (люкс); lcd.print («ЛЮКС»); задержка (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print («Отправка SMS»); задержка (1000); lcd.clear (); lightflag = 1; check = 0; test = 0; задержка (10); }} void SendSMS5 () {if (lightflag == 1) {Serial.println ("AT + CMGF = 1"); задержка (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); задержка (500); Serial.print («СЛАБЫЙ СВЕТ»); Serial.print («Интенсивность»); Serial.print (люкс); Serial.println («ЛЮКС»); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print («Низкая освещенность»); задержка (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print («Интенсивность»); lcd.setCursor (0, 1); lcd.print (люкс); lcd.print («ЛЮКС»); задержка (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print («Отправка SMS»); задержка (1000); lcd.clear (); lightflag = 0; check = 0; test = 0; задержка (10); }} void SendSMS6 () {если (почвенный флаг == 0) {Serial.println ("AT + CMGF = 1"); задержка (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); задержка (500); Serial.print («Сухая почва»); Serial.print («Влага»); Serial.print (output_value); Serial.println ("%"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print («Сухая земля»); задержка (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print («Влага»); lcd.setCursor (0, 1); lcd.print (output_value); lcd.print ("%"); задержка (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print («Отправка SMS»); задержка (1000); lcd.clear (); почвенный флаг = 1; check = 0; test = 0; задержка (10); }} void SendSMS7 () {если (почвенный флаг == 1) {Serial.println ("AT + CMGF = 1"); задержка (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); задержка (500); Serial.print («Мокрая почва»); Serial.print («Влага»); Serial.print (output_value); Serial.println ("%"); Serial.println ((char) 26); lcd.clear (); lcd.setCursor (0, 0); lcd.print («Мокрая почва»); задержка (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print («Влага»); lcd.setCursor (0, 1); lcd.print (output_value); lcd.print ("%"); задержка (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print («Отправка SMS»); задержка (1000); lcd.clear (); почвенный флаг = 0; check = 0; test = 0; задержка (10); }}

Рекомендуемые: