Система раннего обнаружения наводнений с использованием Arduino — исходный код
Ранний потоп Мониторинг Система — Исходный код схемы и проекта
Как в развивающихся, так и в неразвивающихся странах наводнение — это масштабное стихийное бедствие, которое приводит к гибели людей и животных, а также к материальному ущербу. Наводнения, вызванные землетрясениями в океанах, ураганами, ливнями и другими стихийными бедствиями, происходят во многих частях земного шара каждый год.
Во время дождя неуправляемая дренажная система в различных географических регионах приводит к наводнениям и гибели многих людей. Если у нас есть какая-то система, которая может дать нам раннее оповещение о наводнении, мы сможем спасти жизни людей. Система, которая использует технологии для обнаружения повышения уровня воды и заблаговременного оповещения людей, чтобы можно было эвакуировать большое количество людей.
Итак, в этом проекте мы представляем вам прототип, который можно использовать для определения уровня воды в пруду, плотине или водохранилище, а затем отправлять оповещение с помощью зуммера. Это всего лишь небольшой прототип, в котором мы собираемся использовать Arduino UNO, ультразвуковой датчик, зуммер, ЖК-дисплей и несколько соединительных проводов.
Связанные проекты:
- Автоматическая система полива и орошения растений — схема, код и отчет о проекте
- Схема оповещения о дожде — проект детектора снега, воды и дождя
Схема раннего обнаружения наводнения
Необходимые компоненты
- Ардуино УНО
- Ультразвуковой датчик HC-SR04
- Зуммер
- ЖК-дисплей 16 × 2
- Перемычка или соединительные провода
Связанные проекты:
- Измерение расстояния с помощью Arduino и ультразвукового датчика
- Регулируемый источник питания с использованием Arduino UNO — схема и код
Теперь давайте рассмотрим компоненты, используемые в этой базовой схеме, один за другим.
Arduino UNO
Arduino — это платформа с открытым исходным кодом, используемая для разработки проектов в области электроники. Его можно легко запрограммировать, стереть и перепрограммировать в любой момент времени. На рынке доступно множество плат Arduino, таких как Arduino UNO, Arduino Nano, Arduino Mega, Arduino lilypad и т. д., которые имеют разные спецификации в зависимости от их использования.
В этом проекте мы собираемся использовать Arduino UNO для автоматического управления бытовой техникой. Он имеет микросхему микроконтроллера ATmega328, работающую на тактовой частоте 16 МГц. Это мощное устройство, которое может работать с протоколами связи USART, I2C и SPI.
Эта плата обычно программируется с помощью программного обеспечения Arduino IDE с использованием кабеля micro USB. ATmega328 поставляется с предварительно запрограммированным встроенным загрузчиком, который упрощает загрузку кода без помощи внешнего оборудования. Он имеет широкое применение в создании проектов или продуктов электроники. Для программирования доски используются языки C и C++, которые очень просты в освоении и использовании.
Связанные проекты:
- Схема индикатора уровня воды — два простых проекта
- Полностью автоматический контроллер уровня воды с использованием SRF04
Arduino IDE упрощает программирование. Он разделяет код на две части:void setup() и void loop(). Функция void setup() запускается только один раз и используется в основном для запуска какого-либо процесса, тогда как void loop() состоит из части кода, которая должна выполняться постоянно.
Эта модель состоит из 6 аналоговых входных контактов и 14 цифровых контактов GPIO, которые можно использовать в качестве входных выходов, 6 из которых обеспечивают выход ШИМ и аналоговый сигнал с использованием pinMode(), digitalWrite(), digitalRead() и AnalogRead(). 6 аналоговых входных каналов от контактов A0 до A5 обеспечивают 10-битное разрешение.
Плата может питаться от USB-кабеля, работающего от 5 вольт, или от разъема постоянного тока, работающего от 7 до 20 вольт. На борту имеется регулятор напряжения для выработки 3,3 вольта для работы маломощных устройств.
Поскольку ATmega328 работает с протоколами связи USART, SPI и I2C, имеет контакты 0 (Rx) и 1 (Tx) для связи USART, SDA (A4) и SCL (A5) контакт для I2C и SS (10), контакты MOSI (11), MISO (12) и SCK (13) для протокола связи SPI.
Связанные проекты:
- Автоматический дверной звонок с обнаружением объектов с помощью Arduino
- Автоматическая ночная лампа с использованием Arduino
Ультразвуковой датчик HC-SR04
HC-SR04 — это ультразвуковой датчик, который помогает измерять расстояния во многих местах без контакта с человеком. Он работает по тому же принципу, что и RADAR и SONAR, и обеспечивает эффективный способ очень точного измерения расстояний.
Теоретически он может измерять расстояния до 450 см, но на практике он может измерять расстояния от 2 см до 80 см с точностью до 3 мм. Он работает при напряжении 5 В, токе менее 15 мА и частоте 40 Гц.
На HC-SR04 установлены один передатчик и один приемник. Расстояние рассчитывается по базовой формуле скорости, расстояния и времени, которую мы все изучали в нашей школе, т.е.
Расстояние =скорость x время
Передатчик датчика HC-SR04 излучает ультразвуковую волну в воздухе. Если эта волна отражается каким-либо объектом в зоне действия датчика, то отраженная волна в воздухе принимается приемником датчика. Таким образом, чтобы рассчитать расстояние по приведенной выше формуле, мы должны знать скорость и время.
Мы знаем, что универсальная скорость ультразвуковой волны составляет около 330 м/с. Время измеряется схемой, построенной на микроконтроллере. Штырь эха становится высоким на период времени, в течение которого ультразвуковая волна возвращается к приемнику. Таким образом мы можем рассчитать расстояние между объектом и ультразвуковым датчиком HC-SR04.
Связанные проекты:
- Автоматическая система управления железнодорожными воротами — схема и исходный код
- Схема детектора скорости автомобиля — рабочий и исходный код
Сопряжение HC-SR04 с Arduino UNO
Ультразвуковой датчик HC-SR04 можно использовать со всеми микроконтроллерами, такими как Arduino, PIC, Raspberry Pi и т. д. В этом проекте мы собираемся связать ультразвуковой датчик HC-SR04 с Arduino UNO. . Модуль HC-SR04 имеет четыре контакта:VCC, GND, Trig и Echo.
Мы подключаем модуль HC-SR04 с 5 вольтами и GND к Arduino UNO. Триггерный контакт и контакт Echo являются входными и выходными контактами, поэтому они должны быть подключены к входным и выходным контактам Arduino UNO. Таким образом, чтобы измерить расстояние, мы сначала устанавливаем триггерный контакт на «высокий» на 10 микросекунд, а затем устанавливаем на «низкий».
Это будет генерировать ультразвуковую волну частотой 40 кГц, которая направляется к объекту и отражается обратно к приемнику модуля. Если волна обнаруживает какой-либо объект, она немедленно возвращается в приемную часть модуля, а вывод эха становится «высоким» на период времени, в течение которого она возвращается обратно к датчику.
Теперь этот период времени, умноженный на скорость волны, которая составляет 330 м/с, дает нам расстояние между модулем HC-SR04 и объектом.
Связанный пост:
- Система автоматизации умного дома — схема и исходный код
- Программирование ШИМ Arduino и его функции в Arduino
ЖК-дисплей 16 × 2
Подключить ЖК-дисплей 16 X 2 к Arduino UNO довольно просто. На рынке доступны различные типы ЖК-дисплеев, но тот, который мы используем в этом проекте, имеет размер 16 × 2, что означает, что он имеет две строки, и в каждой строке мы можем отображать 16 символов.
На этом модуле установлен драйвер HD44780 от Hitachi, который помогает взаимодействовать и взаимодействовать с микроконтроллерами. Этот ЖК-дисплей может работать в 4-битном и 8-битном режиме. В 4-битном режиме для установления соединения между ЖК-дисплеем и микроконтроллером требуется только 4 контакта данных, тогда как в 8-битном режиме требуется 8 контактов данных.
Здесь мы собираемся использовать его в 4-битном режиме, так как он требует меньшего количества проводов и упрощает схему. Давайте посмотрим на описание контактов ЖК-дисплея 16×2.
Описание контактов ЖК-модуля 16×2:
Закрепить на ЖК-дисплее | Описание |
VSS | Заземляющий контакт |
ВКК | Питание +5В |
ВЭЭ | Пин для изменения контрастности LCD |
RS | Регистрация выбора:режим данных или режим команд |
RW | Режим чтения или записи |
E | Включить ЖК-дисплей |
DB0-DB7 | Данные и команды передаются с помощью этих контактов |
Светодиод+ | Анод светодиода подсветки |
LED- | Катод светодиода подсветки |
У этого ЖК-дисплея нет собственной подсветки, поэтому за экраном находится светодиод, который служит подсветкой дисплея. Взаимодействие этого ЖК-дисплея с Arduino UNO довольно просто, поскольку Arduino IDE предоставляет библиотеку LiquidCrystal, которая имеет множество встроенных функций, упрощающих инициализацию и печать чего-либо на дисплее. Функции ЖК-дисплея, которые мы в основном будем использовать в этом проекте:
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
lcd.begin()
lcd.clear()
lcd.print()
Работа системы раннего обнаружения наводнений и исходный код
Ультразвуковой датчик будет размещен на некотором базовом уровне таким образом, чтобы передатчик и приемник были обращены к уровню воды. Arduino UNO измерит расстояние между датчиком и уровнем воды.
ЖК-дисплей отобразит расстояние между ними. Мы установим некоторый эталон уровня наводнения, и когда вода достигнет эталона, мы установим зуммер на «высокий уровень», а на ЖК-дисплее появится текст, предупреждающий о наводнении.
Объяснение кода
#include
LiquidCrystal lcd(2,3,4,5,6,7);
lcd.begin(16,2);
Встроенная библиотека для ЖК-дисплея включена. Функция LiquidCrystal lcd() принимает номер вывода данных, подключенных к Arduino UNO. Lcd.begin() запускает ЖК-экран 16×2.
pinMode(18,OUTPUT); //trigger pin
pinMode(19,INPUT); //echo pin
pinMode(20,OUTPUT); //buzzer
Выводы 18 и 20 установлены как выходные контакты для триггера и зуммера соответственно, а контакт 19 установлен как вход для эхо-контакта.
t=pulseIn(19,HIGH);
dist=t*340/20000;
переменная времени 't' определяет количество времени до того, как триггерный штифт будет установлен на высокий уровень, который в дальнейшем используется для расчета времени в сантиметрах и сохранения значения в переменной 'dist'.П>
if(dist<40)
{
digitalWrite(20,HIGH);
lcd.clear();
lcd.setCursor(0,1);
lcd.print("Water level is rising. Kindly evacuate");
delay(2000);
}
else
{
digitalWrite(20,LOW);
delay(2000);
}
В этом коде мы установили условие затопления, так как расстояние между уровнем воды и ультразвуковым датчиком становится равным 40 см. Таким образом, когда уровень воды достигает 40 см или меньше, зуммер переходит в режим ВЫСОКАЯ, чтобы подать предупреждение, а ЖК-дисплей распечатывает и показывает сообщение о наводнении.
Полный исходный код:
#include
LiquidCrystal lcd(2,3,4,5,6,7);
float t = 0;
float dist = 0;
void setup()
{
lcd.begin(16,2);
pinMode(18,OUTPUT); //trigger pin
pinMode(19,INPUT); //echo pin
pinMode(20,OUTPUT); //buzzer
lcd.setCursor(0,1);
lcd.print(" Water Level Detector");
delay(2000);
}
void loop()
{
lcd.clear();
digitalWrite(20,LOW);
digitalWrite(18,LOW);
delayMicroseconds(2);
digitalWrite(18,HIGH);
delayMicroseconds(10);
digitalWrite(18,LOW);
delayMicroseconds(2);
t=pulseIn(19,HIGH);
dist=t*340/20000;
lcd.clear();
lcd.setCursor(0,1);
lcd.print("Distance : ");
lcd.print(dist/100);
lcd.print(" m");
delay(1000);
if(dist<40)
{
digitalWrite(20,HIGH);
lcd.clear();
lcd.setCursor(0,1);
lcd.print("Water level is rising. Kindly evacuate");
delay(2000);
}
else
{
digitalWrite(20,LOW);
delay(2000);
}
}
Связанные проекты:
- Электронный проект управления светофором с использованием таймера IC 4017 и 555
- Простая принципиальная схема зарядного устройства для сотового телефона — 5 В от сети 230 В переменного тока.
- Схема электронного релейного переключателя — релейные переключатели каналов NPN, PNP, N и P
- Схема светодиодной рулетки с использованием таймера 555 и счетчика 4017
- Электронный автоматический выключатель — схема и работа
- Схема инфракрасного датчика движения
- Простая схема сенсорного переключателя
- Основная принципиальная схема удвоителя напряжения с использованием микросхемы таймера 555
- Схема двойного источника питания — от 230 В переменного тока до ±12 В постоянного тока
- Простая принципиальная схема зарядного устройства для сотового телефона — 5 В от сети 230 В переменного тока.
Промышленные технологии
- С# с использованием
- Использование Symphony Link в качестве системы обнаружения утечки воды для центров обработки данных
- Система управления устройством на основе температуры с использованием LM35
- Декодер DTMF с использованием только Arduino
- Система посещаемости с использованием Arduino и RFID с Python
- Робототехническая система для обнаружения человека с использованием Arduino Uno
- Система сигнализации Arduino:SERENA
- Система мониторинга и обнаружения лесных пожаров (с SMS-оповещениями)
- Система обнаружения падений на базе Arduino, Windows и Azure
- 5 преимуществ использования системы обнаружения утечек воды на базе Интернета вещей Biz4intellias в промышленности…