Talaan ng mga Nilalaman:

Arduino DHT22 Sensor at Soil Moisture Project Na May Menu: 4 Mga Hakbang
Arduino DHT22 Sensor at Soil Moisture Project Na May Menu: 4 Mga Hakbang

Video: Arduino DHT22 Sensor at Soil Moisture Project Na May Menu: 4 Mga Hakbang

Video: Arduino DHT22 Sensor at Soil Moisture Project Na May Menu: 4 Mga Hakbang
Video: Water Your Garden with IoT - Soil Moisture Sensors 2024, Nobyembre
Anonim
Arduino DHT22 Sensor at Soil Moisture Project Sa Menu
Arduino DHT22 Sensor at Soil Moisture Project Sa Menu

Kumusta mga tao Ngayon ipinakita ko sa iyo ang aking pangalawang proyekto sa mga itinuturo. Ipinapakita ng proyektong ito ang halo ng aking unang proyekto kung saan ginamit ko ang Soil Moisture sensor at DHT22 sensor na ginagamit para sa pagsukat ng temperatura at halumigmig. Madaling gawin ang proyektong ito, at madarama ng mga taong gumagamit ng Arduino na tahimik na kagiliw-giliw na gawin. Ang pagkakaiba sa pagitan ng proyektong ito at ang una ay sa proyektong ito ang gumagamit ay magkakaroon ng menu kung saan maaari niyang mapili kung ano ang nais niyang makita sa ngayon. Magkakaroon ng apat na pagpipilian. Kaya grab mo kit at simulang gawin ang proyektong ito na maaaring magamit sa anumang bahay.

Hakbang 1: Pagkuha ng Lahat ng Mga Bahagi

Pagkuha ng Lahat ng Bahagi
Pagkuha ng Lahat ng Bahagi
Pagkuha ng Lahat ng Bahagi
Pagkuha ng Lahat ng Bahagi
Pagkuha ng Lahat ng Bahagi
Pagkuha ng Lahat ng Bahagi

Gumagamit ang proyektong ito ng kaunting bahagi. Ang mga bahaging ito ay napaka-murang makuha, kaya huwag mag-alala tungkol sa presyo. Ang ilan sa mga bahagi na ginamit sa proyektong ito ay maaaring mabago upang ang proyekto ay maaaring mas mura ang gawin. Nasa iyo kung aling mga bahagi ng inirekumenda ang gagamitin mo at gagawing mas mahusay ang proyektong ito. Mga bahaging ginamit sa proyektong ito:

  1. Arduino uno rev3 (Maaari mo ring gamitin ang iba pang Arduino)
  2. Breadboard
  3. LCD 1602 green display na may I2C (maaari mo ring gamitin ang display withous I2C ngunit kakailanganin mo ng higit pang mga pin upang ikonekta ito)
  4. 16 na pindutan ng keypad (Mapapalitan)
  5. FC-28-d module ng Pagkakita ng hygrometer ng lupa + sensor ng kahalumigmigan ng lupa
  6. DHT22 temperatura at kahalumigmigan sensor (Maaari mong gamitin ang DHT11 na mas mura upang makuha)
  7. Red LED diode
  8. Blue LED diode
  9. 2 Resistors 220 ohm (ginamit para sa diode)
  10. Ginamit ang 4k7 risistor para sa DHT22 sa eskematiko
  11. Konektor ng baterya ng Arduino
  12. Ilang mga jumper cable upang ikonekta ang lahat ng mga bahagi

Ang isang bagay na kailangan kong sabihin sa iyo bago mo simulang buuin ang proyektong ito ay hindi kinakailangan ang keypad. Gumamit ako ng keypad sa oras na ito dahil nasira ang aking rotary encoder. Sa palagay ko ang proyekto na ito ay magiging perpekto kung mayroon itong rotary encoder dahil gagamit ito ng mas kaunting mga pin, o maaari itong gumamit ng 3 mga pindutan.

Hakbang 2: Pagkonekta ng Lahat ng Mga Bahaging Magkasama

Pagkonekta ng Lahat ng Mga Bahagi
Pagkonekta ng Lahat ng Mga Bahagi

Sa hakbang na ito maaari mong makita ang iskema na ginawa ko sa pagprito. Sususulat ako ng mainit upang ikonekta ang bawat pangunahing bahagi ng proyektong ito.

Tulad ng nakikita mong gumagamit kami ng 5V at GND mula sa arduino upang mapagana ang breadboard.

LCD:

  • VCC hanggang 5v (+ bahagi sa breadboard)
  • GND to gnd (- bahagi sa breadboard)
  • Ang SDA sa analog pin A4
  • Ang SCL sa analog pin na A5

Keypad na may 16 na mga pindutan:

Gumagamit kami ng mga pin 9, 8, 7, 6, 5, 4, 3, 2 upang ikonekta ang keypad (ito ang dahilan kung bakit gagamitin ako ng rotary encoder, dahil kukuha lamang ito ng 3 pin sa board)

Soil Moisture Sensor:

  • VCC hanggang 5v (+ bahagi sa breadboard)
  • GND sa gnd (-bahagi sa breadboard)
  • D0 sa digital pin 0
  • A0 sa analog pin na A0

DHT22:

  • VCC hanggang 5v (+ bahagi sa breadboard)
  • GND sa gnd (-part sa breadboard)
  • Ang out pin ay konektado sa pin 12

Pagkonekta sa diode:

  • ang isang bahagi ng diode ay napupunta - bahagi ng breadboard
  • ang pangalawang bahagi ay dumadaan sa risistor ng 220 ohm at pagkatapos nito ay kumonekta sa pin 10 (asul na diode) o 11 (red diode)

Hakbang 3: Code sa Pagsulat

Susubukan kong ipaliwanag ang code sa ilang mga bahagi. Isusulat din ang buong code upang makopya mo ito at baguhin din ito kung may nakikita kang pangangailangan. Gayundin sa code na ito mayroong nakasulat na ilang mga pamamaraan para sa gawain ng sensor, ngunit sa oras na ito ang pangunahing pokus ay ang paglikha ng menu na madaling maunawaan para sa mga taong bago sa Arduino. Sa oras na ito hindi ako gumagamit ng anumang mga nakakagambala ngunit sa aking mga susunod na proyekto ay gagawin ko, kaya tandaan na ang code na ito ay maaaring maging mas mahusay sa mga pagkagambala.

  1. Ang unang bahagi ng code ay kasama ang lahat ng mga ginamit na aklatan para sa proyektong ito. Tandaan na para sa lahat ng mga bahagi na sinabi ko na ginagamit ko kailangan mo ng mga susunod na aklatan: Wire, LiquidCrystal_I2C, Keypad at DHT. Ang lahat ng mga aklatan ay matatagpuan sa Arduino IDE kung pupunta ka sa bahagi ng sketch at pagkatapos ay isama ang mga aklatan. Tandaan din na kung gumamit ka ng isang bagay tulad ng rotary encoder malamang na kailangan mong makakuha ng mga bagong aklatan sa halip na keypad, na marahil ay paikutin.h at pindutan. Kung gumagamit ka ng sensor ng DHT11 ang library ay DHT pa rin.
  2. Sa pangalawang bahagi ng code magkakaroon ng pagtukoy ng lahat ng ginamit na mga bahagi. Una sa lahat ay LCD. Pagkatapos nito ay mayroong sensor ng DHT na kinakatawan tulad ng object na may dht uri ng sensor, at isang pin din na nag-uugnay. Ang soil Moisture sensor at diode ay pangatlo.
  3. Ilalarawan ko pa ang keypad nang kaunti pa. Tulad ng sinabi kong nasira ang aking rotary encoder, kaya't nagpasya akong gamitin ito. Para sa proyektong ito ay sapat na magkaroon lamang ng apat na mga pindutan, kahit na ang tatlo ay mabuti para dito. Kaya't gumagamit ako ng apat na mga pindutan sa keypad para sa isang pagpipilian lamang. Maaari mong gamitin ang ilan sa mga pindutan kung nais mo para sa iba pa kung mayroon kang isang ideya. Kailangan mong tukuyin ang mga hilera at haligi sa bahaging ito. Pagkatapos nito ay kinakatawan ka ng hexaKeys ng mga pagpipilian na ginamit para sa proyektong ito. Sa aking proyekto mayroong mga B (likod), U (pataas), D (pababa) at A (tanggapin). Maaari kang gumawa ng bawat pindutan upang makagawa ng iba pa. Maaaring i-on ng isang pindutan ang backlight, maaari itong i-off. Kaya't huwag mag-atubiling maglaro dito nang higit pa
  4. Sa bahaging ito ang mga pandaigdigang variable na ginamit sa code. Gumagamit ang mga variable ng bool para sa pagbabago ng screen. Ang variable ng maligayang pagdating ay totoo sa loob ng ilang segundo lamang kapag ang arduino na na-on ko, pagkatapos nito ay magiging mali sa natitirang oras. Ang pangunahing pokus ay sa variable ng mainScreen. Ginagamit ang variable na ito upang gabayan ka mula sa menu patungo sa anumang iba pang pagpipilian sa code. Kung ang variable na ito ay hindi totoo kung gayon nangangahulugan iyon na nagpasya ang gumagamit na gumamit ng isa sa apat na pagpipilian ng proyektong ito.
  5. Dito nakasulat ang lahat ng mga pamamaraang ginamit sa code na ito. Susubukan kong ipaliwanag ang lahat ng nakasulat na pamamaraan sa bahaging ito
  • walang bisa startScreen (); // pamamaraan para sa pagsisimula ng proyekto at arduino
  • int choiceNumber (int choice); // binabago nito ang iyong pagpipilian ng mga pagpipilian ng proyekto. Ang numero ay mula 1 hanggang 4
  • void mainScreenP (int choice); // magkakaroon ng nakasulat na apat na pagpipilian ng aparato na ginawa
  • bool mainScreenCS (bool mainScreen); // binabago nito ang mainScreen sa false
  • bool mainScreenBack (bool mainScreen); // binabago nito ang mainScreen sa totoo
  • walang bisa TempCelsius (); // temperatura sa pagbabasa sa pagpipilian ng C DHT sensor
  • walang bisa TempFarenheit (); // temperatura sa pagbabasa sa pagpipilian ng F DHT sensor
  • walang bisa ang pag-printHumidity (); // pagpipilian sa pagbabasa ng kahalumigmigan DHT sensor
  • walang bisa ang readSensorData (); // pagbabasa ng data sa mga konektadong sensor
  • String getTemperatureC ();
  • String getTemperatureF ();
  • String getHumidity ();
  • walang bisa na lupaMoisture (); // ito ay para sa isa pang sensor at diode
  • walang bisa printSensorSoilMoisture (); // pag-print ng bahagi ng kahalumigmigan ng lupa sa lcd
  • void diodeLights (int halaga); // pag-on at pag-off diode
  • walang bisa ang printValue (int halaga);

6. Ang pag-set up para sa arduino ay bahagi kung saan mo na-set up ang LCD at DHT sensor at nag-diode din

7. Pangunahing bahagi ay ang bahagi kung saan ang lahat ng mga nakasulat na pamamaraan sa itaas ay ginagamit.

Ang buong code ng proyektong ito ay magiging kalakip ng hakbang na ito. Tandaan na may posibilidad na ang mga pin ay maaaring hindi konektado tulad ng sa eskematiko, sa palagay ko nabago ang mga diode.

Hakbang 4: Paggamit ng Iyong Arduino

Gamit ang Iyong Arduino
Gamit ang Iyong Arduino
Gamit ang Iyong Arduino
Gamit ang Iyong Arduino
Gamit ang Iyong Arduino
Gamit ang Iyong Arduino
Gamit ang Iyong Arduino
Gamit ang Iyong Arduino

Marahil ito ang pinakanakakatawang bahagi. Hindi bababa sa ito ay nakakatawa pagkatapos ng lahat ng pag-coding na nakasulat. Sa bahaging ito maaari mong makita ang mga larawan kung paano gumagana ang proyekto. Mayroong 4 na pagpipilian.

  1. Pagbasa ng temperatura sa Celsius
  2. Pagbasa ng temperatura sa Fahrenheit
  3. Pagbasa ng halumigmig
  4. Ang pag-on ng mga diode at pagbabasa ng mga halaga ng sensor ng kahalumigmigan ng lupa.

Maaari kang pumili ng alinman sa mga posibleng pagpipilian, maaari ka ring bumalik at pumili muli kung nais mong makakita ng iba pa. Madali at madaling gamitin.

Kung may anumang iba pang katanungan na maaari mong tanungin sa akin. Salamat sa iyo para sa pagtingin sa aking proyekto. Sa lahat ng pagbati. Sebastian

Inirerekumendang: