Мазмұны:

ESP8266 бар күн топырағындағы ылғал өлшегіш: 10 қадам (суреттермен)
ESP8266 бар күн топырағындағы ылғал өлшегіш: 10 қадам (суреттермен)

Бейне: ESP8266 бар күн топырағындағы ылғал өлшегіш: 10 қадам (суреттермен)

Бейне: ESP8266 бар күн топырағындағы ылғал өлшегіш: 10 қадам (суреттермен)
Бейне: Введение в плату разработки NodeMCU ESP8266 WiFi с примером HTTP-клиента 2024, Шілде
Anonim

Бұл нұсқаулықта біз күн сәулесінен қуат алатын топырақ ылғалдылығын өлшейтін монитор жасаймыз. Ол төмен қуат кодымен жұмыс істейтін ESP8266 Wi -Fi микроконтроллерін пайдаланады және оның бәрі су өткізбейді, сондықтан оны сыртта қалдыруға болады. Сіз бұл рецептті дәл орындауға немесе одан өз жобаларыңыз үшін пайдалы әдістерді алуға болады.

Егер сіз микроконтроллерді бағдарламалауды жаңадан білсеңіз, сымдарды, кодтауды және интернетке қосылудың негіздерін білу үшін менің Arduino класы мен Интернет заттары сыныбын қараңыз.

Бұл жоба менің күн сәулесінің ақысыз бөлігінің бөлігі, онда сіз гравировка мен күн панельдері арқылы күн энергиясын пайдаланудың басқа жолдарын біле аласыз.

Жұмыс үстінде болу үшін YouTube, Instagram, Twitter, Pinterest -те мені қадағалап, ақпараттық бюллетеньге жазылыңыз.

1 -қадам: Сізге не қажет

Сізге не қажет болады
Сізге не қажет болады

Сізге күн батареясын зарядтау тақтасы мен NodeMCU ESP8266 немесе Huzzah сияқты ESP8266 үзілісі, сондай -ақ топырақ сенсоры, батарея, қуат қосқышы, сым және қорғаныс кернеуі қажет.

Міне топырақ ылғалдылығын бақылау үшін қолданылатын компоненттер мен материалдар:

  • ESP8266 NodeMCU микроконтроллері (немесе ұқсас, Вин 6В дейін төзімді болуы керек)
  • Қосымша термисторы мен 2,2К Ом резисторы бар Adafruit күн зарядтау тақтасы
  • 2200 мАч литий-ионды батарея
  • Перма-прото тақта
  • Топырақ ылғалдылығы/температура сенсоры
  • 2 кабельдік түйіспе
  • Су өткізбейтін қоршау
  • Су өткізбейтін тұрақты ток кабелінің жұбы
  • Жылуды төмендететін құбырлар
  • 3,5 Вт күн батареясы
  • Түйменің қуат қосқышы
  • Екі қабатты көбік таспасы

Мұнда сізге қажет құралдар:

  • Дәнекерлеуіш пен дәнекерлеуіш
  • Қолға көмекші құрал
  • Сымды тазартқыштар
  • Мұрындарды шайыңыз
  • Пинцет (міндетті емес)
  • Жылытқыш немесе жеңіл
  • Мультиметр (міндетті емес, бірақ ақауларды жоюға ыңғайлы)
  • USB A-microB кабелі
  • Қайшы
  • Қадамдық жаттығу

Сізге io.adafruit.com және IFTTT бұлтты деректер сайттарында ақысыз шоттар қажет болады.

Amazon Associate ретінде мен серіктестік сілтемелерімді қолдана отырып, сатып алуларыңыздан табыс табамын.

2 -қадам: Breadboard прототипі

Нан тақтасының прототипі
Нан тақтасының прототипі

Мұндай жобалар үшін дәнекерленген тақтаның прототипін жасау өте маңызды, сондықтан сіз тұрақты байланыс орнатпас бұрын сенсор мен кодтың жұмыс істейтініне көз жеткізе аласыз.

Кескін
Кескін
Кескін
Кескін
Кескін
Кескін
Кескін
Кескін

Бұл жағдайда, топырақ сенсорында сымдар бар, сондықтан сенсорлық сымдардың ұштарына дәнекерлеу, көмекші қолдар мен жылуды төмендететін түтіктерді қолдана отырып, қатты тақырыптарды уақытша бекіту қажет болды.

Кескін
Кескін

Сенсордың қуатын, жерді, сағатты және түйреуіштерді қосу үшін схеманы орындаңыз (сонымен қатар топырақ сенсорымен бірге келетін 10 К тартқыш резисторы бар).

  • Жасыл сым сенсор GND
  • Сенсор қызыл сым 3.3 В дейін
  • Сенсорлық сары сым NodeMCU пин D5 (GPIO 14)
  • Сенсорлық көк сым NodeMCU пин D6 (GPIO 12)
  • Көк деректер түйреуіші мен 3.3В арасындағы 10K тартқыш резистор

Сіз мұны өзіңіз қалаған микроконтроллерге аудара аласыз. Егер сіз Arduino Uno немесе ұқсас нұсқаны қолдансаңыз, сіздің тақтаңызға Arduino бағдарламалық жасақтамасы қолдау көрсетеді. Егер сіз ESP8266-ды қолдансаңыз, Arduino-да ESP8266-мен орнатуға қадамдық көмек алу үшін менің заттар Интернет класын қарап шығыңыз (Arduino қалауындағы Қосымша тақталар менеджерінің URL мекен-жайларына қосымша URL мекен-жайларын қосу арқылы, содан кейін және тақта менеджерінен жаңа тақталарды таңдау). Мен NodeMCU ESP8266 тақтасын бағдарламалау үшін Adafruit ESP8266 Huzzah тақтасының түрін қолданамын, бірақ сонымен қатар Generic ESP8266 тақтасының тірегін орнатуға және пайдалануға болады. Сізге SiLabs USB байланыс чипінің драйвері қажет болады (Mac/Windows/Linux үшін қол жетімді).

Сенсорды Arduino үйлесімді тақтамен іске қосу үшін мен SHT1x Arduino кітапханасын Practical Arduino github бетінен жүктеп алдым, содан кейін файлды аштым және кітапхана қалтасын Arduino/libraries қалтасына жылжыттым, содан кейін оны SHT1x деп атадым. ReadSHT1xValues мысал эскизін ашыңыз және түйреуіш нөмірлерін 12 (dataPin) және 14 (clockPin) етіп өзгертіңіз немесе өзгертілген эскизді мына жерден көшіріңіз:

#қосу

#деректерді анықтау 12 -түйін // NodeMCU түйрегіші D6 #сағатты анықтау 14 -түйін // NodeMCU түйрегі D5 SHT1x sht1x (dataPin, clockPin); // SHT1x объектінің жарамсыздығын орнату () {Serial.begin (38400); // Serial.println хостына мәндерді хабарлау үшін сериялық қосылымды ашу («Іске қосу»); } void loop () {float temp_c; float temp_f; қалқыма ылғалдылығы; temp_c = sht1x.readTemperatureC (); // Датчиктен мәндерді оқу temp_f = sht1x.readTemperatureF (); ылғалдылық = sht1x.readHumidity (); Serial.print («Температура:»); // Мәндерді Serial.print (temp_c, DEC) сериялық портына басып шығарыңыз; Serial.print («C /»); Serial.print (temp_f, DEC); Serial.print («F. Ылғалдылық:»); Сериялық баспа (ылғалдылық); Serial.println («%»); кешіктіру (2000); }

Бұл кодты тақтаға жүктеңіз және сенсорлық деректер ағынын көру үшін сериялық мониторды ашыңыз.

Егер сіздің кодыңыз жинақталмаса және SHT1x.h табылмайтынына шағымданса, сізде сенсорлық кітапхана дұрыс орнатылмаған. Arduino/кітапханалар қалтасын SHT1x деп тексеріңіз, егер ол басқа жерде болса, жүктеу қалтасы сияқты, оны Arduino кітапханалары қалтасына жылжытыңыз және қажет болса атын өзгертіңіз.

Егер сіздің кодыңыз жиналса, бірақ тақтаға жүктелмесе, тақта параметрлерін екі рет тексеріңіз, тақтаға қосылғанын тексеріңіз және Құралдар мәзірінен дұрыс портты таңдаңыз.

Егер сіздің кодыңыз жүктелсе, бірақ сіздің сериялық монитордың енгізуі танылмайтын болса, сіздің эскизде көрсетілген (бұл жағдайда 38400) беру жылдамдығыңызға сәйкес келетінін екі рет тексеріңіз.

Егер монитордың сериялық кірісі дұрыс емес болып көрінсе, электр схемасын екі рет тексеріңіз. Сіздің 10K тартқыш резисторыңыз деректер түйіні мен 3.3В арасында орналасқан ба? Деректер мен сағат дұрыс түйреуіштерге қосылған ба? Қуат пен жерге тұйықталу барлық тізбек бойында болуы керек пе? Бұл қарапайым эскиз жұмыс істемейінше жалғастырмаңыз!

Келесі қадам ESP8266 -ға тән және үлгі жобасының қосымша сымсыз сенсордың есеп беру бөлігін конфигурациялайды. Егер сіз стандартты (сымсыз) Arduino үйлесімді микроконтроллерді қолдансаңыз, Arduino соңғы эскизін әзірлеуді жалғастырыңыз және Күн зарядтау тақтасын дайындауға өтіңіз.

3 -қадам: Бағдарламалық қамтамасыз етуді орнату

Бағдарламалық қамтамасыз етуді орнату
Бағдарламалық қамтамасыз етуді орнату

Бұл жобаның кодын ESP8266 көмегімен құрастыру үшін сізге тағы бірнеше Arduino кітапханасын орнату қажет (кітапхана менеджері арқылы қол жетімді):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • ArduinoHttpClient

Осы қадамға бекітілген кодты жүктеңіз, содан кейін файлды ашыңыз және Arduino бағдарламалық жасақтамасында Solar_Powered_Soil_Moisture_Monitor_Tutorial ашыңыз.

#қосу

#қосу #қосу #қосу #қосу // Деректер мен сағаттық байланыстарды көрсетіңіз және SHT1x объектісін құрыңыз #dataPin 12 анықтаңыз // NodeMCU түйрегіш D6 #анықтайтын сағатPin 14 // NodeMCU түйрегіш D5 SHT1x sht1x (dataPin, clockPin); // арнаны орнату AdafruitIO_Feed *ылғалдылық = io.feed («ылғалдылық»); AdafruitIO_Feed *температурасы = io.feed («температура»); const int sleepTime = 15; // 15 минут

жарамсыз орнату ()

{Serial.begin (115200); // Serial.println хостына мәндерді хабарлау үшін сериялық қосылымды ашу («Іске қосу»); // қосылыңыз io.adafruit.com Serial.print («Adafruit IO -ға қосылу»); io.connect (); // қосылымды күтіңіз (io.status () <AIO_CONNECTED) {Serial.print («.»); кешіктіру (500); } // біз қосылдық Serial.println (); Serial.println (io.statusText ()); }

бос цикл ()

{io.run (); // io.run (); клиентті байланыстырады және барлық эскиздер үшін қажет. float temp_c; float temp_f; қалқымалы ылғал; temp_c = sht1x.readTemperatureC (); // Сенсордан мәндерді оқу temp_f = sht1x.readTemperatureF (); ылғал = sht1x.readHumidity (); Serial.print («Температура:»); // Мәндерді Serial.print (temp_c, DEC) сериялық портына басып шығарыңыз; Serial.print («C /»); Serial.print (temp_f, DEC); Serial.print («F. Ылғалдылық:»); Сериялық баспа (ылғал); Serial.println («%»); ылғалдылық-> үнемдеу (ылғал); температура-> үнемдеу (temp_f); Serial.println («ESP8266 ұйықтап жатыр …»); ESP.deepSleep (sleepTime * 1000000 * 60); // Ұйқы}

Бұл код - бұл оқулықтағы алдыңғы сенсорлық кодтың жиынтығы және Adafruit IO бұлтты деректер қызметінің негізгі мысалы. Бағдарлама төмен қуат режиміне өтеді және көп жағдайда ұйықтайды, бірақ әр 15 минут сайын оянып, топырақтың температурасы мен ылғалдылығын оқиды және өз мәліметтерін Adafruit IO -ға хабарлайды. Config.h қойындысына өтіңіз және Adafruit IO пайдаланушы аты мен кілтін, жергілікті Wi -Fi желісінің атауын және құпия сөзін толтырыңыз, содан кейін кодты ESP8266 микроконтроллеріне жүктеңіз.

Кескін
Кескін

Сіз io.adafruit.com сайтында біраз дайындалуыңыз керек. Температура мен ылғалдылыққа арналған арналарды жасағаннан кейін, сенсор мәндерінің графигі мен кіріс арналарының екеуінің мәліметтері бар мониторға арналған бақылау тақтасын жасауға болады. Егер сізге Adafruit IO -ны бастау туралы жаңартулар қажет болса, бұл сабақты менің Интернет заттары сабағынан қараңыз.

4 -қадам: Күн зарядтау тақтасын дайындаңыз

Күн зарядтау тақтасын дайындаңыз
Күн зарядтау тақтасын дайындаңыз

Күн зарядтау тақтасын конденсаторға және кейбір сымдарды жүктеме шығындыларына дәнекерлеу арқылы дайындаңыз. Мен шахтаны қосымша резистормен (PROG арқылы 2.2K дәнекерленген) жылдамырақ зарядтауға бейімдеймін және жер үсті резисторды батареяның өзіне бекітілген 10К термисторға ауыстыру арқылы қараусыз қалуды қауіпсіз етемін. Бұл қауіпсіз температура диапазонында зарядтауды шектейді. Мен бұл өзгерістерді Solar USB зарядтағыш жобасында толығырақ қарастырдым.

5 -қадам: Микроконтроллер тізбегін құру

Микроконтроллер тізбегін құру
Микроконтроллер тізбегін құру
Кескін
Кескін
Кескін
Кескін

Микроконтроллер тақтасын және қуат қосқышын дәнекерлеу тақтасына дәнекерлеңіз.

Кескін
Кескін

Күн зарядтау құрылғысының қуат шығысын коммутатордың кірісіне қосыңыз, ол кем дегенде 1 амперге есептелуі керек.

Кескін
Кескін

Жоғарыдағы схемада сипатталған (немесе сіздің жеке нұсқаңыздың сипаттамаларына), оның ішінде сенсордың деректер желісіндегі 10K тартқыш резисторды сипаттайтын тақтаның сымдық қосылыстарын жасаңыз және дәнекерлеңіз.

Күн зарядтағышының жүктеу түйреуіштері күн энергиясы жоқ кезде 3.7В батарея қуатын береді, бірақ егер ол қосылған және күн ашық болса, күн батареясынан тікелей қуат алады. Сондықтан микроконтроллер 3,7В төмен және 6В тұрақты кернеуге дейінгі әр түрлі кернеулерге төзімді болуы керек. 5В кернеуі бар адамдар үшін, жүктеменің кернеуін 5В -қа дейін модуляциялау үшін PowerBoost (500 немесе 1000, кернеуге байланысты) пайдалануға болады (Solar USB зарядтау жобасында көрсетілгендей). Міне, кейбір жалпы тақталар мен олардың кіріс кернеуінің диапазоны:

  • NodeMCU ESP8266 (мұнда қолданылады): 5В USB немесе 3.7V-10V Vin
  • Arduino Uno: 5В USB немесе 7-12V Vin
  • Adafruit Huzzah ESP8266 Breakout: 5В USB немесе 3.4-6V VBat

Батареяның максималды қызмет ету мерзіміне жету үшін, ағымдағы тартылатын токтың жалпы ағымын қарастыруға және оңтайландыруға біраз уақыт қажет. ESP8266 -де Arduino эскизінде қуатты тұтынуды күрт азайту үшін қолданылған терең ұйқы функциясы бар. Ол сенсорды оқу үшін оянады және сенсордың мәнін хабарлау үшін желіге қосылған кезде көбірек ток алады, содан кейін белгілі бір уақыт ұйқыға кетеді. Егер сіздің микроконтроллеріңіз көп қуат алса және оны оңай ұйықтатуға болмайтын болса, жобаңызды қуатты аз алатын үйлесімді тақтаға жіберуді қарастырыңыз. Егер сіздің жобаңызға қай тақта сәйкес келетінін анықтауға көмек қажет болса, төмендегі түсініктемелерде сұрақ қойыңыз.

6 -қадам: Кабельдік бекіткіштерді орнатыңыз

Кескін
Кескін

Күн панелінің кабелі мен сенсорлық кабельдің ауа райына төзімді кіру нүктелерін жасау үшін, біз ауа өткізбейтін қоршаудың бүйіріне екі кабельдік бекіткіш орнатамыз.

Кескін
Кескін
Кескін
Кескін

Идеал орналасуды анықтау үшін сіздің компоненттеріңізге сәйкес келетінін тексеріңіз, содан кейін баспайтын бұрғы көмегімен су өткізбейтін корпуста тесіктерді белгілеңіз және бұрғылаңыз. Екі кабельдік бекіткішті орнатыңыз.

Кескін
Кескін

7 -қадам: тізбекті толық жинау

Толық тізбек құрастыру
Толық тізбек құрастыру

Су өткізбейтін қуат кабелінің порт жағын біреуіне салыңыз да, оны күн зарядтағышының тұрақты ток кірісіне дәнекерлеңіз (қызылдан + дейін және қараға дейін).

Кескін
Кескін

Топырақ датчигін басқа без арқылы енгізіп, оны схемаға сәйкес перма-протоға қосыңыз.

Кескін
Кескін

Батареяға термисторлық зондты жабыстырыңыз. Бұл зарядтауды қауіпсіз температура диапазонында шектейді, ал жоба сыртта қараусыз қалады.

Кескін
Кескін

Тым ыстық немесе тым суық кезде зарядтау батареяны зақымдауы немесе өрт шығуы мүмкін. Төтенше температураның әсер етуі зақым келтіруі мүмкін және батареяның қызмет ету мерзімін қысқартады, сондықтан егер ол мұздаудан төмен немесе 45 ℃/113F жоғары болса, оны ішке кіргізіңіз.

Кескін
Кескін

Тиісті кабельдердің айналасына ауа райына төзімді тығыздау үшін кабельдік біліктерді қатайтыңыз.

8 -қадам: Күн панелін дайындаңыз

Күн панелін дайындаңыз
Күн панелін дайындаңыз

Күн панелінің кабелін су өткізбейтін тұрақты ток сымдарының жиынтығының ашасы арқылы бөлу үшін менің нұсқаулықты орындаңыз.

9 -қадам: тестілеу

Оны тексеріңіз
Оны тексеріңіз

Батареяны қосыңыз және қуат қосқышын басу арқылы тізбекті қосыңыз.

Кескін
Кескін

Оны тексеріңіз және қоршауды жауып, сенсорды сіздің шөптер бағыңызға, құмыра өсімдігіне немесе Wi -Fi желісінің сигнал диапазонындағы басқа топыраққа орнатпас бұрын бұл туралы интернетке хабарлаңыз.

Кескін
Кескін

Сенсордан алынған деректер желіде тіркелгеннен кейін, егер бұл солай болса, API шлюзінің сайтында электрондық поштаға немесе мәтіндік ескертулерге рецепт орнату оңай. Мен топырақтың ылғалдылығы 50 -ден төмен түссе, маған электрондық пошта жіберу үшін кенішті баптадым.

Зауыт құрғағанша күтпестен оны тексеру үшін мен шекті мәннен төмен түскен Adafruit IO ылғалдылық қоректендіруінің деректер нүктесін қолмен енгіздім. Бірнеше минуттан кейін хат келеді! Егер топырақ деңгейі мен көрсеткен деңгейден төмен түссе, мен топырақты суарғанға дейін жем жаңартылған сайын электрондық пошта хабарын аламын. Ақылды болу үшін мен әр 15 минут сайын топырақты іріктеу үшін кодты жаңарттым.

10 -қадам: Оны сыртта қолданыңыз

Оны сыртта қолданыңыз!
Оны сыртта қолданыңыз!
Оны сыртта қолданыңыз!
Оны сыртта қолданыңыз!

Бұл сіздің зауыттың ылғалдандыру қажеттіліктеріне сәйкес реттелетін қызықты жоба, датчиктерді ауыстыру немесе қосу немесе күн энергиясының басқа Arduino жобаларына қосу оңай.

Бізді қадағалағаныңыз үшін рахмет! Мен сіздің ойыңызды естігім келеді; түсініктемелерде жазуды өтінемін. Бұл жоба менің ақысыз күн кластарымның бір бөлігі, онда сіз артқы ауланың жеңіл жобаларын және күн батареяларымен жұмыс жасаудың қосымша сабақтарын таба аласыз. Оны тексеріп, жазылыңыз!

Егер сізге бұл жоба ұнайтын болса, сізге менің кейбіреулерім қызық болуы мүмкін:

  • ақысыз заттар класы интернеті
  • ESP8266 бар YouTube жазылушыларының есептегіші
  • ESP8266 көмегімен әлеуметтік статистикалық бақылау құралының дисплейі
  • WiFi ауа райы дисплейі ESP8266 көмегімен
  • Ғашықтар ғаламторы

Жұмыс үстінде болу үшін мені YouTube, Instagram, Twitter, Pinterest және Snapchat -те қадағалаңыз.

Ұсынылған: