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

Система раннего обнаружения наводнений с использованием 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++, которые очень просты в освоении и использовании.

Связанные проекты:

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.

Связанные проекты:

Ультразвуковой датчик 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 и объектом.

Связанный пост:

ЖК-дисплей 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);
}
}

Связанные проекты:


Промышленные технологии

  1. С# с использованием
  2. Использование Symphony Link в качестве системы обнаружения утечки воды для центров обработки данных
  3. Система управления устройством на основе температуры с использованием LM35
  4. Декодер DTMF с использованием только Arduino
  5. Система посещаемости с использованием Arduino и RFID с Python
  6. Робототехническая система для обнаружения человека с использованием Arduino Uno
  7. Система сигнализации Arduino:SERENA
  8. Система мониторинга и обнаружения лесных пожаров (с SMS-оповещениями)
  9. Система обнаружения падений на базе Arduino, Windows и Azure
  10. 5 преимуществ использования системы обнаружения утечек воды на базе Интернета вещей Biz4intellias в промышленности…