- Wymagane składniki:
- Czujnik ultradźwiękowy HC-SR04:
- Moduł Wi-Fi ESP8266:
- Schemat obwodu i wyjaśnienie:
- Objaśnienie kodu:
- "; if (odległość <5) {webpage + =" Kosz jest pełny ";} else {webpage + =" Kosz jest pusty ";} webpage + ="
- Testowanie i wyniki projektu:
W tym majsterkowaniu zamierzamy stworzyć system monitorowania śmieci / śmieci oparty na IOT, który powie nam, czy kosz na śmieci jest pusty, czy pełny za pośrednictwem serwera internetowego, a status `` kosza '' lub `` śmietnika '' można poznać z w dowolnym miejscu na świecie przez Internet. Będzie bardzo przydatny i można go zainstalować w koszach na śmieci zarówno w miejscach publicznych, jak iw domu.
W tym projekcie IOT czujnik ultradźwiękowy służy do wykrywania, czy kosz na śmieci jest wypełniony śmieciami, czy nie. Tutaj czujnik ultradźwiękowy jest zainstalowany na górze kosza na śmieci i mierzy odległość śmieci od góry kosza i możemy ustawić wartość progową w zależności od rozmiaru kosza na śmieci. Jeśli odległość będzie mniejsza niż ta wartość progowa, oznacza to, że Kosz jest pełen śmieci i wydrukujemy na stronie komunikat „Koszyk jest pełny”, a jeśli odległość będzie większa niż ta wartość progowa, wydrukujemy komunikat „Koszyk jest pusty”. Tutaj ustawiliśmy wartość progową 5 cm w kodzie programu. Wykorzystamy moduł Wi-Fi ESP8266do podłączenia Arduino do serwera WWW. Tutaj użyliśmy lokalnego serwera internetowego, aby zademonstrować działanie tego systemu monitorowania śmieci.
Wymagane składniki:
- Arduino Uno (możesz użyć dowolnego innego)
- Moduł Wi-Fi ESP8266
- Czujnik ultradźwiękowy HC-SR04
- Rezystory 1K
- Płytka prototypowa
- Przewody łączące
Czujnik ultradźwiękowy HC-SR04:
Czujnik ultradźwiękowy służy do pomiaru odległości z dużą dokładnością i stabilnymi odczytami. Może mierzyć odległość od 2 cm do 400 cm lub od 1 cala do 13 stóp. Emituje w powietrzu falę ultradźwiękową o częstotliwości 40 kHz i jeśli obiekt stanie mu na drodze to odbije się z powrotem do czujnika. Wykorzystując czas potrzebny na uderzenie w obiekt i powrót, możesz obliczyć odległość.
Czujnik ultradźwiękowy ma cztery piny. Dwa to VCC i GND, które zostaną podłączone do 5 V i GND Arduino, podczas gdy pozostałe dwa piny to piny Trig i Echo, które zostaną podłączone do dowolnych pinów cyfrowych Arduino. Pin wyzwalacza wyśle sygnał, a pin Echo zostanie użyty do odbioru sygnału. Aby wygenerować sygnał ultradźwiękowy, będziesz musiał ustawić pin Trig wysoko na około 10us, co wyśle 8-cyklową serię dźwiękową z prędkością dźwięku, a po uderzeniu w obiekt zostanie odebrany przez pin Echo.
Dalsze sprawdzenie poniższych projektów, aby właściwie zrozumieć działanie czujnika ultradźwiękowego i zmierzyć odległość dowolnego obiektu, który go używa:
- Pomiar odległości oparty na Arduino przy użyciu czujnika ultradźwiękowego
- Pomiar odległości za pomocą HC-SR04 i mikrokontrolera AVR
Moduł Wi-Fi ESP8266:
ESP8266 to moduł Wi-Fi, który zapewni Twoim projektom dostęp do Wi-Fi lub internetu. Jest to bardzo tanie urządzenie, ale dzięki niemu Twoje projekty będą potężne. Może komunikować się z dowolnym mikrokontrolerem i zapewniać bezprzewodowość projektów. Znajduje się na liście większości wiodących urządzeń na platformie IOT. Działa na 3,3 V i jeśli podasz mu 5 V, zostanie uszkodzony.
ESP8266 ma 8 pinów; VCC i CH-PD zostaną podłączone do 3,3 V, aby włączyć wifi. Piny TX i RX będą odpowiedzialne za komunikację ESP8266 z Arduino. Pin RX działa na 3,3V, więc będziesz musiał zrobić dla niego dzielnik napięcia, tak jak zrobiliśmy w naszym projekcie.
Schemat obwodu i wyjaśnienie:
Przede wszystkim połączymy ESP8266 z Arduino. ESP8266 działa na 3,3 V i jeśli dasz mu 5 V z Arduino, to nie będzie działać poprawnie i może ulec uszkodzeniu. Podłącz VCC i CH_PD do pinu 3,3 V Arduino. Pin RX ESP8266 działa na 3,3 V i nie będzie komunikował się z Arduino, gdy podłączymy go bezpośrednio do Arduino. Będziemy więc musieli zrobić dla niego dzielnik napięcia. Trzy rezystory 1k połączone szeregowo zrobią za nas pracę. Podłącz RX do pinu 11 Arduino poprzez rezystory, jak pokazano na poniższym rysunku, a także TX Arduino do pinu 10 Arduino.
Teraz czas połączyć czujnik ultradźwiękowy HC-SR04 z Arduino. Połączenia czujnika ultradźwiękowego z Arduino są bardzo proste. Podłącz VCC i masę czujnika ultradźwiękowego do 5 V i masy Arduino. Następnie podłącz pin TRIG i ECHO czujnika ultradźwiękowego odpowiednio do pinów 8 i 9 Arduino.
Objaśnienie kodu:
Przed przesłaniem kodu upewnij się, że masz połączenie z Wi-Fi swojego urządzenia ESP8266. Możesz sprawdzić pełny kod w sekcji Kod poniżej, kod został dobrze wyjaśniony w komentarzach, ponadto wyjaśniliśmy również niektóre ważne funkcje poniżej.
Arduino najpierw odczyta czujnik ultradźwiękowy. Wyśle sygnał ultradźwiękowy z prędkością dźwięku, gdy ustawimy pin TRIG na wysoki na 10us. Sygnał powróci po uderzeniu w obiekt, a czas podróży zapiszemy w zmiennej o nazwie duration . Następnie obliczymy odległość obiektu (w naszym przypadku śmieci) za pomocą wzoru i zapiszemy ją w zmiennej o nazwie odległość .
digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); duration = pulseIn (echoPin, HIGH); odległość = czas trwania * 0,034 / 2;
Aby wydrukować wynik na stronie internetowej w przeglądarce internetowej, będziemy musieli użyć programowania HTML. Dlatego stworzyliśmy ciąg o nazwie webpage i zapisaliśmy w nim dane wyjściowe. Aby stwierdzić, czy kosz na śmieci jest pusty, zastosowaliśmy tam warunek. Jeśli odległość będzie mniejsza niż 5 cm, na stronie zostanie wyświetlony komunikat „Koszyk jest pełny”, a jeśli odległość będzie większa niż 5 cm, na stronie zostanie wyświetlony komunikat „Koszyk jest pusty”.
if (esp8266.available ()) {if (esp8266.find ("+ IPD,")) {opóźnienie (1000); int connectionId = esp8266.read () - 48; String webpage = "
System monitorowania śmieci IOT
"; strona internetowa + =""; if (odległość <5) {webpage + =" Kosz jest pełny ";} else {webpage + =" Kosz jest pusty ";} webpage + ="
";Poniższy kod wysyła i wyświetla dane na stronie internetowej. Dane, które zapisaliśmy w ciągu o nazwie „strona internetowa”, zostaną zapisane w postaci ciągu o nazwie „polecenie” . ESP8266 odczyta następnie znak po kolei z „polecenia” i wydrukuje go na stronie internetowej.
String sendData (polecenie String, const int timeout, boolean debug) {Odpowiedź ciągu = ""; esp8266.print (polecenie); long int time = millis (); while ((czas + limit czasu)> millis ()) {while (esp8266.available ()) {char c = esp8266.read (); odpowiedź + = c; }} if (debugowanie) {Serial.print (odpowiedź); } odpowiedź zwrotna; }
Testowanie i wyniki projektu:
Po przesłaniu kodu otwórz monitor szeregowy i pokaże ci adres IP, jak pokazano poniżej.
Wpisz ten adres IP w przeglądarce, pokaże ci dane wyjściowe, jak pokazano poniżej. Będziesz musiał ponownie odświeżyć stronę, jeśli chcesz ponownie zobaczyć, że kosz jest pusty, czy nie.
Więc tak działa ten system monitorowania śmieci, ten projekt można dalej ulepszyć, dodając kilka dodatkowych funkcji, takich jak możemy ustawić jeszcze jedną wiadomość, gdy kosz jest wypełniony do połowy lub możemy wyzwolić e-mail / SMS, aby ostrzec użytkownika, gdy kosz jest Koszyk jest pełny.