Talaan ng mga Nilalaman:

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

Video: WiFi IoT Temperature at Humidity Sensor. Bahagi: 8 IoT, Home Automation: 9 Hakbang

Video: WiFi IoT Temperature at Humidity Sensor. Bahagi: 8 IoT, Home Automation: 9 Hakbang
Video: Управляйте Arduino / ESP8266 через WiFi! || Автоматизация умного дома своими руками, серия 4 2024, Nobyembre
Anonim
WiFi IoT Temperature at Humidity Sensor. Bahagi: 8 IoT, Home Automation
WiFi IoT Temperature at Humidity Sensor. Bahagi: 8 IoT, Home Automation

Panimula

Ang artikulong ito ay nagdokumento ng praktikal na ruggedisation at pasulong na pag-unlad ng isang naunang Instructable: 'Pimping' iyong unang IoT WiFi Device. Bahagi 4: IoT, Home Automation kasama ang lahat ng kinakailangang pagpapaandar ng software upang paganahin ang matagumpay na pag-deploy sa isang domestic home environment.

Panimula

Tulad ng nabanggit sa itaas ang Instructable na ito ay naglalarawan ng pagsasama-sama ng isang naunang halimbawa ng IoT na may isang maaasahang disenyo ng system na nagpapahintulot sa matagumpay na paghawak ng mga praktikal na paggamit ng mga kaso tulad ng; Malubhang pagkawala ng kuryente, pagkabigo ng MQTT Broker, kabiguan ng WiFi N / W, pag-configure ng remote sensor, pag-configure na diskarte sa pag-uulat upang mabawasan ang trapiko ng network at pag-calibrate ng sensor ng bespoke sensor.

Isang kabuuan ng 6 na mga aparato ay nilikha (tingnan ang larawan 1 sa itaas) at ipinamahagi sa paligid ng aking tahanan upang mabuo ang aking unang network ng sensor ng IoT.

Nakikita rin ng Instructable ang isang pagsusuri sa koneksyon sa pagpapangalan ng MQTT na ginamit sa paunang serye ng IoT Home Automation na nagbibigay daan sa isang mas balanseng, praktikal na istraktura na nagpapahintulot sa mas simpleng pag-debug ng trapiko ng IoT sa isang kapaligiran ng aparatong IoT.

Ano ang sumusunod ay buong detalye ng disenyo ng IoT sensor kasama ang; konstruksyon, source code, diskarte sa pagsubok at mga pagsasaayos ng OpenHAB.

Anong mga bahagi ang kailangan ko?

  1. 1 sa ESP8266-01,
  2. 2 off 1uF Electrolytic Capacitors,
  3. 3 off 10K resistors,
  4. 1 off 330R risistor,
  5. 1 off 3mm dia. LED,
  6. 1 sa LD1117-33v, 3v3 LDO VReg. (Farnell dito),
  7. 1 off DHT22 Temperature / Humidity Sensor,
  8. 1 off Dual 4way 0.1 "Connector,
  9. 1 off CAMDENBOSS RX2008 / S-5 Plastic Enclosure, Potting Box, ABS, 38 mm, 23 mm (Farnell dito),
  10. 1 off DC Power Connector, Plug, 1 A, 2 mm, Panel Mount (Farnell dito),
  11. 1 sa TO-220 Heatsink 24.4 ° C / W (Farnell dito),
  12. Iba't ibang heat shrink tubing (dilaw, Ebay dito),
  13. Iba't ibang mga haba IDC ribbon cable,
  14. Heatsink compound,
  15. Veroboard,
  16. Ang aparato sa pagprograma ng ESP8266-01. Tingnan dito; Praktikal na Konstruksiyon ng Circuit na may Strip Board, Hakbang 9 pataas.

Anong software ang kailangan ko?

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

Anong mga tool ang kailangan ko?

  1. Panghinang,
  2. Drill at iba't ibang mga piraso,
  3. Mga file,
  4. Hacksaw,
  5. Matibay na bisyo,
  6. Mainit na baril,
  7. DMM.

Anong mga kasanayan ang kailangan ko?

  1. Isang kaunting pag-unawa ng electronics,
  2. Kaalaman sa Arduino at ito ay IDE,
  3. Mga panimulang kasanayan sa katha (paghihinang, pag-hack, pag-file, pagbabarena atbp.),
  4. Ilang Pasensya,
  5. Ang ilang pag-unawa sa iyong network sa bahay.

Saklaw ang mga paksa

  1. Pangkalahatang-ideya ng circuit
  2. Pangkalahatang-ideya ng System System
  3. Pangkalahatang-ideya ng Software
  4. Pagkakalibrate ng Sensor
  5. MQTT Paksa ng Pagpapangalan ng Paksa
  6. Pag-configure ng OpenHAB
  7. Pagsubok sa Disenyo
  8. Konklusyon
  9. Ginamit na Mga Sanggunian

Mga Link sa Serye

Sa Bahagi 7: Controller ng Mga Lights ng Pag-aaral (muling binago). Bahagi 7: IoT, Home Automation

Sa Bahagi 9: Controller ng IoT Mains. Bahagi 9: 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

Ipinapakita ng larawan 1 sa itaas ang buong disenyo ng circuit para sa sensor ng IoT.

Sa gitna ng aparato ng IoT ay ang ESP8266-01 na konektado sa isang sensor ng temperatura / kahalumigmigan ng DHT22 sa pamamagitan ng isang 10K na pull up na risistor sa GPIO2. Ang isang panlabas na 5v ay pinagkunan ng isang naka-switch na supply ng mode at pinakain sa aparato sa pamamagitan ng isang 2mm DC panel mount socket at kinokontrol nang lokal na may isang LD1117-33v, 3v3 LDO voltage regulator na naka-mount sa isang panlabas na heat sink na may isang BZP M3 pan head screw at nut.

Kasama sa disenyo ang isang 3mm na pulang humantong na konektado sa GPIO0 na ginagamit upang magbigay ng lokal na indikasyon ng katayuan ng aparato ng IoT habang nagsisimula o anumang kasunod na kundisyon ng error. Maaari din itong magamit upang makilala ang aparato sa pamamagitan ng manu-manong pagpaaktibo sa pamamagitan ng interface ng openHAB.

Ang buong disenyo ay umaangkop nang maayos sa isang kahon ng pag-pot ng ABS tulad ng ipinakita sa itaas sa larawan 2 at partikular na inilatag upang matiyak na ang sensor ay malayo hangga't maaari mula sa regulator upang maiwasan ang pagkiling dahil sa mga lokal na epekto ng pag-init (larawan 7 sa itaas).

Ang circuit board ay isang solong piraso ng veroboard, gupitin sa hugis at ginawa upang magkasya sa enclosure (larawan 3 sa itaas). Ang board na ito ay naayos sa posisyon na may isang M3 countersunk nylon screw at dalawang mga nut na umaangkop sa flush sa ilalim ng sensor, kaya pinapayagan itong umupo sa isang patag na ibabaw.

Ang mga larawan 4… 6 ay nagpapakita ng iba`t ibang mga estado ng konstruksyon.

Hakbang 2: 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 IoT temperatura at halumigmig sensing aparato ay naglalaman ng anim na pangunahing mga bahagi ng software tulad ng ipinakita sa larawan 1 sa itaas.

SPIFFS

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

  • Mga Icon at 'Sensor Configuration Home Page' html: Inihatid ng aparato ng IoT kapag hindi ito makakonekta sa iyong IoT WiFi network (karaniwang dahil sa maling impormasyon sa seguridad) at nagbibigay sa gumagamit ng isang paraan ng malayuan na pag-configure ng sensor nang hindi kinakailangan. upang 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 'Pahina ng Configuration ng Sensor' ay nakasulat sa file na ito ('secvals.txt').
  • Impormasyon sa Pagkakalibrate: Ang impormasyong nilalaman sa loob ng file na ito ('calvals.txt') ay ginagamit upang i-calibrate ang on-board na temperatura / sensor ng kahalumigmigan kung kinakailangan na kinakailangan. Ang mga Constant ng pagkakalibrate ay maaari lamang isulat sa aparato ng IoT sa pamamagitan ng mga utos ng MQTT mula sa isang MQTT broker.

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 'SENSORSVR.local' sa browser URL bar upang makita ang 'Home Page ng Configuration ng Sensor'.

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. Kapag nakakonekta sa network ng WiFi na ibinigay ng Access Point, pinapayagan ka ng pagkakaroon ng isang HTTP Web Server na direktang kumonekta sa aparato at baguhin ang pagsasaayos nito sa pamamagitan ng paggamit ng isang HTTP Web Browser na nilalayon na maihatid ang 'Sensor Configuration Home Page 'web page na gaganapin 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 = "SENSOR" + 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 3: 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:

DHT.h

  • Ni: Adafruit
  • Layunin: Library para sa DHT Temperature / Humidity Sensor
  • 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 tulad ng sa ibaba;

  • 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 panahon ng estado na ito ang pag-andar ng temperatura at halumigmig ng sensor ay nai-publish sa MQTT Broker

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 IoT aparato 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 IoT aparato ay magiging isang Access Point. Kapag nakakonekta sa access point na ito, ihahatid nito ang 'Pahina ng Configuration ng Sensor' tulad ng ipinakita sa itaas sa Pic 2 (sa pamamagitan ng pagpasok ng alinman sa 'SENSORSVR.local' o 192.168.4.1 sa iyong address bar ng mga browser). Pinapayagan ng home page na ito ang muling pag-configure ng sensor sa pamamagitan ng isang HTTP browser.

Remote Access habang nasa aktibong estado

Sa sandaling nakakonekta sa MQTT Broker posible ring pareho i-calibrate at i-configure muli ang aparato sa pamamagitan ng mga publication ng paksa ng MQTT. Ang file calvals.txt ay may R / W access at secvals.txt ay sumulat lamang ng access na nakalantad.

Pag-debug ng gumagamit

Sa panahon ng pagkakasunud-sunod ng boot ang pinamunuan ng aparato ng IoT ay nagbibigay ng sumusunod na feedback sa pag-debug

  • 1 Maikling flash: Walang Config file na matatagpuan sa SPIFFS (secvals.txt)
  • 2 Maikling flashes: Sinusubukan ng IoT aparato na kumonekta sa WiFi network
  • Patuloy na pag-iilaw: Sinusubukan ng IoT na aparato na kumonekta sa MQTT Broker
  • Naka-off: Aktibo ang aparato
  • Tandaan 1: Ang 'Pahina ng Configuration ng Sensor' ay hindi gumagamit ng mga ligtas na socket at samakatuwid ay umaasa sa iyong network na ligtas.
  • Tandaan 2: Upang mai-program ang bawat aparato ng IoT ang string ng MQTT ay mangangailangan ng pag-edit bago mag-download. Ito ay dahil ang bilang ng sensor ay na-embed sa string ng paksa ng MQTT. ibig sabihin 'WFD / THSen / 100 / HumdStatus / 1' para sa aking 6 na aparato na may bilang silang 1… 6 ayon sa pagkakabanggit.

Hakbang 4: Pagkalibrate ng Sensor

Pagkakalibrate ng Sensor
Pagkakalibrate ng Sensor
Pagkakalibrate ng Sensor
Pagkakalibrate ng Sensor

Kapag nagpalakas ang aparato ng IoT, bilang bahagi ng pagkakasunud-sunod ng boot, ang isang file na pinangalanang 'cavals.txt' ay binabasa mula sa SPIFFS. Ang mga nilalaman ng file na ito ay pare-pareho ang pagkakalibrate tulad ng ipinahiwatig sa itaas sa larawan 1. Ang mga Constant na pagkakalibrate na ito ay ginagamit upang ayusin ang mga pagbabasa na nakuha mula sa sensor upang dalhin sila sa linya kasama ang isang sanggunian na aparato. Mayroong isang karagdagang halaga na tumutukoy sa isang diskarte sa pag-uulat para sa aparato at inilalarawan sa ibaba kasama ang pamamaraang sinusundan upang i-calibrate ang mga sensor.

Diskarte sa Pag-uulat Tinutukoy ng parameter na ito kung paano nag-uulat ang remote sensor ng anumang ambient parametric na mga pagbabago dito. Kung ang isang halaga ng 0 ay napili ang remote sensor ay maglalathala ng anumang pagbabago na nakikita nito sa mga halaga ng temperatura o halumigmig sa tuwing nababasa ang sensor (tinatayang bawat 10 segundo). Anumang iba pang halaga ay maaantala ang paglalathala ng isang pagbabago ng 1… 60 minuto. Pinapayagan ng pagbabago ng parameter na ito para sa pag-optimize ng trapiko sa network ng MQTT.

Pag-calibrate ng temperatura

Upang mai-calibrate ang mga sensor na inilagay ang mga ito sa malapit na pisikal na kalapitan sa bawat isa tulad ng palabas sa itaas sa larawan 2. Sa tabi nila ay inilagay ko ang isang DMM na may naka-calibrate na thermocouple na nakalakip (Fluke 87 V) at pagkatapos ay sinusubaybayan ang mga output mula sa bawat aparato sa pamamagitan ng temperatura ng OpenHAB pahina ng takbo sa loob ng isang araw upang makakuha ng isang magandang temperatura swing. Nabanggit ko ang parehong static offset (nakataas na zero 'C') at ang rate ng pagbabago ng bawat aparato (makakuha, o slope ng grap na 'M') na may kaugnayan sa halaga na nagmumula sa naka-calibrate na thermocouple. Pagkatapos ay kinakalkula ko ang simpleng ugnayan ng y = mx + c (Natagpuan ko na ito ay sapat na linear na maging isang malapit na paglalapit sa isang tuwid na linya ng linya) at na-program ang anumang kinakailangang mga pagwawasto sa mga calibration Constant sa pamamagitan ng MQTTSpy.

Ang mga aparato ay sinusubaybayan para sa isang karagdagang 24 oras upang matiyak na ang pagkakalibrate ay matagumpay. Isang pahiwatig kung saan ang mga bakas ng temperatura sa pahina ng takbo ng temperatura ng OpenHAB ay lahat sa bawat isa.

Siyempre kung interesado ka lamang sa isang approximation sa temperatura na maaari mong iwanan ang lahat ng mga halaga ng pagkakalibrate bilang default.

Pag-calibrate ng Humidity

Dahil wala akong anumang paraan upang tumpak na maitala o makontrol ang lokal na halumigmig sa paligid, upang mai-calibrate ang mga sensor na ginamit ko ang isang katulad na diskarte sa itaas, sa pamamagitan ng paglalagay ng lahat ng mga aparato sa malapit na pisikal na kalapitan (larawan 2) at simpleng pagsubaybay sa kanilang output sa pamamagitan ng OpenHAB Pahina ng tendensya ng kahalumigmigan. Pinili ko ang aparato # 1 bilang sanggunian sa pagkakalibrate at na-calibrate ang lahat ng mga aparato na may kaugnayan dito.

Hakbang 5: MQTT Paksa ng Pagpapangalan ng Paksa

MQTT Paksa ng Pagpapangalan ng Paksa
MQTT Paksa ng Pagpapangalan ng Paksa
MQTT Paksa ng Pagpapangalan ng Paksa
MQTT Paksa ng Pagpapangalan ng Paksa

Matapos ang maraming pagsubok at error naayos ako sa paksa na nagpapangalan ng kombensiyon na nakabalangkas sa larawan 1 sa itaas.

Namely, 'AccessMethod / DeviceType / AlingDevice / Action / SubDevice'

Hindi ito perpekto ngunit pinapayagan nitong mailapat ang mga kapaki-pakinabang na filter upang makita ang lahat ng mga output ng sensor para sa isang naibigay na halagang parametric kaya pinapayagan ang madaling paghahambing tulad ng sa larawan 2 sa itaas na may MQTTSpy. Sinusuportahan din nito ang makatuwirang extensible lohikal na pagpapangkat ng pag-andar sa loob ng isang naibigay na IoT aparato.

Sa pagpapatupad ng mga paksang ito sa software Gumamit ako ng mga hard naka-code na mga string ng paksa na may nakapirming, naka-embed na mga identifier ng bilang para sa bawat aparato na taliwas sa pagbuo ng mga paksa sa napapanahong oras upang makatipid sa RAM at mapanatili ang mataas na pagganap.

Tandaan: Kung hindi ka sigurado kung paano gamitin ang MQTTSpy tingnan dito 'Pagse-set up ng isang MQTT Broker. Bahagi 2: IoT, Home Automation '

Hakbang 6: 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

Binago ko ang pagsasaayos ng OpenHAB na ibinigay sa aking naunang Instructable (dito) at idinagdag sa mga indibidwal na entry para sa;

  • Garahe,
  • Hall,
  • Sala,
  • Kusina
  • Silid-tulugan na Bisita
  • Master Silid-tulugan

Sa mapa ng site tingnan ang larawan 1 sa itaas.

Para sa bawat isa sa mga entry na ito ay nagdagdag ako ng mga indibidwal na sitemap na naglalantad ng mga lokal na halaga ng paligid (Tingnan ang larawan 2 sa itaas);

  • Temperatura
  • Humidity
  • Heat Index

Nagsama rin ako ng isang switch upang makontrol ang lokal na humantong na naka-mount sa loob ng sensor.

Ang mga larawan 3… 5 ay nagpapakita ng mga indibidwal na live na bakas sa panahon ng 24hrs para sa temperatura, halumigmig at RSSI (Natanggap na Pahiwatig ng Lakas ng Signal, karaniwang isang sukat kung gaano kahusay makikita ng sensor ang network ng WiFi).

Ang larawan 6 ay nagbibigay ng isang halimbawa ng isang pangmatagalang kalakaran sa kahalumigmigan sa loob ng isang linggo.

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 ibaba.

Hakbang 7: Pagsubok sa Disenyo

Pagsubok sa Disenyo
Pagsubok sa Disenyo
Pagsubok sa Disenyo
Pagsubok sa Disenyo

Para sa pinaka-bahagi nasubukan ko ang aparato ng IoT sa koneksyon ng MQTT sa MQTT Spy, ang pagsubaybay ay humantong sa output at pag-debug ng 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 nakamit ito nang manu-mano at naging medyo nakakapagod sa mga oras, pinagana nito ang 100% na saklaw.

Gayunpaman ang pangunahing makina ng estado ay napatunayan na maging isang maliit na nakakalito upang subukan dahil umaasa ito sa pagkakaroon o kawalan ng isang WiFi network, pag-access kung saan nangangailangan ng mga tukoy na hanay ng parameter. Hindi praktikal na gamitin ang home network para dito.

Upang maikot ang isyung ito nilikha ko ang aking sariling hanay ng mga dummy network gamit ang ESP8266-01 na naka-configure bilang Access Points (larawan 1) na may SSID ng 'DummyNet1' at 'DummyNet2' ayon sa pagkakabanggit. Ang paggamit ng circuit sa pic 2 sa itaas ng led ay nagbigay ng isang pahiwatig kung ang isang IoT aparato ay konektado dito. Habang hindi ito isang perpektong solusyon sa pagsubok (hal. Bawat isa sa mga dummy WiFi network na ito ay hindi naglalaman ng isang MQTT server) posible na ganap na subukan ang makina ng estado.

Nagsama ako ng isang kopya ng source code sa ibaba.

Hakbang 8: Konklusyon

Pangkalahatan

Ang software sa mga aparatong IoT ay nagtrabaho nang mapagkakatiwalaan sa loob ng maraming buwan ngayon na nakakakuha muli mula sa mga pagkawala ng kuryente ng sambahayan (pangunahin na sanhi ng aking sarili). Sa pangkalahatan ang mga ito ay medyo matatag na aparato na nagbibigay ng pare-pareho at tumpak na data.

Mga pagpapabuti

Sa pagbuo ng mga gawain sa software na basahin at isulat sa SPIFFS nagsulat ako ng code na kung saan sa tingin ay maaaring maging isang mas advanced kaysa sa inilaan ko, gamit ang mga walang bisa na pointers, recasting at mga payo sa mga payo. Habang ito ay napaka-nababaluktot at gumagana nang maayos ang trabaho, sa susunod ay maaari kong gamitin ang JSON sa mga linya ng ConfigFile.ino upang mapanatili itong medyo mas simple.

  • Arduino GIT HUB Core

    https://github.com/esp8266/Arduino

  • Pinagmulan ng ConfigFile.ino

    https://github.com/esp8266/Arduino/tree/master/libraries/esp8266/examples/ConfigFile

Listahan ng hiling

Nilayon kong gumamit ng isang mDNS client upang kumonekta sa Broker ngunit ang library ay masyadong flakey. Ito ang dahilan kung bakit kinakailangan upang tukuyin ang MQTT Broker IP address na taliwas sa 'MQTTSVR.local'. Kung magiging mas matatag ang mDNS library sa hinaharap idaragdag ko ang kakayahang ito sa aparato.

Masarap sana magkaroon ng isang paraan ng parehong tumpak na pagsubaybay at kontrolin ang paligid na halumigmig upang i-calibrate ang mga sensor laban. Gayunpaman sinabi na ang paraan ng pagkakalibrate na napili ay nagbibigay ng mahusay na pagbabasa at tila makatuwirang naaayon sa pagtutukoy sa sheet ng data ng DHT22.

Sa wakas, dahil sa pagiging kumplikado ng software ay natagpuan ko ang buong pagsubok sa code pagkatapos ng isang pangunahing pagbabago ay naging pag-ubos ng oras. Maaari kong isaalang-alang ang awtomatikong pagsubok sa ibang araw.

Hakbang 9: Ginamit na Mga Sanggunian

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

PubSubClient.h

  • Ni: Nick O'Leary
  • Mula sa:

DHT.h

  • Ni: Adafruit
  • Mula sa:

DHT22 Datasheet

Inirerekumendang: