- Необходими компоненти:
- Ултразвуков сензор HC-SR04:
- ESP8266 Wi-Fi модул:
- Електрическа схема и обяснение:
- Обяснение на кода:
- "; if (разстояние <5) {webpage + =" кошчето е пълно ";} else {webpage + =" кошчето е празно ";} webpage + ="
- Тестване и извеждане на проекта:
В този „Направи си сам“ ще направим IOT базирана система за мониторинг на сметища / боклук, която ще ни каже, че дали кошът за боклук е празен или пълен през уеб сървъра и можете да знаете състоянието на вашия „Кош за боклук“ или „Контейнери“ от навсякъде по света през интернет. Той ще бъде много полезен и може да бъде инсталиран в кошчетата за боклук на обществени места, както и у дома.
В този проект IOT се използва ултразвуков сензор за откриване дали кошчето за боклук е напълнено с боклук или не. Тук ултразвуков сензор е инсталиран в горната част на кошчето и ще измерва разстоянието на боклука от горната част на кошчето, а ние можем да зададем прагова стойност според размера на кошчето. Ако разстоянието ще бъде по-малко от тази прагова стойност, означава, че кошчето е пълно с боклук и ние ще отпечатаме съобщението „Кошницата е пълно“ на уеб страницата и ако разстоянието ще бъде по-голямо от тази прагова стойност, тогава ще отпечатаме съобщението „Кошницата е празна“. Тук сме задали праговата стойност от 5 см в програмния код. Ще използваме ESP8266 Wi-Fi модулза свързване на Arduino към уеб сървъра. Тук използвахме локален уеб сървър, за да демонстрираме работата на тази система за наблюдение на боклука.
Необходими компоненти:
- Arduino Uno (можете да използвате всеки друг)
- ESP8266 Wi-Fi модул
- HC-SR04 Ултразвуков сензор
- 1K резистори
- Макет
- Свързващи проводници
Ултразвуков сензор HC-SR04:
Ултразвуковият сензор се използва за измерване на разстоянието с висока точност и стабилни показания. Може да измерва разстояние от 2 см до 400 см или от 1 инч до 13 фута. Той излъчва ултразвукова вълна с честота 40KHz във въздуха и ако обектът попадне по пътя му, той ще отскочи до сензора. Използвайки времето, необходимо за удряне на обекта и връщане, можете да изчислите разстоянието.
Ултразвуковият сензор има четири щифта. Двата са VCC и GND, които ще бъдат свързани към 5V и GND на Arduino, докато другите два щифта са Trig и Echo щифтове, които ще бъдат свързани към всички цифрови щифтове на Arduino. Trig щифтът ще изпрати сигнала, а Echo щифтът ще се използва за приемане на сигнала. За да генерирате ултразвуков сигнал, ще трябва да направите Trig щифта висок за около 10us, което ще изпрати 8 цикличен звуков взрив със скоростта на звука и след като удари обекта, той ще бъде получен от Echo щифта.
По-нататък проверете проектите по-долу, за да разберете правилно работата на ултразвуковия сензор и да измервате разстоянието на всеки обект, който го използва:
- Измерване на разстояние на базата на Arduino с помощта на ултразвуков сензор
- Измерване на разстояние с помощта на HC-SR04 и AVR микроконтролер
ESP8266 Wi-Fi модул:
ESP8266 е Wi-Fi модул, който ще даде на вашите проекти достъп до Wi-Fi или интернет. Това е много евтино устройство, но ще направи вашите проекти много мощни. Той може да комуникира с всеки микроконтролер и да прави проектите безжични. Той е в списъка на най-водещите устройства в платформата IOT. Работи на 3.3V и ако му дадете 5V, ще получи щети.
ESP8266 има 8 щифта; VCC и CH-PD ще бъдат свързани към 3.3V, за да активират wifi. TX и RX щифтовете ще бъдат отговорни за комуникацията на ESP8266 с Arduino. RX щифтът работи на 3.3V, така че ще трябва да направите делител на напрежението за него, както направихме в нашия проект.
Електрическа схема и обяснение:
На първо място ще свържем ESP8266 с Arduino. ESP8266 работи на 3.3V и ако му дадете 5V от Arduino, той няма да работи правилно и може да получи щети. Свържете VCC и CH_PD към 3.3V щифт на Arduino. RX щифтът на ESP8266 работи на 3.3V и няма да комуникира с Arduino, когато го свържем директно с Arduino. Така че, ще трябва да направим делител на напрежението за него. Три последователно свързани 1k резистори ще свършат работа вместо нас. Свържете RX към щифта 11 на Arduino чрез резисторите, както е показано на фигурата по-долу, а също и TX на Arduino към щифта 10 на Arduino.
Сега е време да свържете ултразвуковия сензор HC-SR04 с Arduino. Връзките на ултразвуковия сензор с Arduino са много прости. Свържете VCC и земята на ултразвуковия сензор към 5V и земята на 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,")) {delay (1000); int connectionId = esp8266.read () - 48; Низ уеб страница = "
IOT система за наблюдение на боклука
"; уеб страница + =""; if (разстояние <5) {webpage + =" кошчето е пълно ";} else {webpage + =" кошчето е празно ";} webpage + ="
";Следният код ще изпрати и покаже данните на уеб страницата. Данните, които съхраняваме в низ с име „уеб страница“, ще бъдат записани в низ с име „команда“ . След това ESP8266 ще прочете символа един по един от „командата“ и ще го отпечата на уеб страницата.
String sendData (String command, const int timeout, boolean debug) {String response = ""; esp8266.print (команда); дълго int време = милис (); while ((time + timeout)> millis ()) {while (esp8266.available ()) {char c = esp8266.read (); отговор + = c; }} if (отстраняване на грешки) {Serial.print (отговор); } отговор за връщане; }
Тестване и извеждане на проекта:
След като качите кода, отворете Serial Monitor и той ще ви покаже IP адрес, както е показано по-долу.
Въведете този IP адрес във вашия браузър, той ще ви покаже изхода, както е показано по-долу. Ще трябва да опресните страницата отново, ако искате отново да видите, че кошчето е празно или не.
Така че как работи тази система за мониторинг на боклука, този проект може да бъде допълнително подобрен чрез добавяне на още няколко функции в нея, като можем да зададем още едно съобщение, когато кошчето е наполовина напълнено или можем да задействаме имейл / SMS, за да предупредим потребителя, когато кошчето Кошницата е пълна.