Talaan ng mga Nilalaman:

IoT Mains Controller. Bahagi 9: IoT, Home Automation: 10 Hakbang (na may Mga Larawan)
IoT Mains Controller. Bahagi 9: IoT, Home Automation: 10 Hakbang (na may Mga Larawan)

Video: IoT Mains Controller. Bahagi 9: IoT, Home Automation: 10 Hakbang (na may Mga Larawan)

Video: IoT Mains Controller. Bahagi 9: IoT, Home Automation: 10 Hakbang (na may Mga Larawan)
Video: Arduino MASTERCLASS | Full Programming Workshop in 90 Minutes! 2024, Hulyo
Anonim
IoT Mains Controller. Bahagi 9: IoT, Home Automation
IoT Mains Controller. Bahagi 9: IoT, Home Automation

Pagwawaksi

BASAHIN MUNA ITO

Ang Instructable na ito ay nagdedetalye sa isang proyekto na gumagamit ng mains power (sa pagkakataong ito ng UK 240VAC RMS), habang ang bawat pangangalaga ay kinuha upang magamit ang ligtas na kasanayan at mahusay na mga prinsipyo sa disenyo ay laging may peligro ng potensyal na nakamamatay na elektrikal na pagkabigla kapag nagtatrabaho sa mga supply voltages na ito at para sa na kung saan ang may-akda ay hindi maaaring tanggapin ang anumang pananagutan kung ang personal na pinsala o pinsala sa pag-aari ay nangyayari kapag sumusunod sa nilalaman nito. Dahil dito, ginagawa mo ang proyektong ito sa iyong sariling peligro.

Panimula

Ang artikulong ito, ang ika-9 sa isang serye tungkol sa pag-aautomat ng bahay, mga dokumento kung paano lumikha at isama ang isang Sonoff 10A IoT mains controller sa isang mayroon nang system ng automation ng bahay kasama ang lahat ng kinakailangang pagpapaandar ng software upang paganahin ang matagumpay na pag-deploy sa isang domestic environment.

Panimula

Tulad ng nabanggit sa itaas ng mga detalyeng Maituturo kung paano gumawa at isama ang isang IoT mains controller gamit ang Sonoff 10A mula sa iTead. Ang aparato mismo ay naka-quote bilang na-rate para sa 10amps @ 90 ~ 250VAC, subalit ang pagpapatupad na ito ay de-rate ito sa 5amp sa pamamagitan ng fuse plug na nagbibigay ng pangunahing supply ng domestic ng UK na 240VAC RMS.

Ang pamamaraan ng disenyo ay isinama nang walang putol sa MQTT / OpenHAB batay sa IoT network na detalyado sa seryeng ito sa pagbuo ng automation ng bahay sa muling ginamit na code na kinuha mula dito. Maaari rin nitong hawakan ang pagkawala ng anumang elemento ng network ng IoT at ganap na may kakayahang mapatakbo nang standalone. Habang nasa standalone mode, ang kontrol ng aparato ay nakamit sa pamamagitan lamang ng pagpindot sa control button sa tuktok ng enclosure, na nagpapalipat-lipat sa output ng supply.

Upang paganahin ang lokal na kontrol na ito ng Sonoff aparato, ang GPIO14 ay inilabas sa kaso at ginagamit bilang isang pag-input ng gatilyo. Upang matiyak ang kaligtasan, ang input na ito ay pinakain sa pamamagitan ng isang opto-coupler circuit at nakalagay sa isang plastic enclosure na tulad ng sa anumang oras ay mailantad ang operator sa mga voltages ng mains supply.

Sa wakas, binabalangkas din ng prosa kung paano muling mai-program ang aparato ng ESP8266 sa Sonoff 10A gamit ang Arduino IDE at nagbibigay ng buong detalye ng circuit ng isang aparato na maaaring magamit upang mapagkakatiwalaan ang target code.

Anong mga bahagi ang kailangan ko?

Sonoff Mains Controller

  1. 1 off Sonoff 10A dito
  2. 1 off 7805L 5v boltahe regulator dito
  3. 1 off 240 / 6VAC 1.5VA Transformer dito
  4. 2 off 0.1 mga ceramic capacitor dito
  5. 1 off 1000uF @ 25v Electrolytic Capacitor dito
  6. 1 off Bridge rectifier 2W01 dito
  7. 2 off ang 4K7 resistors dito
  8. 1 off 330R risistor dito
  9. 1 off ang pindutan ng SPST dito
  10. 1 off Mulitcomp BM12W ABS Enclosure dito
  11. 1 off TIL111 opto-coupler dito
  12. 1 off 3-Way terminal block dito
  13. 1 off 2-Way naka-code na konektor ng molex dito / dito
  14. 1 sa 3-Way naka-code na molex konektor dito / dito
  15. 1 sa 5-Way naka-code na konektor ng molex dito / dito
  16. 1 off 5-Way molex pins dito
  17. 1 off Winbond SPI Flash (W25Q32FVSIG) dito
  18. 1 off 20mm fuse holder + cap dito
  19. 1 off 20mm mabilis na suntok 500mA fuse dito
  20. 2 off Polyamide cable glands dito
  21. 1 off UK Mains plug (BS1363 / A) dito
  22. 1 off UK Main socket (BS1363 / A) dito
  23. 7 off M3 16mm CS nylon screws, (inc. 10 off nut) dito / dito
  24. 2 off ang mga kurbatang Zip dito
  25. 1 off veroboard (0.1 "pitch) dito
  26. 1 off Iba't ibang mga haba 22swg tinned tanso wire dito
  27. 1 off 3M White UK mains cable dito
  28. 10 off Molex socket crimps dito

Sonoff Programmer

  1. 1 off LD33CV 3v3 boltahe regulator dito
  2. 1 off TO-220 heatsink dito
  3. 1 off Heatsink paste dito
  4. 1 off 10uF @ 16v Electrolytic capacitor dito
  5. 1 off 0.1 ceramic capacitor dito
  6. 1 off SPDT button dito
  7. 1 off ang resistor ng 4K7 dito
  8. 1 off 2-Way naka-code na konektor ng molex dito / dito
  9. 1 sa 3-Way naka-code na molex konektor dito / dito
  10. 5 off Molex socket crimps dito
  11. 1 off 6-Way molex socket dito
  12. 1 off ang pindutan ng SPST dito
  13. 1 off 2.1mm PSU socket dito
  14. 1 off veroboard (0.1 "pitch) dito
  15. 1 off USB sa serial adapter (FTDI) dito

Anong software ang kailangan ko?

  1. Arduino IDE 1.6.9 dito
  2. Ang Arduino IDE ay naka-configure upang mai-program ang ESP8266. Tingnan dito; Pag-set up ng Arduino IDE upang Program ang ESP8266-01

Anong mga tool ang kailangan ko?

  1. Panghinang,
  2. Mag-drill at iba't ibang mga piraso (kabilang ang stepped hole cutter para sa mga glandula ng cable at control button),
  3. Mga Screwdriver (iba't ibang),
  4. Naaayos na mga spanner (dalawa, lapad ng panga> 25mm, para sa mga glandula ng cable),
  5. Mga file (iba't ibang),
  6. Matibay na bisyo,
  7. Mainit na baril,
  8. DMM (mas mabuti ang CAT IV).

Anong mga kasanayan ang kailangan ko?

  1. Ang isang mahusay na pag-unawa ng electronics at kaligtasan / disenyo / kable ng elektrisidad sa bahay atbp,
  2. Kaalaman sa Arduino at ito ay IDE,
  3. Mahusay na kasanayan sa katha (paghihinang, pagsasampa, pagbabarena atbp.),
  4. Ilang Pasensya,
  5. Ang ilang pag-unawa sa iyong network sa bahay.

Saklaw ang mga paksa

  • Panimula
  • Pangkalahatang-ideya ng Circuit
  • Sonoff RetroMods
  • Mga Detalye ng Konstruksiyon at Assembly
  • Sonoff Programming Adapter
  • Pangkalahatang-ideya ng System System
  • Pangkalahatang-ideya ng Software
  • Pag-configure ng OpenHAB
  • Pagsubok sa Iyong IoT Device
  • Konklusyon
  • Ginamit na Mga Sanggunian

Mga Link sa Serye

Sa Bahagi 8: WiFi IoT Temperature at Humidity Sensor. Bahagi: 8 IoT, Home Automation

Sa Bahagi 10: IR Remote Control Sa Pamamagitan ng IoT. Bahagi 10 IoT, Home Automation

Hakbang 1: Pangkalahatang-ideya ng Circuit

Pangkalahatang-ideya ng Circuit
Pangkalahatang-ideya ng Circuit
Pangkalahatang-ideya ng Circuit
Pangkalahatang-ideya ng Circuit
Pangkalahatang-ideya ng Circuit
Pangkalahatang-ideya ng Circuit
Pangkalahatang-ideya ng Circuit
Pangkalahatang-ideya ng Circuit

Pangkalahatang-ideya

Tulad ng nabanggit sa pagpapakilala sa itaas, upang ma-switch at ma-off ang control ng mainsay nang lokal isang kinakailangang input sa board ng Sonoff na ESP8266 ay kinakailangan. Ang pagpapakilala ng tulad ng isang panlabas na input ay nangangailangan ng paglabag ng enclosure ng Sonoff ABS at samakatuwid ay lumilikha ng isang potensyal na panganib sa pagkabigla. Upang mapagtagumpayan ito, ginamit ko ang paghihiwalay ng mga mata tulad ng walang posibilidad na mahantad sa mains kuryente sa labas ng enclosure ng system ng mains controller.

Ang sumusunod ay isang paglalarawan ng opto-isolation circuitry (sa larawan 1 sa itaas).

Mga Detalye ng Circuit

Ang opto-isolation circuit ay tumatanggap ng supply na direkta mula sa mains na inilapat sa unit. Ang 240VAC RMS ay inilalapat sa stepdown / isolation transpormer TR1 sa pamamagitan ng J1 isang contact sa pheonix na MKDSN2, 5 / 3-5.08 polyamide 3-Way terminal na na-rate sa 16A sa 400V na may kakayahang magdala ng isang cable ng 2.5mm (sq) CSA at F1 a 500mA 20mm mabilis na fuse fuse. Ang 6VAC na magagamit sa pangalawang paikot-ikot na TR1 ay buong alon na naitama ng diode bridge B1.

Ang buong alon na naitama output ay pagkatapos ay nagpapatatag at kinokontrol ng C1, C2 C3, R3 at IC1 isang 7805L series shunt regulator, na nagbibigay ng isang mahusay, malinis na 5v supply rail.

Pagkatapos ay ginagamit ang 5v rail upang makontrol ang pag-input sa OK1 isang TIL111 opto-isolator sa pamamagitan ng isang panlabas na naka-mount na puting SPST na pindutan na konektado sa buong J3. Ang output ng TIL111 ay isinama sa Sonoff GPIO14 input sa pamamagitan ng R2 isang 4K7 pull up risistor. Sa gayon mas mahusay kaysa sa 340V ng paghihiwalay ay nakakamit (ibig sabihin Peak boltahe = (240VAC * sqroot (2))).

Hakbang 2: Sonoff RetroMods

Sonoff RetroMods
Sonoff RetroMods
Sonoff RetroMods
Sonoff RetroMods
Sonoff RetroMods
Sonoff RetroMods

Upang maisama ang aparatong Sonoff 10A kinakailangan na gumawa ng ilang mga pagbabalik-tanaw na pagbabago.

Ang una ay upang magdagdag ng isang 5-way na 0.1 pitch molex konektor tulad ng ipinakita sa larawan 1 sa itaas. Pinapayagan nito ang pag-access sa GPIO14 sa Sonoff sa sandaling ang proteksiyon na takip ay pinalitan tulad ng sa mga larawan 2 at 3 sa itaas.

Kahit na hindi ipinakita sa itaas dinala ko ang mga serial na linya ng TX / RX upang payagan ang in-situ na programa (sumangguni sa cable harness SK1..3 sa Hakbang 1 sa itaas).

Ang pangalawang pagbabago ay upang dagdagan ang laki ng aparato ng SPI Flash mula sa default na 1MByte hanggang 4MBytes, ito ay upang payagan ang sapat na silid para sa mga IoT web server file na gaganapin sa SPIFFS.

Binili ko ang SMD SPI flash device (W25Q32FVSIG) mula sa Ebay dito

Upang mapalitan ang flash pansamantala kong inalis ang Sonoff LED tulad ng larawan 4 upang mabigyan ng mas mahusay na pag-access sa SMD aparato. Upang ma-de-solder ang flash gumamit ako ng isang heat gun tulad ng ipinakita sa larawan 5 sa itaas. Pagkatapos ay muling soldered pareho ang 4MByte Flash at LED ayon sa pagkakabanggit (larawan 6).

Hakbang 3: Mga Detalye ng Konstruksiyon at Assembly

Mga Detalye ng Konstruksiyon at Assembly
Mga Detalye ng Konstruksiyon at Assembly
Mga Detalye ng Konstruksiyon at Assembly
Mga Detalye ng Konstruksiyon at Assembly
Mga Detalye ng Konstruksiyon at Assembly
Mga Detalye ng Konstruksiyon at Assembly
Mga Detalye ng Konstruksiyon at Assembly
Mga Detalye ng Konstruksiyon at Assembly

Isinara ko ang controller ng mains sa isang Mulitcomp BM12W ABS Box (Pic 1 sa itaas). Ang enclosure na ito ay naghiwalay ng mga pagsingit ng tanso na M3 na nagpapahintulot sa multi-access sa yunit nang hindi nakompromiso ang mga pangkabit na thread na tulad ng panloob na piyus ay maaaring mapalitan kung kinakailangan o panloob na inspeksyon ay maaaring gawin sa paglipas ng panahon (ang parehong hindi masabi para sa Sonoff aparato, na kung saan ay epektibo isang beses na malapit lamang gamit ang mga self tapper).

Pangunahing lunas sa pilay para sa mains na nagdadala ng supply cable ay nakamit sa pamamagitan ng isang M16 Nylon / Polyamide 6/6 puting cable gland na sumusuporta sa isang cable OD Min / Max 5mm / 10mm.

Ang pangalawang kaluwagan ng pilay ay sa pamamagitan ng isang solong zip tie na nakalagay sa cable kung dapat mailapat ang labis na pilay at mabigo ang cable gland, panatilihin ng zip tie ang cable sa lugar.

Upang magkasya ang mga glandula ng kable at magbigay ng sapat na puwang upang mai-mount ang Sonoff at mga electronics na pagkakahiwalay ng opto ay hinubaran ko ang panloob na mga butil ng butil ng PCB tulad ng ipinakita sa itaas (Larawan 2).

Ang lahat ng electronics ay ligtas na naka-mount sa pamamagitan ng M3 nylon CS screws upang matiyak na ang paghihiwalay sa labas ng enclosure ay pinananatili. Ang mga electronics na opto-isolation na naka-mount na may 5 mga puntos sa pag-aayos upang matiyak na ang lakas ng tunog na mekanikal ay dapat na mahulog ang yunit, kaya pinipigilan ang masa ng transpormasyong paghihiwalay mula sa paglabag sa veroboard circuit.

Ang supply sa yunit ay nakamit sa pamamagitan ng UK Standard color coded white 3 core PVC insulated mains multi-strand (32 / 0.2mm sq) cable 1mm (sq) CSA. na may isang OD na 7.2mm na may kakayahang magdala ng 10A.

Ang yunit ay konektado sa UK mains supply (240VAC RMS) sa pamamagitan ng isang standard na 3 pin safety plug (BS 1363 / A) na naaprubahan. Ang plug ay fuse sa 5A.

Ang lahat ng mga pangunahing supply ng cable sa opto-isolation circuit ay konektado sa pamamagitan ng contact ng pheonix na MKDSN2, 5 / 3-5.08 polyamide terminals na na-rate sa 16A sa 400V na may kakayahang magdala ng isang cable na 2.5mm (sq) CSA, sa gayon ay nagbibigay ng sapat na kapasidad para sa dalawang mga kable sa bawat posisyon.

Walang mga cable ng mains ang naka-lata, pinaikot lamang upang maiwasan ang splaying ng mga core bago ipasok sa block ng konektor. Ang mga tinning mains cable ay isang mapanganib na kasanayan habang ang 'solder' ay nagpapahinga 'sa paglipas ng panahon na kalaunan na nagiging sanhi ng pagkawala ng cable sa bloke ng konektor.

Tandaan:

  • OD = Sa labas ng diameter.
  • VAC = Volts Alternating Kasalukuyang
  • RMS = Root Mean Square
  • CSA = Saklaw ng Saklaw na Seksyon
  • CS = Counter Sunk

Hakbang 4: Sonoff Programming Adapter

Sonoff Programming Adapter
Sonoff Programming Adapter
Sonoff Programming Adapter
Sonoff Programming Adapter
Sonoff Programming Adapter
Sonoff Programming Adapter
Sonoff Programming Adapter
Sonoff Programming Adapter

Mayroong dalawang aspeto na isasaalang-alang kapag muling pinaprograma ang Sonoff 10A sa pamamagitan ng Arduino IDE;

  1. Ang pag-configure ng iyong Arduino IDE upang mai-program ang ESP8266,
  2. Ang kilos ng pagprograma ng mismong hardware.

Ang pag-configure ng iyong Arduino IDE upang mai-program ang ESP8266

Upang mai-configure ang iyong Ardino IDE sundin ang mga tagubilin dito Pag-set up ng Arduino IDE sa Program ang ESP8266-01

Programming ang hardware

Ito ay isang multi-step na proseso tulad ng sa lahat ng mga kaso sa ESP8266. Dito, ang kapangyarihan ng Sonoff ay inilalapat sa board sa pamamagitan ng isang panlabas na nagpapatatag na 3v3 DC supply at HINDI mula sa supply ng mains. Ang isang USB sa serial device ay kinakailangan upang magpadala at tumanggap ng data papunta at mula sa Sonoff. Ikonekta ang TX at RX tulad ng ipinakita sa Pic 2 & 4.

Mga Hakbang sa Programming (pangkalahatan)

  1. Siguraduhin muna na walang panlabas na kapangyarihan ng mains na inilapat sa Sonoff,
  2. Pindutin nang matagal ang pindutan sa Sonoff device. (larawan 1 sa itaas, minarkahang pindutan ng muling pag-flash),
  3. Mag-apply ng panlabas na DC 3v3 supply sa pin 1. (larawan 2 sa itaas),
  4. Pakawalan ang pindutan ng Sonoff,
  5. Ang aparato ay maaari na ngayong muling ma-program sa karaniwang paraan sa pamamagitan ng Arduino IDE.

Upang gawing mas madali ang mga bagay nilikha ko ang aparato ng pagprograma sa itaas (mga larawan 3 at 4) na nag-interfaced sa Sonoff sa pamamagitan ng cable harness SK1 … 3 (tulad ng inilarawan sa Instructable Step 1.). Pinayagan nito para sa mas madaling pagprogram ng ESP8266. Nagbigay din ito ng isang paraan ng pagsubok sa GPIO14 bilang isang input sa pamamagitan ng paggamit ng R1 isang 4K7 pull up risistor at pindutan ng S1.

Gamit ang aparato sa pagprograma sa itaas (Mga Larawan 3 at 4) Mga Hakbang sa Programming ay,

  1. Pindutin nang matagal ang pindutan ng muling pag-flash sa Sonoff,
  2. Pulse ang supply ng 3v3 sa pamamagitan ng pansamantalang pagpindot sa S2,
  3. Pakawalan ang re-flash button,
  4. Maaari nang mai-program ang aparato.

TANDAAN - BABALA

Sa ilalim ng WALANG mga pangyayari dapat magkaroon ng kapangyarihan sa pamamagitan ng Mains sa panahon ng aktibidad ng Sonoff muling pag-program

Hakbang 5: Pangkalahatang-ideya ng System System

Pangkalahatang-ideya ng System System
Pangkalahatang-ideya ng System System
Pangkalahatang-ideya ng System System
Pangkalahatang-ideya ng System System

Ang aparato ng IoT Mains Controller na ito para sa pinaka bahagi ay naglalaman ng parehong anim na pangunahing mga bahagi ng software tulad ng sa Instructable WiFi IoT Temperature at Humidity Sensor. Bahagi: 8 IoT, Home Automation at ipinapakita sa larawan 1 sa itaas, na may ilang pagpapasadya.

SPIFFS

Ito ang (na-upgrade sa 4MBytes) on-board SPI Flash Filing System at ginagamit upang hawakan ang sumusunod na impormasyon (tingnan ang larawan 2 sa itaas);

  • Mga Icon at 'Mains Controller Configuration Home Page' html: Inihatid ng aparato ng IoT kapag hindi ito makakonekta sa iyong IoT WiFi network (karaniwang sanhi ng maling impormasyon sa seguridad) at nagbibigay sa gumagamit ng isang paraan ng malayuang pag-configure ng mains controller nang walang ang pangangailangan na muling mai-program o mag-upload ng bagong nilalaman ng SPIFFS.
  • Impormasyon sa Seguridad: Hawak nito ang impormasyong ginamit sa kapangyarihan ng aparato ng IoT upang kumonekta sa iyong IoT WiFi network at MQTT Broker. Ang impormasyong isinumite sa pamamagitan ng 'Mains Controller Configuration Home Page' ay nakasulat sa file na ito ('secvals.txt').

Tandaan: Upang paunang i-set up ang aparato tingnan dito para sa buong detalye kung paano gamitin ang SPIFFS gamit ang Arduino IDE.

mDNS Server

Ang pagpapaandar na ito ay tinawag kapag ang IoT aparato ay nabigo upang kumonekta sa iyong WiFi network bilang isang istasyon ng WiFi at sa halip ay naging isang access point ng WiFi na bagay na katulad ng isang domestic WiFi router. Sa kaso ng tulad ng isang router ay karaniwang kumokonekta ka rito sa pamamagitan ng pagpasok ng IP Address ng isang bagay tulad ng 192.168.1.1 (karaniwang naka-print sa isang label na nakakabit sa kahon) nang direkta sa iyong browser URL bar kung saan makakatanggap ka ng isang pahina sa pag-login upang ipasok ang username at password upang payagan kang i-configure ang aparato. Para sa ESP8266 sa AP mode (Access Point mode) ang aparato ay nag-default sa IP address 192.168.4.1, subalit sa pagpapatakbo ng mDNS server kailangan mo lamang ipasok ang palakaibigan na pangalang 'MAINSCON.local' sa browser URL bar upang makita ang 'Pahina ng Pag-configure ng Mains Controller Home'.

MQTT Client

Ang MQTT client ay nagbibigay ng lahat ng kinakailangang pagpapaandar sa; kumonekta sa iyong IoT network MQTT broker, mag-subscribe sa mga paksa na iyong pinili at mag-publish ng mga kargamento sa isang naibigay na paksa. Sa madaling salita naglalaan ito ng IoT pangunahing pag-andar.

HTTP Web Server

Tulad ng nabanggit sa itaas, kung ang aparato ng IoT ay hindi makakonekta sa WiFi network na ang SSID, P / W atbp ay tinukoy sa file ng Impormasyon sa Seguridad na gaganapin sa SPIFFS ang aparato ay magiging isang Access Point. Sa sandaling nakakonekta sa WiFi network na ibinigay ng Access Point, ang pagkakaroon ng isang HTTP Web Server ay nagbibigay-daan sa iyo upang direktang kumonekta sa aparato at baguhin ang pagsasaayos nito sa pamamagitan ng paggamit ng isang HTTP Web Browser layunin nitong ihatid ang 'Mains Controller Configuration Home Page 'web page na ginanap din sa SPIFFS.

WiFi Station

Ang pagpapaandar na ito ay nagbibigay sa aparato ng IoT ng kakayahang kumonekta sa isang domestic WiFi network gamit ang mga parameter sa file ng Impormasyon sa Seguridad, kung wala ito hindi mag-subscribe / mai-publish ang iyong IoT device sa MQTT Broker

WiFi Access Point

Ang kakayahang maging isang WiFi Access Point ay isang paraan kung saan pinapayagan ka ng IoT aparato na kumonekta dito at gumawa ng mga pagbabago sa pagsasaayos sa pamamagitan ng isang istasyon ng WiFi at isang browser (tulad ng Safari sa Apple iPad). Ang access point na ito ay nag-broadcast ng isang SSID = "MAINSCON" + ang huling 6 na numero ng MAC address ng IoT device. Ang password para sa saradong network na ito ay mapanlikha na pinangalanang 'PASSWORD'.

Hakbang 6: Pangkalahatang-ideya ng Software

Pangkalahatang-ideya ng Software
Pangkalahatang-ideya ng Software
Pangkalahatang-ideya ng Software
Pangkalahatang-ideya ng Software
Pangkalahatang-ideya ng Software
Pangkalahatang-ideya ng Software
Pangkalahatang-ideya ng Software
Pangkalahatang-ideya ng Software

Preamble Upang matagumpay na maipon ang source code na ito kakailanganin mo ang mga sumusunod na labis na aklatan;

PubSubClient.h

  • Ni: Nick O'Leary
  • Layunin: Pinapagana ang aparato upang mag-publish o mag-subscribe sa mga paksa ng MQTT sa isang ibinigay na Broker
  • Mula sa:

Bounce2.h

  • Ni: Thomas O Fredericks
  • Layunin: Input switch de-bounce sa software
  • Mula sa:

Pangkalahatang-ideya ng Code

Ginagamit ng software ang state-machine tulad ng ipinakita sa larawan 1 sa itaas (buong kopya ng mapagkukunan na ibinigay sa ibaba). Mayroong 5 pangunahing estado bilang mga sumusunod;

  • SA LOOB

    Ang estado ng inisyal na ito ay ang unang estado na ipinasok pagkatapos ng lakas

  • NOCONFIG

    Ang estado na ito ay ipinasok kung pagkatapos mapalakas ang isang hindi wasto o nawawalang mga secvals.txt file ay nakita

  • PENDING NW

    Ang estado na ito ay pansamantala, ipinasok habang walang umiiral na koneksyon sa WiFi network

  • PENDING MQTT

    Ang estado na ito ay pansamantala, ipinasok pagkatapos ng isang koneksyon sa WiFi network ay nagawa at habang walang koneksyon sa isang MQTT broker sa network na iyon

  • AKTIBO

    Ito ang normal na estado ng pagpapatakbo na ipinasok sa sandaling kapwa isang koneksyon sa WiFi network at isang koneksyon sa MQTT Broker ay naitatag. Sa panahong ito ay inilalathala ng Mains Controller ang MQTT Broker at tatanggap ng mga utos sa pamamagitan ng mga paksang naka-subscribe

Ang mga kaganapan sa pagkontrol sa mga pagbabago sa pagitan ng mga estado ay inilarawan sa larawan 1 sa itaas. Ang mga paglilipat sa pagitan ng mga estado ay pinamamahalaan din ng mga sumusunod na parameter ng SecVals;

  • 1st MQTT Broker IP Address. Sa may tuldok na decimal form na AAA. BBB. CCC. DDD
  • 2nd MQTT Broker Port. Sa Integer form.
  • Tangkaing gawin ng koneksyon sa ika-3 na MQTT Broker bago lumipat mula sa STA mode patungong AP mode. Sa Integer form.
  • 4th WiFi Network SSID. Sa libreng form na teksto.
  • Ika-5 WiFi Network Password. Sa libreng form na teksto.

Tulad ng nabanggit sa itaas kung ang aparato ng IoT ay hindi makakonekta bilang isang WiFi Station sa WiFi network kung sino ang SSID at P / W ay tinukoy sa mga secvals.txt na gaganapin sa SPIFFS ang aparato ay magiging isang Access Point. Sa sandaling nakakonekta sa access point na ito, ihahatid nito ang 'Mains Controller Configuration Home Page' tulad ng ipinakita sa itaas sa Pic 2 (sa pamamagitan ng pagpasok ng alinman sa 'MAINSCON.local' o 192.168.4.1 sa iyong address bar ng mga browser). Pinapayagan ng home page na ito ang muling pag-configure ng mains controller sa pamamagitan ng isang HTTP browser.

MQTT Paksa sa pagpapangalan ng paksa

Nakabalangkas sa larawan 3 sa itaas ang ginamit na kombensyon para sa mga paksang MQTT at naaayon sa pattern na ginamit sa aking naunang Instructable (narito Hakbang 5).

Mga Paksa ng MQTT na ginagamit ng aparatong IoT na ito

Para sa kalinawan na naitala ko (larawan 4) ang mga paksa at nauugnay na pagkakasunud-sunod ng mensahe na nai-publish / nag-subscribe ang aparatong ito. Inilalarawan din ng larawan ang pakikipag-ugnay sa puting control button sa labas ng enclosure (kahit na ironically ang pindutan ay ipinapakita sa pula).

Remote Config Access habang nasa ACTIVE na estado

Kapag nakakonekta sa MQTT Broker posible na malayuang mai-configure muli ang mga parameter ng seguridad para sa aparato sa pamamagitan ng mga publication ng paksa ng MQTT. Ang nauugnay na mga file secvals.txt ay sumulat lamang ng pag-access na nakalantad.

Pag-debug ng gumagamit

Sa panahon ng pagkakasunud-sunod ng boot na humantong ang aparato ng Sonoff ay nagbibigay ng sumusunod na feedback ng pag-debug, kahit na ito ay dapat pansinin, upang matingnan ito kakailanganin mong alisin ang takip at ilantad ang circuitry kaya ipinapayo lamang na gawin ito habang binubuo ang iyong code at pinapagana ang aparato na may isang supply ng 3v3;

  • 1 Maikling flash: Walang Config file na matatagpuan sa SPIFFS (secvals.txt),
  • 2 Maikling flashes: Ang aparato ng IoT ay sumusubok na kumonekta sa WiFi network,
  • Patuloy na pag-iilaw: Sinusubukan ng Sonoff IoT na aparato na kumonekta sa MQTT Broker,
  • Naka-off: Ang aparato ay aktibo at konektado sa MQTT Broker.

Tandaan 1: Ang 'Mains Controller Configuration Home Page' ay hindi gumagamit ng mga ligtas na socket at samakatuwid ay umaasa sa iyong network na ligtas.

Tandaan 2: Upang ma-program ang maraming mga aparato ng IoT ang string ng MQTT ay mangangailangan ng pag-edit bago ang pag-download sa bawat aparato. Ito ay dahil ang id number ng mains controller ay na-embed sa MQTT na string ng paksa. ibig sabihin sa nai-publish na software na pinili ko ang halagang 100: 'WFD / MainsCont / 100 / Relay / Command / 1' at para sa aking 2 aparato nabilang sila ng 1 at 2 ayon sa pagkakabanggit.

  • 'WFD / MainsCont / 1 / Relay / Command / 1'
  • 'WFD / MainsCont / 2 / Relay / Command / 1'

Tandaan 3: Para sa pagkakumpleto kapag nasa ACTIVE na estado ang IoT software ay nagbibigay-daan para sa kontrol ng Sonoff LED at pag-publish ng katayuan ng re-flash button. Kahit na ang mga ito ay may halaga lamang sa panahon ng proseso ng pag-debug dahil ang alinman ay hindi nakalantad sa gumagamit sa panahon ng normal na operasyon.

Hakbang 7: Pag-configure ng OpenHAB

Pag-configure ng OpenHAB
Pag-configure ng OpenHAB
Pag-configure ng OpenHAB
Pag-configure ng OpenHAB
Pag-configure ng OpenHAB
Pag-configure ng OpenHAB

Para sa mga layuning pagsubok ay napagpasyahan kong kilalanin ang dalawang tagapagpigil ng mains sa 'Living Room' ng aking bahay. Ang pahina ng OpenHAB na ito ay maaaring maabot sa pamamagitan ng pangunahing pahina ng site tulad ng sa larawan 1.

Binago ko ang pagsasaayos ng OpenHAB.sitemap na ibinigay sa aking naunang Instructable (dito) at nagdagdag ng mga indibidwal na entry para sa 'Mains Controller 1' at 'Mains Controller 2' (larawan 2 sa itaas). Nagdagdag din ako ng mga entry (Living Room Mains Cont. 1 & 2) upang maipakita ang RSSI Trends na sinusukat sa tatanggap ng dalawang bagong aparato ng IoT (larawan 3).

Sa wakas, nagdagdag ako sa mga entry sa mga.rule at.items file upang payagan ang pag-synchronize ng estado ng Sonoff at ang pag-update / animating ng aking hindi magandang pagtatangka sa isang graphic na switch (magsara ang switch kapag aktibo at bubukas kapag hindi aktibo). Ang Pic 2 ay nagbibigay ng isang halimbawa ng MC1 na aktibo at MC2 na hindi aktibo.

Tandaan 1: Kung hindi ka sigurado kung paano gamitin ang OpenHAB tingnan dito 'Pagse-set up at Pag-configure ng OpenHAB. Bahagi 6: IoT, Home Automation '

Tandaan 2: Ang isang kopya ng binagong sitemap, mga panuntunan at mga file ng item, mga icon atbp ay ibinibigay sa zip file sa ibaba.

Tandaan 3: RSSI = Nakatanggap ng Indikasyon ng Lakas ng Signal. Ito ay isang sukatan kung gaano kahusay makikita ng IoT device ang iyong WiFi network.

Hakbang 8: Pagsubok sa Iyong IoT Device

Image
Image
Pagsubok sa Iyong IoT Device
Pagsubok sa Iyong IoT Device

Tulad ng inilarawan sa Instructable WiFi IoT Temperature at Humidity Sensor. Bahagi: 8 IoT, Home Automation Hakbang 7, paunang pagsusuri ng aparato ng IoT ay naisagawa sa isang koneksyon sa MQTT sa pamamagitan ng MQTT Spy (tulad ng sa system block diagram pic 1 sa itaas), pagsubaybay na pinangunahan na output, mga pag-input ng pindutan (parehong pindutan ng muling pag-flash ng Sonoff at ang puting panlabas na pindutan) at i-debug ang trapiko sa serial interface. Pinapayagan akong gamitin ang lahat ng mga magagamit na mga paksa sa pag-subscribe at suriin ang nai-publish na mga tugon. Bagaman muli, ito ay manu-manong dinala at gumugugol ng oras, kahit na pinagana nito ang 100% na saklaw ng mga mensahe / publication ng paksa.

Tulad ng pangunahing makina ng estado ng software (Hakbang 6 sa itaas) ay minana mula sa naunang Instructable (Bahagi: 8) maliban sa katinuan na suriin ang software ay maaaring kumonekta sa WiFi N / W at MQTT Broker na ipinapalagay na ito ay gumagana nang tama.

Ang buong pagsubok sa antas ng system ay nakumpleto gamit ang mains controller at ang IoT imprastraktura (muli ang larawan 1) sa oras na ito gamit ang OpenHAB upang makontrol ang pakikipag-ugnay sa IoT aparato. Ang pag-set up ng IoT hardware at dummy load ay makikita sa larawan 2 sa itaas.

Nagbibigay ang video ng kumpletong mga detalye ng mga pagsubok sa system at malinaw na ipinapakita ang pagpatuloy na pinananatili sa pagitan ng mga aparatong OpenHAB (PC / Chrome at iPad / OpenHAB APP) sa real time. Ipinapakita rin nito ang live na pagmemensahe sa Mains Controllers sa pamamagitan ng MQTTSpy (tingnan dito para sa karagdagang detalye Pagse-set up ng isang MQTT Broker. Bahagi 2: IoT, Home Automation) at OpenHAB tailed system log mula sa raspberry pi server sa isang koneksyon sa PuTTY SSH (tingnan dito para sa karagdagang lugar mga detalye Pagse-set up at Pag-configure ng OpenHAB. Bahagi 6: IoT, Home Automation).

Tandaan: Ang trapiko ng pag-debug ay naipon para sa panghuling paglabas ng software.

Hakbang 9: Konklusyon

Pangkalahatan

Ang proyekto ay medyo madali upang makumpleto at mahusay na gumana. Ang naka-embed na software ay simple upang makabuo, na isang pinababang bersyon ng code na ginamit para sa Temperatura at Humidity Sensors ng Bahagi 8 sa seryeng ito.

Nauna kong nilayon na kumuha lamang ng mga bahagi ng puting sangkap na pulos para sa kanilang kalidad na aesthetic. Nakamit ko ito sa lahat ngunit ang pindutan ng kontrol, subukan hangga't maaari, hindi ko magawang mapagkukunan ng isang mabuti / murang ganap na puting pindutan.

Sonoff 10A aparato

Inilista ko sa ibaba ang naramdaman kong makatuwirang Mga kalamangan at Kahinaan ng aparatong Sonoff

Mga kalamangan

  • Mura naman
  • Mahusay na suporta sa pamayanan.
  • Maaaring muling programa sa pamamagitan ng Arduino IDE.

Kahinaan

  • Malambot na enclosure.
  • Minimal I / O (inilabas sa magagamit na mga konektor).
  • Ito ay nagpapatakbo ng mainit sa ito ay quiescent estado.
  • Mayroon lamang 1MByte ng on-board SPI flash.
  • Ay isang PITA upang muling pagprogram muli na naka-wire sa lugar.
  • Kapag ang pagsasama ng bagong code sa pagsubok ng Sonoff ang pagsasara ng relay ay may problemang ibinigay ang relay ay 5v at ang supply na inilapat sa Sonoff para sa programa ay 3v3. Ang pag-activate ng relay ay nakikita lamang sa tainga.

Mga alalahanin

  • Hindi nito nililipat ang Neutral na linya. Gumagamit ng isang SPST relay.
  • Hindi fuse.
  • Hindi magandang kaluwagan sa pag-filter ng cable.
  • Ang PCB ay hindi nasigurado sa loob ng enclosure ng Sonoff.

Komento sa disenyo ng engineering

Dahil sa aparato ng IoT na ito ay gagamitin upang lumipat ng live na UK mains (240VAC RMS) Sinundan ko ang parehong mahusay na kasanayan sa disenyo ng mekanikal at elektrikal at siniguro kong ang panganib ng pagkabigla ay nabawasan sa pamamagitan ng hindi paglalantad ng anumang mga materyal na nakapag-uugnay sa kuryente, sa paglalagay ng lahat ng mga bahagi, de-rating output load, paglalapat ng proteksyon ng piyus sa parehong Mains Controller at Opto-Coupled Sub-System, pagsasama ng mahusay na hindi nasira na pag-earthing, at paggamit ng optikal / galvanic na paghihiwalay.

Posibleng Pagpapabuti

Sa pag-iisip ay magiging kapaki-pakinabang upang isama ang isang visual na indikasyon na ang output ng Mains Controller ay aktibo (LED o Neon). Bagaman hindi isang isyu sa pang-araw-araw na paggamit, binigyan ng karaniwang kasanayan na ihiwalay ang pag-load mula sa supply bago maisagawa ang anumang pagpapanatili, o isang simpleng pagpindot sa lokal na pindutan ng kontrol ang magpalipat-lipat ng output sa kaso kung saan ang isang lampara ay maaaring mag-iilaw kapag naka-plug in.

Pangwakas na tala

Kung nais mong makita ang dalawang napakahirap na halimbawa ng pagharap sa mains electronics suriin ang mga link sa ibaba. Ang kanilang mga parangal sa Darwin ay malapit nang mai-post, sigurado ako;

  • Mad Scientist Extension Cord
  • Puna sa Komunidad 03 - Mga Alalahanin sa Kaligtasan sa Kapangyarihan!

Hakbang 10: Ginamit na Mga Sanggunian

Ginamit ko ang mga sumusunod na mapagkukunan upang pagsamahin ang Instructable na ito;

PubSubClient.h

  • Ni: Nick O'Leary
  • Layunin: Pinapagana ang aparato upang mag-publish o mag-subscribe sa mga paksa ng MQTT sa isang ibinigay na Broker
  • Mula sa:

Bounce2.h

  • Ni: Thomas O Fredericks
  • Layunin: Input switch de-bounce sa software
  • Mula sa:

SPIFFS

https://esp8266.github.io/Arduino/versions/2.0.0/do…

Pag-upgrade ng flash ng Sonoff

  • https://www.andremiller.net/content/upgrading-sonof…
  • https://tech.scargill.net/32mb-esp01/
  • https://www.andremiller.net/content/upgrading-sonof…

Sonoff Circuit Diagram

https://www.itead.cc/wiki/images/6/6b/Sonoff_schmatic.pdf

USB UART Module (aka. FTDI)

https://www.ebay.co.uk/itm/6Pin-USB-2-0-to-TTL-UART-Module-Converter-CP2102-STC-Replace-FT232-CF-/272249732398?epid=503069058&hash=item3f63593d2e: g: QVUAAOSw71BXP92B

Mga gantimpala ni Darwin (light relief)

https://www.darwinawards.com/

TIL111 Opto-isolator datasheet

Inirerekumendang: