- Необходимые компоненты:
- Ультразвуковой датчик HC-SR04:
- Модуль Wi-Fi ESP8266:
- Принципиальная схема и пояснения:
- Пояснение к коду:
- "; if (distance <5) {webpage + =" Корзина заполнена ";} else {webpage + =" Корзина пуста ";} webpage + ="
- Тестирование и вывод проекта:
В этом DIY мы собираемся создать систему мониторинга мусорных контейнеров / мусора на основе IOT, которая сообщит нам, пуста ли корзина или полная, через веб-сервер, и вы можете узнать статус вашей корзины или мусора из в любой точке мира через Интернет. Он будет очень полезен и может быть установлен в мусорных баках как в общественных местах, так и дома.
В этом проекте IOT ультразвуковой датчик используется для определения того, заполнена ли корзина мусором или нет. Здесь ультразвуковой датчик установлен наверху мусорного ведра и будет измерять расстояние от мусора до его верха, и мы можем установить пороговое значение в соответствии с размером мусорного ведра. Если расстояние будет меньше этого порогового значения, это означает, что корзина заполнена мусором, и мы напечатаем сообщение «Корзина заполнена» на веб-странице, и если расстояние будет больше, чем это пороговое значение, мы напечатаем сообщение «Корзина пуста». Здесь мы установили пороговое значение 5 см в программном коде. Мы будем использовать модуль Wi-Fi ESP8266для подключения Arduino к веб-серверу. Здесь мы использовали локальный веб-сервер, чтобы продемонстрировать работу этой системы мониторинга мусора.
Необходимые компоненты:
- Arduino Uno (можно любую другую)
- Модуль Wi-Fi ESP8266
- HC-SR04 Ультразвуковой датчик
- Резисторы 1 кОм
- Макетная плата
- Соединительные провода
Ультразвуковой датчик HC-SR04:
Ультразвуковой датчик используется для измерения расстояния с высокой точностью и стабильными показаниями. Он может измерять расстояние от 2 см до 400 см или от 1 дюйма до 13 футов. Он излучает в воздухе ультразвуковую волну с частотой 40 кГц, и если объект встанет у него на пути, он отразится обратно на датчик. Используя время, необходимое для того, чтобы ударить объект и вернуться назад, вы можете рассчитать расстояние.
Ультразвуковой датчик имеет четыре контакта. Два - это VCC и GND, которые будут подключены к 5V и GND на Arduino, а два других контакта - это контакты Trig и Echo, которые будут подключены к любым цифровым контактам Arduino. Вывод триггера отправит сигнал, а вывод Echo будет использоваться для его приема. Чтобы сгенерировать ультразвуковой сигнал, вам нужно установить триггер на высокий уровень примерно на 10 мксек, который будет отправлять звуковой импульс за 8 циклов со скоростью звука, и после удара по объекту он будет принят контактом Echo.
Далее проверьте следующие проекты, чтобы правильно понять работу ультразвукового датчика и измерить расстояние до любого объекта, использующего его:
- Измерение расстояний на базе Arduino с помощью ультразвукового датчика
- Измерение расстояния с помощью микроконтроллера HC-SR04 и AVR
Модуль Wi-Fi ESP8266:
ESP8266 - это модуль Wi-Fi, который предоставит вашим проектам доступ к Wi-Fi или Интернету. Это очень дешевое устройство, но оно сделает ваши проекты очень мощными. Он может связываться с любым микроконтроллером и делать проекты беспроводными. Он входит в список самых ведущих устройств на платформе IOT. Он работает от 3,3 В, и если вы дадите ему 5 В, он получит повреждение.
ESP8266 имеет 8 контактов; VCC и CH-PD будут подключены к 3,3 В для включения Wi-Fi. Контакты TX и RX будут отвечать за связь ESP8266 с Arduino. Вывод RX работает от 3,3 В, поэтому вам придется сделать для него делитель напряжения, как мы сделали в нашем проекте.
Принципиальная схема и пояснения:
Прежде всего, мы подключим ESP8266 к Arduino. ESP8266 работает от 3,3 В, и если вы дадите ему 5 В от Arduino, он не будет работать должным образом и может получить повреждения. Подключите VCC и CH_PD к выводу 3,3 В Arduino. Вывод RX ESP8266 работает от 3,3 В, и он не будет связываться с Arduino, когда мы подключим его напрямую к Arduino. Значит, нам придется сделать для него делитель напряжения. Три последовательно включенных резистора номиналом 1 кОм сделают всю работу за нас. Подключите RX к контакту 11 Arduino через резисторы, как показано на рисунке ниже, а также TX Arduino к контакту 10 Arduino.
Пришло время подключить ультразвуковой датчик HC-SR04 к Arduino. Соединения ультразвукового датчика с Arduino очень просты. Подключите VCC и заземление ультразвукового датчика к 5V и заземлению Arduino. Затем подключите контакты TRIG и ECHO ультразвукового датчика к контактам 8 и 9 Arduino соответственно.
Пояснение к коду:
Перед загрузкой кода убедитесь, что вы подключены к Wi-Fi вашего устройства ESP8266. Вы можете проверить полный код в разделе кода ниже, код хорошо объяснен в комментариях, а также мы объяснили некоторые важные функции ниже.
Arduino сначала считывает ультразвуковой датчик. Он отправит ультразвуковой сигнал со скоростью звука, когда мы сделаем вывод TRIG высоким на 10 мкс. Сигнал вернется после столкновения с объектом, и мы сохраним продолжительность пути в переменной с именем duration . Затем мы вычислим расстояние до объекта (в нашем случае - мусор), применив формулу, и сохраним его в переменной с именем distance .
digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); duration = pulseIn (echoPin, HIGH); расстояние = продолжительность * 0,034 / 2;
Для печати вывода на веб-страницу в веб-браузере нам придется использовать HTML-программирование. Итак, мы создали строку с именем webpage и сохранили в ней вывод. Чтобы определить, пуста корзина или нет, мы применили там условие. Если расстояние будет меньше 5 см, на веб-странице будет показано «Корзина заполнена», а если расстояние будет больше 5 см, на веб-странице отобразится сообщение «Корзина пуста».
если (esp8266.available ()) {если (esp8266.find ("+ IPD,")) {задержка (1000); int connectionId = esp8266.read () - 48; Строка webpage = "
Система мониторинга мусора IOT
"; веб-страница + =""; if (distance <5) {webpage + =" Корзина заполнена ";} else {webpage + =" Корзина пуста ";} webpage + ="
";Следующий код отправит и покажет данные на веб-странице. Данные, которые мы сохранили в строке с именем 'webpage', будут сохранены в строке с именем 'command' . Затем ESP8266 будет считывать символы один за другим из «команды» и печатать его на веб-странице.
String sendData (команда String, время ожидания const int, логическая отладка) {String response = ""; esp8266.print (команда); long int time = миллис (); в то время как ((время + тайм-аут)> миллис ()) {в то время как (esp8266.available ()) {char c = esp8266.read (); ответ + = c; }} если (отладка) {Serial.print (ответ); } вернуть ответ; }
Тестирование и вывод проекта:
После загрузки кода откройте Serial Monitor, и он покажет вам IP-адрес, как показано ниже.
Введите этот IP-адрес в свой браузер, он покажет вам результат, как показано ниже. Вам придется обновить страницу еще раз, если вы снова захотите увидеть, пуста ли корзина или нет.
Таким образом, как работает эта система мониторинга мусора, этот проект можно дополнительно улучшить, добавив в него еще несколько функций, например, мы можем установить еще одно сообщение, когда корзина наполовину заполнена, или мы можем инициировать электронное письмо / SMS, чтобы предупредить пользователя, когда мусор Корзина заполнена.