- Необхідні компоненти:
- HC-SR04 Ультразвуковий датчик:
- Модуль Wi-Fi ESP8266:
- Електрична схема та пояснення:
- Пояснення коду:
- "; if (відстань <5) {webpage + =" Кошик заповнений ";} else {webpage + =" Кошик порожній ";} webpage + ="
- Тестування та результати проекту:
У цьому саморобку ми створимо систему моніторингу сміттєвих контейнерів / сміття, засновану на IOT, яка повідомить нам про те, чи порожній чи сміттєвий контейнер порожній через веб-сервер, і ви можете дізнатись про стан свого «Смітника» чи «Смітника» з в будь-якій точці світу через Інтернет. Це буде дуже корисно, і його можна встановити у сміттєві баки в громадських місцях, а також удома.
У цьому проекті IOT ультразвуковий датчик використовується для виявлення, наповнений смітник сміттям чи ні. Тут ультразвуковий датчик встановлений у верхній частині кошика для сміття і вимірює відстань сміття до верхньої частини кошика для сміття, і ми можемо встановити порогове значення відповідно до розміру кошика для сміття. Якщо відстань буде менше цього порогового значення, це означає, що в кошику сміття повно сміття, і ми надрукуємо на веб-сторінці повідомлення «Кошик заповнений», а якщо відстань буде більше цього порогового значення, ми надрукуємо повідомлення “Кошик порожній”. Тут ми встановили порогове значення 5 см у коді програми. Ми використовуватимемо модуль Wi-Fi ESP8266для підключення Arduino до веб-сервера. Тут ми використали локальний веб-сервер, щоб продемонструвати роботу цієї системи моніторингу сміття.
Необхідні компоненти:
- Arduino Uno (можна використовувати будь-який інший)
- ESP8266 модуль Wi-Fi
- HC-SR04 Ультразвуковий датчик
- Резистори 1К
- Макет
- Підключення проводів
HC-SR04 Ультразвуковий датчик:
Ультразвуковий датчик використовується для вимірювання відстані з високою точністю та стабільними показаннями. Він може вимірювати відстань від 2 см до 400 см або від 1 дюйма до 13 футів. Він випромінює ультразвукову хвилю на частоті 40 кГц у повітрі, і якщо об'єкт буде заважати, він повернеться до датчика. Використовуючи час, який потрібно для нанесення удару по об’єкту і повернення, ви можете розрахувати відстань.
Ультразвуковий датчик має чотири висновки. Два - це VCC і GND, які будуть підключені до 5 В і GND Arduino, тоді як інші два висновки - це висновки Trig та Echo, які будуть підключені до будь-яких цифрових виводів Arduino. Триггерний штифт надішле сигнал, а ехо-штир буде використаний для прийому сигналу. Щоб сформувати ультразвуковий сигнал, вам доведеться підняти штифт Trig високим приблизно на 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.3V, щоб увімкнути 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. Отже, нам доведеться зробити для нього дільник напруги. Три послідовно з’єднані резистори 1k зроблять за нас роботу. Підключіть RX до висновку 11 Arduino через резистори, як показано на малюнку нижче, а також TX Arduino до висновку 10 Arduino.
Тепер прийшов час підключити ультразвуковий датчик HC-SR04 до Arduino. Підключення ультразвукового датчика до Arduino дуже просте. Підключіть VCC і землю ультразвукового датчика до 5 В і землю Arduino. Потім підключіть штифт TRIG та ECHO ультразвукового датчика до висновків 8 та 9 Arduino відповідно.
Пояснення коду:
Перш ніж завантажувати код, переконайтеся, що ви підключені до Wi-Fi свого пристрою ESP8266. Ви можете перевірити повний код у розділі коду нижче, код добре пояснено коментарями, далі ми також пояснили деякі важливі функції нижче.
Arduino спочатку прочитає ультразвуковий датчик. Він надішле ультразвуковий сигнал зі швидкістю звуку, коли ми зробимо штифт TRIG високим на 10us. Буде повернення сигналу після удару об'єкта і ми будемо зберігати тривалість часу в дорозі в змінної з ім'ям тривалість . Потім ми обчислимо відстань до об’єкта (сміття в нашому випадку), застосувавши формулу, і збережемо її у змінній з іменем distance .
digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); тривалість = pulseIn (echoPin, HIGH); відстань = тривалість * 0,034 / 2;
Для друку вихідних даних на веб-сторінці у веб-браузері нам доведеться використовувати програмування HTML. Отже, ми створили рядок із назвою веб-сторінка і зберегли в ньому вихідні дані. Щоб визначити, порожній кошик для сміття чи ні, ми застосували там умову. Якщо відстань буде менше 5 см, тоді на веб-сторінці відображатиметься «Кошик заповнений», а якщо відстань буде більше 5 см, то на веб-сторінці з’явиться повідомлення «Кошик порожній».
if (esp8266.available ()) {if (esp8266.find ("+ IPD,")) {затримка (1000); int connectionId = esp8266.read () - 48; Рядок веб-сторінки = "
IOT Система моніторингу сміття
"; веб-сторінка + =""; if (відстань <5) {webpage + =" Кошик заповнений ";} else {webpage + =" Кошик порожній ";} webpage + ="
";Наступний код надішле і покаже дані на веб-сторінці. Дані, які ми зберігаємо у рядку з назвою 'webpage', будуть збережені у рядку з назвою 'command' . Потім ESP8266 прочитає символ по черзі з "команди" і надрукує його на веб-сторінці.
Рядок sendData (команда рядка, час очікування const int, логічна налагодження) {Відповідь рядка = ""; esp8266.print (команда); довгий int час = міліс (); while ((time + timeout)> millis ()) {while (esp8266.available ()) {char c = esp8266.read (); відповідь + = c; }} if (налагодження) {Serial.print (відповідь); } відповідь на повернення; }
Тестування та результати проекту:
Після завантаження коду відкрийте послідовний монітор, і він покаже вам IP-адресу, як показано нижче.
Введіть цю IP-адресу у своєму браузері, вона покаже результат, як показано нижче. Вам доведеться оновити сторінку ще раз, якщо ви хочете ще раз побачити, що смітник порожній чи ні.
Отже, як працює ця система моніторингу сміття, цей проект можна додатково вдосконалити, додавши в неї ще кілька функцій, наприклад, ми можемо встановити ще одне повідомлення, коли Кошик наполовину заповнений, або ми можемо викликати електронне повідомлення / SMS для попередження користувача, коли Кошик Кошик повний.