Talaan ng mga Nilalaman:

IoT Panlabas na Pinto ng Alagang Hayop: 6 Mga Hakbang (na may Mga Larawan)
IoT Panlabas na Pinto ng Alagang Hayop: 6 Mga Hakbang (na may Mga Larawan)

Video: IoT Panlabas na Pinto ng Alagang Hayop: 6 Mga Hakbang (na may Mga Larawan)

Video: IoT Panlabas na Pinto ng Alagang Hayop: 6 Mga Hakbang (na may Mga Larawan)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Hulyo
Anonim
IoT Panlabas na Pinto ng Alagang Hayop
IoT Panlabas na Pinto ng Alagang Hayop
IoT Panlabas na Pinto ng Alagang Hayop
IoT Panlabas na Pinto ng Alagang Hayop
IoT Panlabas na Pinto ng Alagang Hayop
IoT Panlabas na Pinto ng Alagang Hayop
IoT Panlabas na Pinto ng Alagang Hayop
IoT Panlabas na Pinto ng Alagang Hayop

Naging inspirasyon ako ng itinuturo na ito upang lumikha ng isang awtomatikong pinto ng manukan. Hindi ko nais ang pintuan ng manukan sa isang timer, ngunit nais ko ring ikonekta ang pinto sa internet upang makontrol ko ito sa aking telepono o sa aking computer. Ang pintuang ito ay itinayo para sa aking manukan, gayunpaman, madali itong mailalapat sa iba pang mga uri ng pabahay para sa iba't ibang mga alagang hayop. Maaari mo ring gamitin ang iba't ibang mga uri ng 12V na motor bukod sa ginamit kong motor na antena ng kotse.

Matapos ang pag-set up at pagkonekta sa Adafruit IO at IFTTT sa aking ESP8266, ang pintuan ng aking manukan ay maaaring makontrol sa online. Ang pinto ay maaaring buksan o sarado:

1) Sa eksaktong mga oras na ipinasok ko sa adafruit.io

2) Sa pamamagitan ng pagtulak ng isang pindutan sa aking telepono

3) Sa pamamagitan ng pagpapadala ng isang text message sa isang tukoy na numero

4) Sa pamamagitan ng pag-click sa isang pindutan sa adafruit.io

5) Sa pamamagitan ng pagtulak ng isang pisikal na pindutan

Sa tuktok ng mga tampok na iyon, ang pinto ng manukan ay maaaring magpadala ng mga abiso sa push sa aking telepono sa pamamagitan ng IFTTT app tungkol sa anumang mga problema sa pinto tulad ng hindi pagbukas o pagsara ng pinto.

Dahil ang aking manukan ay nasa labas ng halos 500 piye ang layo mula sa aking WiFi router, gumamit ako ng isang 433MHz RFM69HCW transmitter at receiver na ipinares sa isang ESP8266 upang magawa ang proyektong ito. Mayroong isang itim na panloob na kahon ng transmiter na may hardware na nakakonekta sa internet at isang kulay abong panlabas na kahon ng tatanggap na kumokontrol sa motor.

Ang magtuturo na ito ay magdadala sa iyo sa proseso ng paglikha ng kinakailangang hardware upang makontrol ang isang 12V motor na magbubukas o magsasara ng pintuan ng aking manukan.

Ginamit ko ang mga sumusunod na bahagi:

Adafruit 32u4 na may 433MHz RFM69HCW - $ 25

Adafruit MCP23017 I2C 16 input / output port expander IC - $ 2.95

Adafruit Feather HUZZAH na may ESP8266 WiFi - $ 16.95

Adafruit Radio FeatherWing 433MHz RFM69HCW - $ 10

Adafruit SMA Connector para sa 1.6 mm makapal na mga PCB - $ 2.50

Adafruit uFL SMA Antenna Connector - $ 0.75

Button ng Push ng Adafruit RGB - $ 10.95

12V power supply - $ 7

5V USB power supply - $ 7

Micro USB Cable - $ 5

4 Channel Relay Board (maaaring gumamit ng 2 channel) - $ 7

DC-DC Buck Converter (isa lang ang ginamit ngunit dumating bilang isang pack ng 5) - $ 20

Reed Switch (magnetic door switch sensor) - $ 9

2x 433MHz Omnidirectional Antenna - $ 6

uFL sa SMA Cable Adapter (ginamit lamang ang isa ngunit dumating bilang pack ng 2) - $ 5

Hindi tinatagusan ng tubig sa labas ng kahon ng proyekto ng ABS - $ 11

Itim na kahon ng proyekto ng ABS - $ 10

20x4 Blue Character LCD - $ 10

12V Car Antenna Motor - ~ $ 25 sa ebay

Wire at resistors

Hakbang 1: Panlabas na Tagatanggap

Panlabas na Tagatanggap
Panlabas na Tagatanggap
Panlabas na Tagatanggap
Panlabas na Tagatanggap

Ang panlabas na tatanggap ay binubuo ng isang Adafruit 32u4 na may 433MHz RFM69HCW na konektado sa ilang mga relay na nakabukas o naka-off na kuryente para sa isang 12V motor. Ang mga modyul na ito pati na rin ang isang 12V hanggang 5V DC-DC converter ay nasa loob ng isang hindi tinatagusan ng tubig na grey na kahon ng proyekto. Sa wakas, mayroong isang sensor ng switch ng pinto na nakakonekta sa isa sa mga pin ng 32u4 Arduino microcontroller na nararamdaman kung ang pintuan ay maayos na binuksan o sarado kapag dapat ito magkaroon.

Tuwing 15 segundo, magpapadala ang panloob na transmitter ng "Buksan" o "Isara." Batay sa natanggap na utos, ang Arduino 32u4 ay bubukas o papatay sa isang relay. Para sa motor na pinili ko, na isang lumang motor ng antena ng kotse, kinailangan kong i-on o i-off ang dalawang mga relay dahil sa kung paano naka-wire ang motor. Talaga mayroong isang relay upang i-on ang lakas at pagkatapos ay isa pang relay na kumokontrol kung o hindi ang motor ay pinalawig o binawi.

Kapag natanggap ang bukas o malapit na paghahatid, ang panlabas na tatanggap ay tumutugon sa "sensorOpen" o "sensorClosed" upang ipahiwatig ang katayuan ng sensor ng switch ng pinto. Sa isip, ang "bukas" na utos ay magbabalik ng isang "sensorOpen" na tugon, gayunpaman, kung ang pintuan ay makaalis o ang mga jam ng motor, hindi tutugma ang mga ito. Kapag hindi sila tumutugma, ipapakita ng panloob na transmitter ang impormasyong iyon at isang push notification ay ipapadala sa iyong telepono.

Hakbang 2: Pagkonekta sa Hardware ng Panlabas na Tagatanggap

Kumokonekta sa Hardware sa Panlabas na Tagatanggap
Kumokonekta sa Hardware sa Panlabas na Tagatanggap
Kumokonekta sa Hardware sa Panlabas na Tagatanggap
Kumokonekta sa Hardware sa Panlabas na Tagatanggap
Kumokonekta sa Hardware sa Panlabas na Tagatanggap
Kumokonekta sa Hardware sa Panlabas na Tagatanggap

Ang hardware para sa panlabas na tatanggap ay hindi masyadong mahirap na mag-wire up. Nagsama ako ng isang nakakagulat na eskematiko sa ibaba upang ang mga pin na ginamit ko ay madaling matingnan.

Tulad ng sinabi ko sa itaas, ang motor na ginamit ko ay nangangailangan ng dalawang relay. Nagsama ako ng larawan ng pinout. Ang pangalawang ikinonekta mo ang 12V sa pulang kawad, ang motor ay babawi kung pinahaba ito. Kung ikonekta mo ang 12V sa pulang kawad at ang berdeng kawad nang sabay, ang motor ay magpapalawak.

Ang reed switch na na-link ko sa itaas ay dapat na i-wire bilang isang normal na closed switch. Ang pagkakaiba sa pagitan ng karaniwang bukas at karaniwang sarado ay ipinaliwanag sa larawan na aking ikinabit sa itaas. Gamit ang software, mayroong isang panloob na resistor na pullup na nakakabit sa input pin sa 32u4, kaya ang kailangan mo lang gawin ay ikonekta ang switch ng pinto sa input pin at din sa lupa.

Kakailanganin mong ikabit ang isang antena sa Adafruit 32u4. Mangyaring suriin ang talagang naipaliwanag na tutorial ng Adafruit sa hakbang na ito. Pinili kong gumamit ng isang panlabas na antena sa halip na isang piraso ng kawad upang makakuha ng mas mahusay na saklaw.

Hakbang 3: Panloob na Transmitter

Panloob na Transmitter
Panloob na Transmitter
Panloob na Transmitter
Panloob na Transmitter
Panloob na Transmitter
Panloob na Transmitter

Ang panloob na transmiter ay binubuo ng isang Adafruit Radio FeatherWing 433MHz RFM69HCW na nakasalansan sa tuktok ng isang Adafruit Feather HUZZAH na may ESP8266 WiFi. Ang mga modyul na ito ay konektado sa isang pagpapakita ng character na 20x4 at isang pindutan ng pilak na RGB sa loob ng isang itim na kahon ng proyekto.

Ang display ay may naka-sync na orasan ng NTC, ang lakas ng RSSI sa dB (sumusukat sa lakas ng mga signal ng radyo), oras na magbubukas ang pintuan ng manukan, oras na magsasara ang pintuan ng manukan, at kasalukuyang kalagayan ng pinto. Ang pindutan ay pula kapag ang pinto ay sarado at berde kapag ang pinto ay bukas.

Kung ang panlabas na tatanggap ay mawalan ng lakas o kung ang 433MHz signal ay hindi maipadala para sa anumang kadahilanan, ang display at RGB button ay mapupunta sa una sa dalawang posibleng mga mode ng error. Sa unang mode ng error, sasabihin ng display na "ERROR! Subukang i-restart ang panlabas na tatanggap." at ang pindutan ay walang kulay. Kung nakita ng sensor switch switch na ang pintuan ay hindi maayos na nakasara o nakabukas, ang display at RGB button ay mapupunta sa pangalawa ng dalawang mga mode ng error. Sa pangalawang mode ng error, sasabihin ng display na "ERROR! Isyu sa pintuan o switch sensor." at ang pindutan ay walang kulay. Kapag nalutas ng isyu ang sarili nito, ang display at RGB button ay babalik sa normal. Maaari kang makatanggap ng mga abiso sa push sa iyong telepono kung maganap ang alinman sa mga mode ng error na ito (I'll go over that setup in a later step).

Hakbang 4: Pagkonekta sa Indoor Transmitter Hardware

Pagkonekta sa Indoor Transmitter Hardware
Pagkonekta sa Indoor Transmitter Hardware
Pagkonekta sa Indoor Transmitter Hardware
Pagkonekta sa Indoor Transmitter Hardware

Matapos i-stack ang Adafruit Radio FeatherWing 433MHz RFM69HCW sa tuktok ng isang Adafruit Feather HUZZAH na may ESP8266 WiFi, mayroon lamang 2 mga natitirang mga pin na hindi nakuha, ang I2C pin SDA at SCL. Ito ang dahilan kung bakit ako nagpunta sa MCP23017 integrated circuit (IC). Ito ay isang talagang cool na IC na nagkokonekta hanggang sa 16 karagdagang mga input / output pin sa anumang microcontroller sa paglipas ng I2C. Dagdag pa, mayroong isang paunang nakasulat na silid-aklatan na tinatawag na Adafruit-RGB-LCD-Shield na gumagamit ng IC na ito na may isang pagpapakita ng character na teknikal na nakasulat para sa produktong Adafruit na ito, subalit, perpektong gumagana ito para sa proyektong ito.

Ang ideya na gamitin ang MCP23017 na may isang pagpapakita ng character ay nagmula sa napakahusay na nakasulat na itinuturo na ito. Tignan mo!

Kinuha ko ang itinuro na iyon at sa halip na ikonekta ang maraming mga pindutan at isang display na RGB sa IC, nakakonekta ko lamang ang isang pindutan na mayroong RGB LED sa loob nito at isang display na monochrome sa IC. Pinayagan akong tukuyin ang PIN 1 ng IC (karaniwang ginagamit para sa asul na backlight ng isang display na RGB) bilang backlight para sa aking monochrome display, PIN 28 (karaniwang ginagamit para sa berdeng backlight ng isang RGB display) bilang pulang LED sa loob ng button, at PIN 27 (karaniwang ginagamit para sa pulang backlight ng isang RGB display) bilang berdeng LED sa loob ng pindutan. Ang PIN 24 ay konektado sa isang gilid ng pindutan at ang kabilang panig ay konektado sa lupa. Maaari mong makita ang pinout ng pindutan sa larawan na nakakabit sa itaas (Iniwan ko ang asul na katod na naka-disconnect).

Bukod sa paggamit ng itinuturo na na-link ko upang matulungan ang wire up ng display, nagsama ako ng isang fritzing skematik na makakatulong sa iyong ikonekta ang lahat.

Kakailanganin mong paikliin ang tatlong mga pin sa tuktok ng FeatherWing 433MHz RFM69HCW tulad ng ipinaliwanag ng tutorial ng Adafruit na ito. Kakailanganin mo ring maglakip ng isang antena sa FeatherWing 433MHz RFM69HCW. Mangyaring suriin ang talagang naipaliwanag na tutorial ng Adafruit sa hakbang na ito. Pinili kong gumamit ng isang panlabas na antena na may isang nakakabit na konektor ng SMA sa halip na isang piraso ng kawad upang makakuha ng mas mahusay na saklaw.

Hakbang 5: Pagkonekta sa Adafruit. IO at IFTTT

Kumokonekta sa Adafruit. IO at IFTTT
Kumokonekta sa Adafruit. IO at IFTTT
Kumokonekta sa Adafruit. IO at IFTTT
Kumokonekta sa Adafruit. IO at IFTTT

Adafruit IO:

Mangyaring sundin ang mga tagubilin sa tutorial ng Adafruit na ito upang mag-sign up para sa Adafruit. IO kung wala kang isang account. Dapat mo ring basahin ang tungkol sa kung ano ang isang feed at isang dashboard.

Sa simpleng mga termino, ang isang dashboard ay isang uri ng tulad ng graphic na interface ng gumagamit habang ang mga feed ay kung saan ka nagpapadala ng data upang maimbak mo ito sa internet. Kakailanganin mong lumikha ng 1 Dashboard at 4 na feed. Pinangalanan ko ang minahan bago ko alam kung paano baybayin nang tama ang manukan, kaya't mangyaring patawarin ang maling spelling. Kung hindi mo nais na palitan ang pangalan ng mga pangalan ng feed sa arduino code, gamitin lamang ang parehong pagpapangalan na ginawa ko.

Lumikha muna ng apat na feed:

1) "Chicken Coup" Ito ay para sa Open / Closed switch

2) "Chicken Coup Timer" Ito ay para sa bukas na timer

3) "Chicken Coup Timer 2" Ito ay para sa malapit na timer

4) "Mensahe ng Chicken Coup Error" Ito ay para sa mga mensahe ng error

Lumikha ng isang dashboard na susunod na tinatawag na Chicken coup at magdagdag ng 4 na mga bloke gamit ang asul na + button. Mangyaring tingnan ang larawan sa itaas para sa mga uri ng mga bloke na dapat mong ilagay pati na rin ang mga pangalan ng mga bloke. Siguraduhing pangalanan ang mga katayuan ng switch na eksaktong "Buksan" at "Sarado"

IFTTT:

Ang bahagi ng IFTTT ng proyektong ito ay nagdaragdag ng kakayahang itulak ang isang pindutan sa iyong telepono at magpadala ng isang teksto upang buksan o isara ang pinto ng manukan. Pinapayagan din nito ang IFTTT app na magpadala sa iyo ng mga push notification kung may na-publish sa feed ng Mensahe ng Error ng Chicken Coup. Kung hindi mo nais ang mga kakayahang ito, maaari mong laktawan ang seksyong ito.

Una, mag-set up ng isang IFTTT account kung wala ka pa. Kung nais mong gamitin ang paunang ginawa na mga applet na nilikha ko, mag-navigate lamang sa aking account at i-on ang mga applet na gusto mo. Kung hindi man, kakailanganin mong lumikha ng iyong sarili, at mag-subscribe o mag-publish sa adafruit feed na nilikha mo sa itaas.

Hakbang 6: Pag-upload ng Code at Pag-edit sa WiFi SSID at Password

Kakailanganin mong dumaan sa pahinang ito ng tutorial ng Adafruit upang makapag-upload ng code sa panloob na transmiter.

Kakailanganin mong dumaan sa pahinang ito ng tutorial ng Adafruit upang makapag-upload ng code sa panlabas na tatanggap.

Kakailanganin mong i-install ang RFM69 library, ang Adafruit_RGBLCDShield library, ang library ng orasan ng NTC na tinatawag na simpleDSTadjust, at ang ticker library. Maaari kang makahanap ng isang tutorial sa kung paano ito gawin dito.

Buksan ang Arduino IDE at i-upload ang "Outdoor_Receiver.ino" code sa panlabas na Arduino 32u4 sa isang USB cable.

Pagkatapos, buksan ang "Indoor_Transmitter.ino", buksan ang tab na config.h, at ipasok ang iyong pangalan ng WiFi (SSID) at password sa loob ng mga panipi. Pagkatapos, kunin ang iyong Adafruit. IO username at IO Key sa pamamagitan ng pagsunod sa pahina ng tutorial na ito at ipasok ito sa tab na config.h.

Kung binago mo ang mga pangalan ng feed ng Adafruit IO, kakailanganin mong i-edit ang code sa pangunahing tab na Indoor_Transmitter. I-edit ang sumusunod:

AdafruitIO_Feed * toggleSwitch = io.feed ("Chicken Coup");

AdafruitIO_Feed * timer = io.feed ("Chicken Coup Timer");

AdafruitIO_Feed * timer2 = io.feed ("Chicken Coup Timer 2");

AdafruitIO_Feed * error = io.feed ("Mensahe ng Error sa Coup ng Chicken");

Iyon lang dapat ang gawin mo! Kung nais mong higit na maunawaan kung paano gumagana ang dalawang sketch, binigyan ko ng puna ang code. Mangyaring ipaalam sa akin kung mayroon kang anumang mga katanungan. Good luck!

Inirerekumendang: