Talaan ng mga Nilalaman:

Solar Soil Moisture Meter Na may ESP8266: 10 Mga Hakbang (na may Mga Larawan)
Solar Soil Moisture Meter Na may ESP8266: 10 Mga Hakbang (na may Mga Larawan)

Video: Solar Soil Moisture Meter Na may ESP8266: 10 Mga Hakbang (na may Mga Larawan)

Video: Solar Soil Moisture Meter Na may ESP8266: 10 Mga Hakbang (na may Mga Larawan)
Video: Solar Soil Moisture Meter // Becky Stern 2024, Hulyo
Anonim

Sa Maituturo na ito, gumagawa kami ng isang solar Power Monitor na kahalumigmigan ng lupa. Gumagamit ito ng isang ESP8266 wifi microcontroller na nagpapatakbo ng mababang code ng kuryente, at hindi tinatagusan ng tubig ang lahat upang maiwan ito sa labas. Maaari mong sundin nang eksakto ang resipe na ito, o kunin mula dito ang mga kapaki-pakinabang na diskarte para sa iyong sariling mga proyekto.

Kung bago ka sa programa ng microcontroller, mangyaring suriin ang aking Arduino Class at Internet of Things Class upang mahuli sa mga pangunahing kaalaman sa mga kable, pag-coding, at pagkonekta sa internet.

Ang proyektong ito ay bahagi ng aking libreng Solar Class, kung saan maaari kang matuto nang higit pang mga paraan upang magamit ang enerhiya ng araw sa pamamagitan ng pag-ukit at mga solar panel.

Upang makasabay sa ginagawa ko, sundan ako sa YouTube, Instagram, Twitter, Pinterest, at mag-subscribe sa aking newsletter.

Hakbang 1: Ano ang Kakailanganin Mo

Ano ang Kakailanganin Mo
Ano ang Kakailanganin Mo

Kakailanganin mo ang isang board ng pagsingil ng baterya ng solar at breakout ng ESP8266 tulad ng NodeMCU ESP8266 o Huzzah, pati na rin ang isang sensor ng lupa, baterya, switch ng kuryente, ilang kawad, at isang enclosure upang ilagay ang iyong circuit sa loob.

Narito ang mga sangkap at materyales na ginamit para sa monitor ng kahalumigmigan sa lupa:

  • ESP8266 NodeMCU microcontroller (o katulad, ang Vin ay dapat magparaya hanggang sa 6V)
  • Adafruit solar singil board na may opsyonal na thermistor at 2.2K ohm risistor
  • 2200mAh baterya ng li-ion
  • Perma-proto board
  • Ang kahalumigmigan ng lupa / sensor ng temperatura
  • 2 mga glandula ng cable
  • Hindi tinatagusan ng tubig enclosure
  • Pares ng cable na hindi tinatagusan ng tubig DC
  • Heat shrink tubing
  • 3.5W solar panel
  • Push button power switch
  • Double stick foam tape

Narito ang mga tool na kakailanganin mo:

  • Panghinang at bakalang panghinang
  • Pagtulong sa tool ng mga kamay
  • Mga striper ng wire
  • Flush snips
  • Tweezers (opsyonal)
  • Heat gun o mas magaan
  • Multimeter (opsyonal ngunit madaling gamitin para sa pag-troubleshoot)
  • USB A-microB cable
  • Gunting
  • Hakbang drill

Kakailanganin mo ng mga libreng account sa mga site ng cloud data io.adafruit.com at IFTTT.

Bilang isang Associate sa Amazon kumikita ako mula sa mga kwalipikadong pagbili na iyong ginagawa gamit ang aking mga kaakibat na link.

Hakbang 2: Prototype ng Breadboard

Prototype ng Breadboard
Prototype ng Breadboard

Mahalagang lumikha ng isang walang solder na prototype ng breadboard para sa mga proyektong tulad nito, upang matiyak mong gumagana ang iyong sensor at code bago gumawa ng anumang permanenteng koneksyon.

Larawan
Larawan
Larawan
Larawan
Larawan
Larawan
Larawan
Larawan

Sa kasong ito, ang sensor ng lupa ay may maiiwan na mga wire dito kinakailangan upang pansamantalang maglakip ng mga solidong header sa mga dulo ng mga wire ng sensor gamit ang panghinang, pagtulong sa mga kamay, at ilang pag-urong ng tubo ng init.

Larawan
Larawan

Sundin ang circuit diagram upang mai-wire ang sensor ng lakas, lupa, orasan, at mga pin ng data (nakakakuha rin ang data ng isang 10K pull-up risistor na kasama ng sensor ng lupa).

  • Sensor green wire sa GND
  • Sensor ng pulang kawad hanggang sa 3.3V
  • Sensor dilaw na kawad sa NodeMCU pin D5 (GPIO 14)
  • Sensor asul na kawad sa NodeMCU pin D6 (GPIO 12)
  • 10K pull-up risistor sa pagitan ng asul na data pin at 3.3V

Maaari mo itong isalin sa iyong ginustong microcontroller. Kung gumagamit ka ng isang Arduino Uno o katulad, ang iyong board ay suportado na ng Arduino software. Kung gumagamit ka ng ESP8266, mangyaring suriin ang aking Internet of Things Class para sa sunud-sunod na tulong sa pag-set up ng ESP8266 sa Arduino (sa pamamagitan ng pagdaragdag ng mga karagdagang URL sa patlang ng Mga Karagdagang Tagapamahala ng Mga Board ng Boards sa mga kagustuhan ni Arduino, pagkatapos ay maghanap para sa at pagpili ng mga bagong board mula sa board manager). May posibilidad akong gamitin ang uri ng board ng Adafruit ESP8266 Huzzah upang i-program ang board ng NodeMCU ESP8266, ngunit maaari mo ring mai-install at gamitin ang suporta ng board ng Generic ESP8266. Kakailanganin mo rin ang driver ng chip ng komunikasyon na SiLabs USB (magagamit para sa Mac / Windows / Linux).

Upang mapagana ang sensor at tumakbo sa aking board na katugmang Arduino, na-download ko ang SHT1x Arduino Library mula sa pahina ng github ng Praktikal Arduino, pagkatapos ay inalis ang zip ng file at inilipat ang folder ng library sa aking folder ng Arduino / libraries, pagkatapos ay pinalitan itong SHT1x. Buksan ang halimbawang sketch ReadSHT1xValues at palitan ang mga numero ng pin sa 12 (dataPin) at 14 (clockPin), o kopyahin ang binagong sketch dito:

# isama

#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // instantiate SHT1x object void setup () {Serial.begin (38400); // Buksan ang serial connection upang mag-ulat ng mga halaga upang ma-host ang Serial.println ("Pagsisimula"); } void loop () {float temp_c; lumutang temp_f; lumutang halumigmig; temp_c = sht1x.readTemperatureC (); // Basahin ang mga halaga mula sa sensor temp_f = sht1x.readTemperatureF (); halumigmig = sht1x.readHumidity (); Serial.print ("Temperatura:"); // I-print ang mga halaga sa serial port Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Humidity:"); Serial.print (halumigmig); Serial.println ("%"); pagkaantala (2000); }

I-upload ang code na ito sa iyong board at buksan ang serial monitor upang makita ang stream ng data ng sensor.

Kung ang iyong code ay hindi mag-ipon at magreklamo tungkol sa SHT1x.h hindi nahanap, hindi mo nakuha ng maayos ang kinakailangang library ng sensor. Suriin ang iyong folder ng Arduino / libraries para sa isang tinatawag na SHT1x, at kung sa ibang lugar, tulad ng iyong folder ng mga pag-download, ilipat ito sa iyong folder ng mga library ng Arduino, at palitan ang pangalan kung kinakailangan.

Kung ang iyong code ay naiipon ngunit hindi i-upload sa iyong board, i-double check ang iyong mga setting ng board, tiyaking naka-plug in ang iyong board, at piliin ang tamang port mula sa menu ng Mga Tool.

Kung ang pag-upload ng iyong code ngunit ang iyong serial monitor input ay hindi makikilala, i-double check ang iyong mga tugma sa rate ng baud na tinukoy sa iyong sketch (38400 sa kasong ito).

Kung ang iyong input ng serial monitor ay tila hindi tama, i-double check ang iyong mga kable laban sa circuit diagram. Ang iyong 10K pull-up risistor ay nasa lugar ba sa pagitan ng data pin at 3.3V? Ang data at orasan ay konektado sa tamang mga pin? Ang kapangyarihan at lupa ba ay konektado tulad ng dapat sa buong circuit? Huwag magpatuloy hanggang sa gumana ang simpleng sketch na ito!

Ang susunod na hakbang ay tiyak sa ESP8266 at ise-configure ang opsyonal na bahagi ng pag-uulat ng wireless sensor ng sample na proyekto. Kung gumagamit ka ng isang karaniwang (hindi wireless) Arduino-compatible microcontroller, patuloy na paunlarin ang iyong huling Arduino sketch at laktawan upang Maghanda ng Solar Charging Board.

Hakbang 3: Pag-setup ng Software

Pag-setup ng Software
Pag-setup ng Software

Upang maipon ang code para sa proyektong ito sa ESP8266, kakailanganin mong mag-install ng ilang higit pang mga aklatan ng Arduino (magagamit sa pamamagitan ng manager ng library):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • ArduinoHttpClient

I-download ang code na naka-attach sa hakbang na ito, pagkatapos ay i-unzip ang file at buksan ang Solar_Powered_Soil_Moisture_Monitor_Tutorial sa iyong Arduino software.

# isama

#include #include #include #include // Tukuyin ang mga koneksyon ng data at orasan at i-instantiate ang bagay na SHT1x # tukuyin ang dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // set up the feed AdafruitIO_Feed * halumigmig = io.feed ("halumigmig"); AdafruitIO_Feed * temperatura = io.feed ("temperatura"); Const int sleepTime = 15; // 15 minuto

walang bisa ang pag-setup ()

{Serial.begin (115200); // Buksan ang serial connection upang mag-ulat ng mga halaga upang ma-host ang Serial.println ("Pagsisimula"); // kumonekta sa io.adafruit.com Serial.print ("Pagkonekta sa Adafruit IO"); io.connect (); // maghintay para sa isang koneksyon habang (io.status () <AIO_CONNected) {Serial.print ("."); pagkaantala (500); } // kami ay konektado sa Serial.println (); Serial.println (io.statusText ()); }

walang bisa loop ()

{io.run (); // io.run (); pinapanatili ang client na konektado at kinakailangan para sa lahat ng mga sketch. lumutang temp_c; lumutang temp_f; lumutang ang kahalumigmigan; temp_c = sht1x.readTemperatureC (); // Basahin ang mga halaga mula sa sensor temp_f = sht1x.readTemperatureF (); kahalumigmigan = sht1x.readHumidity (); Serial.print ("Temperatura:"); // I-print ang mga halaga sa serial port Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Humidity:"); Serial.print (kahalumigmigan); Serial.println ("%"); halumigmig-> makatipid (kahalumigmigan); temperatura-> makatipid (temp_f); Serial.println ("natutulog ang ESP8266 …"); ESP.deepS Sleep (sleepTime * 1000000 * 60); // Sleep}

Ang code na ito ay isang mashup ng sensor code mula nang mas maaga sa tutorial na ito at isang pangunahing halimbawa mula sa serbisyo ng data ng cloud na Adafruit IO. Ang programa ay pumapasok sa mababang mode ng kuryente at natutulog ng madalas, ngunit gigising tuwing 15 minuto upang basahin ang temperatura at halumigmig ng lupa, at iniuulat ang data nito sa Adafruit IO. Mag-navigate sa tab na config.h at punan ang iyong Adafruit IO username at key, pati na rin ang iyong lokal na pangalan ng wifi network at password, pagkatapos ay i-upload ang code sa iyong ESP8266 microcontroller.

Larawan
Larawan

Kakailanganin mong gumawa ng kaunting paghahanda sa io.adafruit.com. Matapos lumikha ng mga feed para sa temperatura at halumigmig, maaari kang lumikha ng isang dashboard para sa iyong monitor na nagtatampok ng isang graph ng mga halaga ng sensor at parehong data ng papasok na feed. Kung kailangan mo ng isang pagre-refresh sa pagsisimula sa Adafruit IO, tingnan ang araling ito sa aking Internet of Things Class.

Hakbang 4: Maghanda ng Solar Charging Board

Maghanda ng Solar Charging Board
Maghanda ng Solar Charging Board

Ihanda ang solar charge board sa pamamagitan ng paghihinang sa capacitor nito at ilang mga wires sa mga load output pad. Pinasadya ko ang minahan na singilin sa isang mas mabilis na rate gamit ang isang opsyonal na add-on risistor (2.2K na solder sa buong PROG) at ginagawa itong mas ligtas na iwanan nang walang nag-aalaga sa pamamagitan ng pagpapalit sa ibabaw ng mount resistor ng isang 10K thermistor na nakakabit sa mismong baterya. Limitahan nito ang pagsingil upang ligtas ang saklaw ng temperatura. Saklaw ko ang mga pagbabagong ito nang mas detalyado sa aking proyekto sa Solar USB Charger.

Hakbang 5: Bumuo ng Microcontroller Circuit

Bumuo ng Microcontroller Circuit
Bumuo ng Microcontroller Circuit
Larawan
Larawan
Larawan
Larawan

Paghinang ng board ng microcontroller at paglipat ng kuryente sa isang perma-proto board.

Larawan
Larawan

Ikonekta ang output ng power ng solar charger sa input ng iyong switch, na dapat ma-rate nang hindi bababa sa 1 amp.

Larawan
Larawan

Lumikha at maghinang ng mga koneksyon ng wire ng tinapay na inilarawan sa circuit diagram sa itaas (o sa mga pagtutukoy ng iyong personal na bersyon), kasama ang 10K pull-up risistor sa linya ng data ng sensor.

Ang mga pin ng Load ng charger ng solar ay magbibigay ng lakas ng baterya ng 3.7V kapag walang umiiral na solar power, ngunit direktang pinalalakas mula sa solar panel kung ito ay naka-plug in at maaraw. Samakatuwid ang microcontroller ay dapat na tiisin ang iba't ibang mga voltages, kasing baba ng 3.7V at hanggang sa 6V DC. Para sa mga nangangailangan ng 5V, maaaring magamit ang isang PowerBoost (500 o 1000, depende sa kasalukuyang kinakailangan) upang i-modulate ang Load boltahe sa 5V (tulad ng ipinakita sa proyekto ng Solar USB Charger). Narito ang ilang mga karaniwang board at ang kanilang mga saklaw ng boltahe ng pag-input:

  • NodeMCU ESP8266 (ginamit dito): 5V USB o 3.7V-10V Vin
  • Arduino Uno: 5V USB o 7-12V Vin
  • Adafruit Huzzah ESP8266 Breakout: 5V USB o 3.4-6V VBat

Upang makamit ang pinakamahabang posibleng buhay ng baterya, dapat kang maglaan ng kaunting oras upang isaalang-alang at ma-optimize ang kabuuang kasalukuyang iyong kasalukuyang pagguhit. Ang ESP8266 ay may malalim na tampok sa pagtulog na ginamit namin sa Arduino sketch upang mabawasan nang malaki ang pagkonsumo ng kuryente nito. Gumising ito upang basahin ang sensor at gumuhit ng mas maraming kasalukuyang habang kumokonekta ito sa network upang iulat ang halaga ng sensor, pagkatapos ay bumalik sa pagtulog para sa isang tinukoy na dami ng oras. Kung ang iyong microcontroller ay nakakakuha ng maraming lakas at hindi madaling matulog, isaalang-alang ang paglilipat ng iyong proyekto sa isang katugmang board na kumukuha ng mas kaunting lakas. Mag-drop ng isang katanungan sa mga komento sa ibaba kung kailangan mo ng tulong na makilala kung aling board ang maaaring tama para sa iyong proyekto.

Hakbang 6: Mag-install ng Mga Glandula ng Cable

Larawan
Larawan

Upang makagawa ng mga pointproof entry na hindi tinatablan ng panahon para sa solar panel cable at sensor cable, mag-i-install kami ng dalawang mga glandula ng cable sa gilid ng enclosure ng hindi tinatablan ng panahon.

Larawan
Larawan
Larawan
Larawan

Pagsubok magkasya sa iyong mga bahagi upang makilala ang perpektong pagkakalagay, pagkatapos markahan at mag-drill ng mga butas sa isang hindi tinatagusan ng tubig enclosure gamit ang isang hakbang na drill. I-install ang dalawang mga glandula ng cable.

Larawan
Larawan

Hakbang 7: Kumpletuhin ang Circuit Assembly

Kumpletuhin ang Circuit Assembly
Kumpletuhin ang Circuit Assembly

Ipasok ang bahagi ng port ng isang hindi tinatagusan ng tubig na cable sa isa at solder ito sa input ng solar charger DC (pula hanggang + at itim sa -).

Larawan
Larawan

Ipasok ang sensor ng lupa sa pamamagitan ng iba pang glandula, at ikonekta ito hanggang sa perma-proto ayon sa circuit diagram.

Larawan
Larawan

Tape ang thermistor probe sa baterya. Limitahan nito ang pagsingil sa isang ligtas na saklaw ng temperatura habang ang proyekto ay naiwan nang walang nag-iingat sa labas.

Larawan
Larawan

Ang pagsingil habang masyadong mainit o sobrang lamig ay maaaring makapinsala sa baterya o magsimula ng sunog. Ang pagkakalantad sa matinding temperatura ay maaaring maging sanhi ng pinsala at paikliin ang buhay ng baterya, kaya dalhin ito sa loob kung nasa ibaba ito ng pagyeyelo o higit sa 45 ℃ / 113F.

Larawan
Larawan

Higpitan ang mga glandula ng cable upang makagawa ng isang hindi tinatagusan ng panahon na selyo sa paligid ng kani-kanilang mga kable.

Hakbang 8: Maghanda ng Solar Panel

Maghanda ng Solar Panel
Maghanda ng Solar Panel

Sundin ang aking Makatuturo upang i-splice ang cable para sa iyong solar panel na may plug na bahagi ng hindi tinatagusan ng tubig DC set ng cable.

Hakbang 9: Subukan Ito

Subukan Mo Ito
Subukan Mo Ito

I-plug ang iyong baterya at i-on ang circuit sa pamamagitan ng pagpindot sa switch ng kuryente.

Larawan
Larawan

Subukan ito at tiyaking nag-uulat ito sa internet bago isara ang enclosure at i-install ang sensor sa iyong halamanan ng halaman, mahalagang palayok na halaman, o iba pang lupa sa loob ng saklaw ng signal ng iyong wifi network.

Larawan
Larawan

Sa sandaling ang data mula sa sensor ay naka-log online, madaling mag-set up ng isang recipe para sa mga alerto sa email o teksto sa site ng gateway ng API Kung Ito Pagkatapos Iyon. Na-configure ko ang akin upang i-email sa akin kung ang antas ng kahalumigmigan ng lupa ay bumaba sa ibaba 50.

Upang subukan ito nang hindi hinihintay ang aking halaman na matuyo, manu-mano akong nagpasok ng isang data point sa aking halumigmig feed sa Adafruit IO na nahulog sa ibaba ng threshold. Makalipas ang ilang sandali, dumating ang email! Kung ang mga antas ng lupa ay nahuhulog sa ibaba ng tinukoy kong antas, makakakuha ako ng isang email sa tuwing na-update ang feed hanggang sa natubigan ko ang lupa. Para sa aking katinuan, na-update ko ang aking code upang mai-sample ang lupa nang mas madalas kaysa sa bawat 15 minuto.

Hakbang 10: Gamitin Ito sa Labas

Gamitin Ito sa Labas!
Gamitin Ito sa Labas!
Gamitin Ito sa Labas!
Gamitin Ito sa Labas!

Ito ay isang nakakatuwang proyekto upang ipasadya batay sa mga pangangailangan sa hydration ng iyong halaman, at madaling magpalit o magdagdag ng mga sensor o isama ang mga tampok na solar power sa iyong iba pang mga proyekto ng Arduino.

Salamat sa pagsunod! Gusto kong marinig kung ano ang iniisip mo; mangyaring mag-post up sa mga komento. Ang proyektong ito ay bahagi ng aking libreng Solar Class, kung saan makakahanap ka ng mga madaling proyekto sa likod-bahay at maraming mga aralin sa pagtatrabaho sa mga solar panel. Suriin ito at magpatala!

Kung gusto mo ang proyektong ito, maaaring interesado ka sa ilan pa sa aking iba:

  • libreng Klase sa Internet ng Bagay
  • Counter ng Subscriber ng YouTube na may ESP8266
  • Display ng Tracker ng Social Stats kasama ang ESP8266
  • Display sa Panahon ng WiFi na may ESP8266
  • Internet Valentine

Upang makasabay sa ginagawa ko, sundan ako sa YouTube, Instagram, Twitter, Pinterest, at Snapchat.

Inirerekumendang: