Satura rādītājs:

IoT āra mājdzīvnieku durvis: 6 soļi (ar attēliem)
IoT āra mājdzīvnieku durvis: 6 soļi (ar attēliem)

Video: IoT āra mājdzīvnieku durvis: 6 soļi (ar attēliem)

Video: IoT āra mājdzīvnieku durvis: 6 soļi (ar attēliem)
Video: BERMUDU DIVSTŪRIS x APVEDCEĻŠ - Brāl' Ar Dzīvi Nekaulē 2024, Jūlijs
Anonim
IoT āra mājdzīvnieku durvis
IoT āra mājdzīvnieku durvis
IoT āra mājdzīvnieku durvis
IoT āra mājdzīvnieku durvis
IoT āra mājdzīvnieku durvis
IoT āra mājdzīvnieku durvis
IoT āra mājdzīvnieku durvis
IoT āra mājdzīvnieku durvis

Mani iedvesmoja šī pamācība izveidot automātiskas vistas gaļas durvis. Es ne tikai gribēju, lai vistas gaļas durvis būtu uz taimera, bet arī gribēju savienot durvis ar internetu, lai es varētu tās kontrolēt ar savu tālruni vai datoru. Šīs durvis tika uzceltas manai vistas gaitai, tomēr tās varēja viegli pielietot cita veida mājokļiem dažādiem mājdzīvniekiem. Papildus vecajam automašīnas antenas motoram, kuru es izmantoju, jūs varētu izmantot arī dažāda veida 12 V motorus.

Pēc Adafruit IO un IFTTT iestatīšanas un savienošanas ar manu ESP8266, manas vistas gaļas durvis var kontrolēt tiešsaistē. Durvis var atvērt vai aizvērt:

1) Precīzos laikos, kad es ievadu adafruit.io

2) Nospiežot tālruņa pogu

3) Nosūtot īsziņu uz noteiktu numuru

4) Noklikšķinot uz pogas vietnē adafruit.io

5) Nospiežot fizisku pogu

Papildus šīm funkcijām vistas gaļas durvis var nosūtīt manam tālrunim push paziņojumus, izmantojot lietotni IFTTT par jebkādām durvju problēmām, piemēram, durvju atvēršanu vai aizvēršanu.

Tā kā mana vistas gaļa atrodas apmēram 500 pēdu attālumā no mana WiFi maršrutētāja, šī projekta īstenošanai es izmantoju 433 MHz RFM69HCW raidītāju un uztvērēju pārī ar ESP8266. Ir melna iekštelpu raidītāja kaste ar aparatūru, kas ir savienota ar internetu, un pelēka āra uztvērēja kārba, kas kontrolē motoru.

Šī pamācība palīdzēs jums izveidot aparatūru, kas nepieciešama, lai kontrolētu 12 V motoru, kas atver vai aizver manas vistas gaļas durvis.

Es izmantoju šādas daļas:

Adafruit 32u4 ar 433 MHz RFM69HCW - 25 ASV dolāri

Adafruit MCP23017 I2C 16 ieejas/izejas portu paplašinātāja IC - 2,95 ASV dolāri

Adafruit Feather HUZZAH ar ESP8266 WiFi - 16,95 ASV dolāri

Adafruit radio FeatherWing 433MHz RFM69HCW - 10 ASV dolāri

Adafruit SMA savienotājs 1,6 mm biezām PCB - 2,50 USD

Adafruit uFL SMA antenas savienotājs - 0,75 ASV dolāri

Adafruit RGB spiedpoga - 10,95 ASV dolāri

12 V barošanas avots - 7 ASV dolāri

5V USB barošanas avots - 7 ASV dolāri

Mikro USB kabelis - 5 ASV dolāri

4 kanālu releja dēlis (var izmantot 2 kanālus)- 7 ASV dolāri

DC -DC Buck Converter (izmantots tikai viens, bet komplektā ir 5 gab.) - 20 ASV dolāri

Niedru slēdzis (magnētiskais durvju slēdža sensors) - 9 USD

2x 433MHz daudzvirzienu antena - 6 ASV dolāri

uFL uz SMA kabeļa adapteris (lietots tikai viens, bet komplektā 2 gab.) - 5 ASV dolāri

Ūdensnecaurlaidīga āra ABS projekta kaste - 11 USD

Melna ABS projekta kaste - 10 USD

20x4 zila rakstura LCD - 10 ASV dolāri

12V automašīnas antenas motors - ~ 25 USD par ebay

Vads un rezistori

1. darbība: āra uztvērējs

Āra uztvērējs
Āra uztvērējs
Āra uztvērējs
Āra uztvērējs

Āra uztvērējs sastāv no Adafruit 32u4 ar 433 MHz RFM69HCW, kas savienots ar dažiem relejiem, kas ieslēdz vai izslēdz 12 V motora barošanu. Šie moduļi, kā arī 12V līdz 5V DC-DC pārveidotājs atrodas ūdensnecaurlaidīgā pelēkā projekta kastē. Visbeidzot, durvju slēdža sensors ir savienots ar vienu no 32u4 Arduino mikrokontrollera tapām, kas nosaka, vai durvis ir pareizi atvērtas vai aizvērtas, kad tas būtu bijis.

Ik pēc 15 sekundēm iekštelpu raidītājs nosūtīs paziņojumu “Atvērt” vai “Aizvērt”. Pamatojoties uz saņemto komandu, Arduino 32u4 ieslēgs vai izslēgs releju. Manis izvēlētajam motoram, kas ir vecs automašīnas antenas motors, man bija jāieslēdz vai jāizslēdz divi releji, jo motors ir pievienots vadam. Būtībā bija relejs strāvas ieslēgšanai un pēc tam cits relejs, kas kontrolēja, vai motors ir pagarināts vai ievilkts.

Kad tiek saņemta atvērtā vai aizvērtā pārraide, āra uztvērējs reaģē ar "sensorOpen" vai "sensorClosed", lai norādītu durvju slēdža sensora statusu. Ideālā gadījumā komanda "atvērt" atgriezīs atbildi "sensorOpen", tomēr, ja durvis iestrēgst vai motors iestrēgst, tās nesakritīs. Ja tie neatbilst, iekštelpu raidītājs parādīs šo informāciju un uz jūsu tālruni tiks nosūtīts push paziņojums.

2. darbība. Āra uztvērēja aparatūras pievienošana

Āra uztvērēja aparatūras pievienošana
Āra uztvērēja aparatūras pievienošana
Āra uztvērēja aparatūras pievienošana
Āra uztvērēja aparatūras pievienošana
Āra uztvērēja aparatūras pievienošana
Āra uztvērēja aparatūras pievienošana

Āra uztvērēja aparatūru nav pārāk grūti savienot. Tālāk es iekļāvu fritzes shēmu, lai manis izmantotās tapas varētu viegli apskatīt.

Kā es teicu iepriekš, manam motoram bija nepieciešami divi releji. Iekļauju pinout attēlu. Kad pievienosit 12V sarkanajam vadam, motors tiks ievilkts, ja tas tiks pagarināts. Ja vienlaikus pievienojat 12V sarkanajam un zaļajam vadam, motors pagarinās.

Niedru slēdzim, kuru es saistīju iepriekš, jābūt vadam kā parasti slēgtam slēdzim. Atšķirība starp parasti atvērtu un parasti aizvērtu ir paskaidrota iepriekš pievienotajā attēlā. Izmantojot programmatūru, 32u4 ieejas tapai ir pievienots iekšējs pievilkšanas rezistors, tāpēc viss, kas jums jādara, ir savienot durvju slēdzi ar ievades tapu un arī zemējumu.

Adafruit 32u4 jums būs jāpievieno antena. Lūdzu, pārbaudiet Adafruit patiešām labi izskaidroto apmācību par šo soli. Es izvēlējos stieples gabala vietā izmantot ārēju antenu, lai iegūtu labāku diapazonu.

3. solis: iekštelpu raidītājs

Iekštelpu raidītājs
Iekštelpu raidītājs
Iekštelpu raidītājs
Iekštelpu raidītājs
Iekštelpu raidītājs
Iekštelpu raidītājs

Iekštelpu raidītājs sastāv no Adafruit Radio FeatherWing 433MHz RFM69HCW, kas sakrauts virs Adafruit Feather HUZZAH ar ESP8266 WiFi. Šie moduļi ir savienoti ar 20x4 rakstzīmju displeju un RGB sudraba pogu melnā projekta kastē.

Displejā ir NTC sinhronizēts pulkstenis, RSSI stiprums dB (mēra radio signālu stiprumu), laiks, kad tiks atvērtas vistas gaļas durvis, laiks, kad vistas gaļas durvis tiks aizvērtas, un durvju pašreizējais statuss. Poga ir sarkana, kad durvis ir aizvērtas, un zaļa, kad durvis ir atvērtas.

Ja āra uztvērējs pārtrauc strāvas padevi vai 433 MHz signālu kāda iemesla dēļ nevar nosūtīt, displejs un RGB poga pāriet pirmajā no diviem iespējamiem kļūdu režīmiem. Pirmajā kļūdu režīmā displejā būs redzams paziņojums "KĻŪDA! Mēģiniet restartēt āra uztvērēju." un pogai nebūs krāsas. Ja durvju slēdža sensors konstatē, ka durvis nav pareizi aizvērtas vai atvērtas, displejs un RGB poga pāriet otrajā no diviem kļūdu režīmiem. Otrajā kļūdu režīmā displejā būs redzams paziņojums "KĻŪDA! Durvju vai slēdžu sensora problēma". un pogai nebūs krāsas. Kad problēma pati atrisināsies, displejs un RGB poga atgriezīsies normālā stāvoklī. Jūs varat saņemt push paziņojumus uz savu tālruni, ja rodas kāds no šiem kļūdu režīmiem (šo iestatījumu es apskatīšu vēlāk).

4. darbība: iekštelpu raidītāja aparatūras pievienošana

Iekštelpu raidītāja aparatūras pievienošana
Iekštelpu raidītāja aparatūras pievienošana
Iekštelpu raidītāja aparatūras pievienošana
Iekštelpu raidītāja aparatūras pievienošana

Pēc Adafruit Radio FeatherWing 433MHz RFM69HCW sakraušanas virs Adafruit Feather HUZZAH ar ESP8266 WiFi, ir palikušas tikai 2 tapas, kas nav ņemtas, I2C tapas SDA un SCL. Tāpēc es izvēlējos MCP23017 integrēto shēmu (IC). Tas ir patiešām foršs IC, kas savieno līdz pat 16 papildu ievades/izvades tapas ar jebkuru mikrokontrolleru, izmantojot I2C. Turklāt ir iepriekš uzrakstīta bibliotēka ar nosaukumu Adafruit-RGB-LCD-Shield, kas izmanto šo IC ar rakstzīmju displeju, kas tehniski ir rakstīts šim Adafruit produktam, tomēr tas lieliski darbojas šim projektam.

Ideja izmantot MCP23017 ar rakstzīmju displeju nāk no šīs ļoti labi uzrakstītās pamācības. Lūdzu, pārbaudiet to!

Es izmantoju šo pamācību un tā vietā, lai savienotu vairākas pogas un RGB displeju ar IC, es pievienoju tikai vienu pogu, kuras iekšpusē bija RGB gaismas diode un vienkrāsains displejs. Tas ļāva man definēt IC PIN 1 (parasti tiek izmantots RGB displeja zilajam apgaismojumam) kā mana vienkrāsainā displeja fona apgaismojumu, PIN 28 (parasti izmanto RGB displeja zaļajam apgaismojumam) kā sarkano gaismas diodi ekrāna iekšpusē. pogu un PIN 27 (parasti izmanto RGB displeja sarkanajam apgaismojumam) kā zaļo gaismas diodi pogas iekšpusē. PIN 24 tika pievienots pogas vienai pusei, bet otra puse - zemei. Jūs varat redzēt pogas izgriezumu attēlā, kas pievienots iepriekš (es atstāju atvienotu zilo katodu).

Papildus tam, ka es izmantoju norādīto norādījumu, lai palīdzētu savienot displeju, esmu iekļāvis fritzes shēmu, kas palīdzēs jums visu savienot.

FeatherWing 433MHz RFM69HCW augšpusē jums būs jāsaīsina trīs tapas, kā paskaidrots šajā Adafruit apmācībā. Jums būs jāpievieno arī antena FeatherWing 433MHz RFM69HCW. Lūdzu, pārbaudiet Adafruit patiešām labi izskaidroto apmācību par šo soli. Lai iegūtu labāku diapazonu, es izvēlējos izmantot ārējo antenu ar sānu stiprinājumu SMA savienotāju.

5. darbība. Savienojuma izveide ar Adafruit. IO un IFTTT

Savienojuma izveide ar Adafruit. IO un IFTTT
Savienojuma izveide ar Adafruit. IO un IFTTT
Savienojuma izveide ar Adafruit. IO un IFTTT
Savienojuma izveide ar Adafruit. IO un IFTTT

Adafruit IO:

Lūdzu, izpildiet šajā Adafruit apmācībā sniegtos norādījumus, lai reģistrētos Adafruit. IO, ja jums nav konta. Jums vajadzētu arī izlasīt par plūsmu un informācijas paneli.

Vienkārši sakot, informācijas panelis ir līdzīgs grafiskajam lietotāja interfeisam, savukārt plūsmas ir tās, uz kurām jūs sūtāt datus, lai tos varētu uzglabāt internetā. Jums būs jāizveido 1 informācijas panelis un 4 plūsmas. Es nosaucu savējo, pirms zināju, kā pareizi uzrakstīt vistas gaļu, tāpēc, lūdzu, piedodiet nepareizo pareizrakstību. Ja nevēlaties pārdēvēt plūsmas nosaukumus arduino kodā, izmantojiet to pašu nosaukumu, ko es izmantoju.

Vispirms izveidojiet četras plūsmas:

1) "Vistas apvērsums" Tas ir paredzēts slēdzim Atvērts/Aizvērts

2) "Vistas apvērsuma taimeris" Tas ir paredzēts atvērtajam taimerim

3) "Vistas apvērsuma taimeris 2" Šis ir slēgšanas taimeris

4) "Vistas apvērsuma kļūdas ziņojums" Tas attiecas uz kļūdu ziņojumiem

Tālāk izveidojiet informācijas paneli ar nosaukumu Chicken Coup un pievienojiet 4 blokus, izmantojot zilo pogu +. Lūdzu, skatiet iepriekš redzamo attēlu, kurā norādīti ievietotie bloku veidi, kā arī bloku nosaukumi. Noteikti nosauciet slēdža statusus tieši "Atvērts" un "Slēgts"

IFTTT:

Šī projekta IFTTT daļa papildina iespēju nospiest tālruņa pogu un nosūtīt tekstu, lai atvērtu vai aizvērtu vistas gaļas durvis. Tas arī ļauj IFTTT lietotnei nosūtīt jums push paziņojumus, ja kaut kas tiek publicēts vistas apvērsuma kļūdu ziņojumu plūsmā. Ja nevēlaties šīs iespējas, varat izlaist šo sadaļu.

Vispirms izveidojiet IFTTT kontu, ja jums tāda vēl nav. Ja vēlaties izmantot manis izveidotos sīklietotnes, vienkārši dodieties uz manu kontu un ieslēdziet vajadzīgos sīklietotnes. Pretējā gadījumā jums būs jāizveido savs un jāabonē vai jāpublicē iepriekš izveidotā adafruit barība.

6. darbība: koda augšupielāde un WiFi SSID un paroles rediģēšana

Lai augšupielādētu kodu iekštelpu raidītājā, jums būs jāiziet šī Adafruit apmācības lapa.

Lai augšupielādētu kodu āra uztvērējā, jums būs jāiziet šī Adafruit apmācības lapa.

Jums būs jāinstalē bibliotēka RFM69, bibliotēka Adafruit_RGBLCDShield, NTC pulksteņa bibliotēka ar nosaukumu simpleDSTadjust un atzīmju bibliotēka. Pamācību, kā to izdarīt, varat atrast šeit.

Atveriet Arduino IDE un augšupielādējiet kodu "Outdoor_Receiver.ino" āra Arduino 32u4, izmantojot USB kabeli.

Pēc tam atveriet "Indoor_Transmitter.ino", atveriet cilni config.h un pēdiņās ievadiet savu WiFi nosaukumu (SSID) un paroli. Pēc tam iegūstiet savu Adafruit. IO lietotājvārdu un IO atslēgu, sekojot šai apmācības lapai un ievadiet to cilnē config.h.

Ja mainījāt Adafruit IO plūsmu nosaukumus, jums būs jārediģē kods Indoor_Transmitter galvenajā cilnē. Rediģējiet sekojošo:

AdafruitIO_Feed *toggleSwitch = io.feed ("Vistas apvērsums");

AdafruitIO_Feed *taimeris = io.feed ("Vistas apvērsuma taimeris");

AdafruitIO_Feed *taimeris2 = io.feed ("Vistas apvērsuma taimeris 2");

AdafruitIO_Feed *kļūda = io.feed ("Vistas apvērsuma kļūdas ziņojums");

Tam vajadzētu būt vienīgajam, kas jums jādara! Ja vēlaties sīkāk saprast, kā darbojas divas skices, es komentēju kodu. Lūdzu, dariet man zināmu, ja jums ir kādi jautājumi. Veiksmi!

Ieteicams: