Orodha ya maudhui:
- Hatua ya 1: Sehemu na Zana
- Hatua ya 2: Kanuni ya Kazi
- Hatua ya 3: Unganisha Kifaa
- Hatua ya 4: Pakia Nambari
- Hatua ya 5: Sanidi HomeAssistant
- Hatua ya 6: Kusanidi seva yako ya MQTT yako mwenyewe [Hiari]
- Hatua ya 7: OTA (Juu ya Sasisho za Hewa) kwa NodeMCU
- Hatua ya 8: Hitimisho, Kazi ya Baadaye
Video: Ushirikiano wa Counter wa Msaidizi wa Nyumbani: Hatua 8
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:49
Katika mafunzo haya nitaonyesha jinsi ya kuongeza sensorer maalum kwa HASS (msaidizi wa nyumbani) haswa kaunta ya geiger lakini mchakato ni sawa na sensorer zingine pia.
Tutatumia bodi ya NodeMCU, kaunta ya geiger ya arduino na msaidizi wa nyumbani aliyewekwa tayari.
Ujumuishaji utatokana na seva ya MQTT (ya umma au ya kibinafsi) na nitakuchukua hatua kwa hatua na hii.
Ikiwa haujui ni nini msaidizi wa nyumbani tafadhali tembelea ukurasa wao https://www.home-assistant.io/. Ni jukwaa la nyumbani la kujulikana ambalo linahifadhiwa vizuri na linaweza kubadilishwa sana.
Utajifunza juu ya:
- usanidi wa hali ya juu wa Msaidizi wa Nyumbani
- NodeMCU (bodi ya maendeleo) na jinsi ya kuipanga na IDE ya Arduino
- OTA (juu ya sasisho hewani) ukitumia Arduino IDE kwa bodi ya NodeMCU
- jinsi ya kuunganisha kifaa cha serial kwa NodeMCU
- usanidi wa kibinafsi wa MQTT kwenye linux (hiari)
Mawazo ya kimsingi:
- unayo Msaidizi wa Nyumbani anayeendelea
- unajua kidogo juu ya umeme
- una Arduino IDE iliyosanikishwa
Hatua ya 1: Sehemu na Zana
Sehemu:
1. Bodi ya NodeMCU
2. mkate wa mkate
3. waya wa juper wa kiume na wa kiume na wa kike
3. usb kwa kebo ndogo ya usb
4. counter ya arduino geiger na interface ya serial
(tafuta Ebay kwa "arduino geiger couter")
5. nyenzo zenye mionzi (hiari sampuli ndogo ya mtihani)
Zana:
1. Arduino IDE
2. Msaidizi wa Nyumba amewekwa
Hatua ya 2: Kanuni ya Kazi
Lengo letu ni kuonyesha kwenye HomeAssistat (HASS) masomo kutoka kwa kaunta ya geiger. Kwa upande mmoja tuna seva ya HASS inayoendesha mahali pengine inaweza kuwa pi ya raspberry au kifaa kingine na kwa upande mwingine tuna kaunta ya geiger.
Kaunta ya geiger ina bandari ya serial, suluhisho moja itakuwa kuambatisha moja kwa moja bandari ya serial kwa RaspberryPi ambayo HASS inaendesha.
Baadhi ya sababu kwa nini inaweza kuwa sio maoni mazuri:
- hakuna nafasi ya mwili hapo
- tuna kifaa kingine kwenye bandari ya serial
- tunataka kushikamana na sensorer ya mazingira ambayo inapaswa kuwekwa nje badala ya kaunta ya geiger
Sawa kwa hivyo tutachunguza uwezekano mwingine kufanya unganisho kupitia WIFI:
HASS inasaidia kusoma data ya sensa na kuonyesha kuwa kupitia seva ya MQTT, aina hii ya seva ni unganisho la uzito wa chini kwa vifaa vidogo kifaa kimoja huchapisha ujumbe kwenye "mada" nyingine inasikiliza mada hiyo kupokea ujumbe. Kwa hivyo HASS itasikiliza, na tunahitaji kitu ambacho kitachapisha ujumbe.
Sensorer yetu inajua tu kuzungumza juu ya laini ya serial ili tutumie bodi ambayo inaweza kusoma safu ya serial na ambayo inaweza kuungana juu ya WIFI na kuzungumza na seva ya MQTT. Bodi ya bei rahisi ambayo hufanya hii ni NodeMCU.
NodeMCU inaweza kusanidiwa na Arduino IDE. Mchoro ni rahisi sana, inafanya yafuatayo:
- inaunganisha kwa WIFI
- inahifadhi unganisho la MQTT na seva na hujaribu tena muunganisho wakati imeshindwa au kukatika
- husikiliza data zinazoingia kama safu ya nambari
- mara moja nambari kamili ikifika hutuma kupitia MQTT kwa mada maalum
Hatua ya 3: Unganisha Kifaa
Tutatumia bodi za mikate na waya kwa hivyo ni rahisi, tuna hatua kadhaa:
- weka NodeMCU kwenye ubao wa mkate
- unganisha bomba la geiger kwa kaunta ya geiger (angalia polarity)
- VIN huenda kwa kaunta ya geiger +
- GND kwenda kwa kaunta ya geiger -
- NodeMCU D7 (pini 13) huenda kwa geiger TX
- NodeMCU D8 (pini 15) huenda kwa geiger RX
- NodeMCU ya umeme kupitia USB ndogo kutoka kwa kompyuta
Hatua ya 4: Pakia Nambari
Tutatumia Arduino IDE na tutahakikisha kuwa bodi ya NodeMCU imewekwa na maktaba ya Adafruit_MQTT imewekwa.
1. Clone ghala ya github: https://github.com/danionescu0/arduino na nakili mchoro kutoka kwa miradi / HASSGeigerUjumuishaji kwa eneo lako la arduino sketchbook
2. Fungua Arduino IDE na usakinishe NodeMCU
- nenda kwenye Faili -> Mapendeleo, katika URL za Meneja wa Bodi za Ziada ongeza https://arduino.esp8266.com/stable/package_esp8266com_index.json ikiwa tayari unayo kitu hapo weka koma mbele na bonyeza sawa
- kutoka kwa Zana -> Bodi -> Meneja wa Bodi aina "nodemcu" na uchague kiingilio esp8266 na Jumuiya ya ESP8266, na bonyeza media install
3. Sakinisha Adafruit_MQTT
- nenda kwenye Zana -> Dhibiti Maktaba -> tafuta "Adafruit_MQTT" na usakinishe "maktaba ya Arduino MQTT"
4. Chomeka kebo ya USB kwenye kompyuta yako na usanidi bodi:
- nenda kwenye Zana -> Bodi -> chagua NodeMcu 1.0
- Zana -> Bandari -> bandari yako ya USB
- acha mipangilio mingine bila kubadilika
4. Katika mchoro badilisha hati zako za WIFI ili zilingane na yako mwenyewe:
#fafanua STASSID "ssid" // Badilisha na SSID yako ya WIFI
#fafanua STAPSK "pass" // Badilisha na nenosiri lako la WIFI
5. Pakia mchoro kwenye ubao wako na baada ya kupakia weka upya bodi kutoka kwenye kitufe
6. Fungua mfuatiliaji wa serial, ikiwa yote yameenda vizuri unapaswa kuona pato kama hii:
Kupiga kura
Anwani ya IP: 192.168.1.168 OTA imewezeshwa Kuunganisha kwa MQTT… MQTT Imeunganishwa! {"mnururisho": 0.03}..
Hatua ya 5: Sanidi HomeAssistant
Tutachukua kuwa una msaidizi wa nyumbani anayefanya kazi. Kwenye mfumo wangu nina toleo la HASSOS 3.12 kwenye RaspberryPi. Ikiwa toleo lako la msaidizi wa nyumbani ni la zamani sana au mpya sana baadhi ya huduma zinaweza kutofautiana. Mafunzo haya hufanya kazi kwa hakika na toleo la 3.12.
Ikiwa yako haina Msaidizi wa Nyumba aliyewekwa, angalia mwongozo wao rasmi wa usanikishaji:
Kabla ya kuendelea na usakinishaji hakikisha NodeMCU imechomekwa na inachapisha data.
Ok tutakuwa na hatua kadhaa hapa pia kwa usanidi:
1. Sakinisha "kihariri faili" ikiwa huna kwenye menyu, hapa kuna mafunzo rasmi:
2. Hariri "/config/configuration.yaml" faili na uongeze yafuatayo na uihifadhi
- sehemu ya mqtt ikiwa huna tayari
mqtt:
broker: broker.hivemq.com ugunduzi: ugunduzi wa kweli_mbadala: ha
- sehemu ya sensorer
sensa:
- jukwaa: jina la mqtt: "Mionzi" state_topic: "ha / radiation" unit_of_ kipimo: 'uSv' kipekee_id: "radiation" value_template: "{{value_json.radiation}}"
3. Kutoka kwa Usanidi -> Udhibiti wa seva: bonyeza "Angalia usanidi" angalia faili ya usanidi wa yaml kwa makosa, na kisha bonyeza "kuanzisha upya" na subiri hadi itaanza upya.
4. Kutoka kwa Muhtasari -> Menyu ya kona ya juu kulia -> Sanidi UI -> bonyeza kitufe cha + kutoka kulia chini
5. Chagua "sensa" kutoka kwenye orodha -> katika uwanja wa "chombo" tafuta "sensor.radiation", katika uwanja wa jina andika "Radiation" na ubonyeze sawa, inapaswa kuwa kwenye ukurasa kuu sasa
Hatua ya 6: Kusanidi seva yako ya MQTT yako mwenyewe [Hiari]
Wacha tujadili kidogo juu ya MQTT
“MQTT ni Seva ya Mteja kuchapisha / kujiandikisha kwa itifaki ya usafirishaji wa ujumbe. Ni uzani mwepesi, wazi, rahisi, na iliyoundwa ili iwe rahisi kutekeleza. Tabia hizi hufanya iwe bora kutumiwa katika hali nyingi, pamoja na mazingira yaliyozuiliwa kama vile mawasiliano katika Mashine kwa Mashine (M2M) na Mtandao wa Vitu (IoT) muktadha ambapo alama ndogo ya nambari inahitajika na / au upelekaji wa mtandao uko kwenye malipo.”
Nukuu kutoka kwa vipimo rasmi vya MQTT 3.1.1.
Kwa hivyo kimsingi tunaweza kuchapisha ujumbe mahali pengine upande mmoja na kwa upande mwingine tunaweza kusikiliza ujumbe huo na kufanya kitu na data. MQTT inasaidia "mada", mada ni masharti ambayo broker hutumia kuchuja ujumbe kwa kila mteja kwa hivyo ikiwa tutachapisha ujumbe kwa mada ya "/ mionzi" msikilizaji lazima ajisajili kwa mada hiyo hiyo kupata ujumbe ambao tunatuma.
Hapa kuna mafunzo mazuri kuhusu MQTT kwa undani:
Kutumia seva ya mzinga ya bure kuna shida kama:
- mtu yeyote anayesikiliza mada yako atapokea ujumbe wako
- ikiwa itashuka au inahitaji malipo baadaye hautaweza kuitumia (isipokuwa ulipe)
- ikiwa mtu yeyote anayechapisha ujumbe kwa mada hiyo hiyo utapokea ujumbe wao pia, anaweza kuchapisha ujumbe usiokubaliana na kuvunja grafu zako za HASS
Kutumia seva ya kibinafsi
Ikiwa hautaki kutumia seva ya bure ya umma una chaguo la seva ya kibinafsi. Tutaweka Mosquitto MQTT kwenye seva ya ubuntu / debian kama pi ya raspberry au kompyuta.
Mosquitto ni seva inayotumia itifaki ya MQTT na ni bure.
Ili kuiweka ingia kwenye pi yako ya raspnerry au seva nyingine ya msingi ya debian na uendesha:
sasisho la sudo apt
Sudo apt kufunga - mbu-wateja-mbu sudo systemctl wezesha huduma ya mbu
Hii itasasisha hazina, kufunga seva ya mbu na mteja na kuiwezesha huduma kuanza wakati wa kuanza
Kupata seva ip kutekeleza:
jina la mwenyeji -I
na itatoa kitu kama:
192.168.1.52 172.17.0.1 172.18.0.1
Kwa hivyo ip yangu ni 192.168.1.52, katika maagizo hapa chini ibadilishe na ip yako mwenyewe
Unaweza kujaribu seva ya MQTT kwa kuchapisha ujumbe na kuipokea kwa zana ya koni, kwa kuwa vituo hivi viwili lazima vifunguliwe ambavyo vinasikiliza ujumbe, ambao utachapisha ujumbe.
Kwanza kwenye terminal endesha amri hii kusikiliza ujumbe kwenye "/ some-mada"
mosquitto_sub -h 192.168.1.52 -t / mada-fulani
Fungua kituo kingine na uchapishe ujumbe kwa mada hiyo:
mosquitto_pub -h 192.168.1.52 -t / some-mada -m '{"unyevu": 74.0}'
Katika kituo cha kwanza unapaswa kuona '{"unyevu": 74.0}' kuchapishwa.
Tahadhari maalum:
- usanidi huu unafikiria kuwa HASS, Mosquitto na NodeMCU zimeunganishwa kwenye mtandao huo wa WIFI na hakuna sheria za firewall na wanaweza kuwasiliana kwa uhuru
- seva ya Mosquitt MQTT haina jina la mtumiaji / nywila, ikiwa unataka kuweka kitambulisho angalia hii: https://www.steves-internet-guide.com/mqtt-username-password-example/ Pia utahitaji kusanidi sifa za Msaidizi wa Nyumbani na katika mchoro wa arduino
Hatua ya 7: OTA (Juu ya Sasisho za Hewa) kwa NodeMCU
Juu ya sasisho za hewa inamaanisha kuwa bodi ya maendeleo inaweza kuwaka kwa waya bila hitaji la kebo ya mwili.
Arduino IDE inasaidia utendakazi huu wa safu ya ESP8266 na bodi zingine:
- inahitaji mwangaza wa kwanza juu ya kebo ya USB
- inaunda bandari halisi juu ya WIFI na inaonekana tu kutoka Arduino IDE
- hakuna habari ya utatuzi ya serial inapatikana
- inasaidia ulinzi na nywila
Ili kuwezesha OTA kwenye mchoro wa ESP8266 kwanza ni pamoja na maktaba:
# pamoja na "ArduinoOTA.h"
Pia fafanua nenosiri hili la mchoro kila wakati:
#fafanua SKETCHPASS "neno fulani"
Katika sehemu ya usanidi ongeza laini hizi:
wakati (WiFi.waitForConnectResult ()! = WL_CONNECTED) {
Serial.println ("Uunganisho Umeshindwa! Inawasha upya…"); kuchelewesha (5000); Kuanza kwa ESP (); } ArduinoOTA.setPassword (SKETCHPASS); ArduinoOTA.onStart ( () {Aina ya kamba; "+ aina);}); ArduinoOTA.onEnd ( () {Serial.println ("\ nEnd");}); ArduinoOTA.onProgress ( (maendeleo yasiyosainiwa ya int, uns int int) {Serial.printf ("Maendeleo:% u %% / r", (maendeleo / (jumla / 100)));}); ArduinoOTA.onError ( (ota_error_t error) {Serial.printf ("Error [% u]:", error); ikiwa (error == OTA_AUTH_ERROR) {Serial.println ("Auth Imeshindwa");} mwingine ikiwa (makosa == OTA_BEGIN_ERROR) {Serial.println ("Anza Imeshindwa");} vingine ikiwa (kosa == OTA_CONNECT_ERROR) {Serial.println ("Unganisha Imeshindwa"); Pokea Imeshindwa ");} mwingine ikiwa (kosa == OTA_END_ERROR) {Serial.println (" Mwisho Umeshindwa ");}}); ArduinoOTA.anza (); Serial.print ("Anwani ya IP:"); Serial.println (WiFi.localIP ());
Na katika sehemu ya kitanzi ongeza mstari huu:
ArduinoOTA.shughulikia ();
Baada ya kupakia nambari yako ya kwanza baada ya buti ya bodi kupanda juu unapaswa kuona katika Arduino IDE katika sehemu ya Zana-> Bandari aina mbili za bandari:
Bandari za serial: / dev / ttyUSB0 (kwa mfano)
Bandari za mtandao: esp8266-xxxxx mnamo 192.168.1.xxx
Sasa unaweza kuchagua bandari ya mtandao na kupakia kijijini cha mchoro, utaombwa kwa nywila ya mchoro (ile ambayo umefafanua mara kwa mara hapo juu)
Hatua ya 8: Hitimisho, Kazi ya Baadaye
Mafunzo haya yanaweza kubadilishwa kwa urahisi ili kutuma data kuhusu aina zingine za sensorer:
- ikiwa sensorer yako inasaidiwa moja kwa moja na NodeMCU kupitia maktaba, data ya kuogelea tu kutoka kwa sensa na uisukuma moja kwa moja kupitia MQTT
- ikiwa maktaba ya sensa haifanyi kazi na NodeMCU lakini ni ya Arduino tu kisha pakia nambari yako kwa arduino, toa thamani kupitia laini ya serial na uisome kwenye NodeMCU na uisukume (kama vile tulivyofanya na kaunta ya geiger)
Tunaweza hata kuibadilisha ili kutuma data kutoka kwa sensorer nyingi kama hivyo:
- unganisha sensorer zako kwa NodeMCU
- data ya uchaguzi kutoka kila sensorer
- kwa kila sensorer kuchapisha data kwa mada tofauti
- katika HASS hufafanua sensorer nyingi (kama tulivyofanya na geiger) ambayo itasikiliza mada tofauti
Ilipendekeza:
DIY Smart Garage kopo kopo + Home Msaidizi Ushirikiano: 5 Hatua
DIY Smart Garage Opener Opener + Ushirikiano wa Msaidizi wa Nyumbani: Geuza mlango wako wa kawaida wa karakana ukitumia mradi huu wa DIY. Nitaonyesha jinsi ya kuijenga na kuidhibiti kwa kutumia Msaidizi wa Nyumbani (juu ya MQTT) na kuwa na uwezo wa kufungua na kufunga mlango wako wa karakana. Nitatumia bodi ya ESP8266 iitwayo Wemos
Dhibiti Lango Lako la Kuteleza Moja kwa Moja na Msaidizi wa Nyumbani na ESPNyumbani: Hatua 5 (na Picha)
Dhibiti Lango Lako la Kuteleza Moja kwa Moja na Msaidizi wa Nyumbani na ESPNyumbani: Nakala ifuatayo ni maoni juu ya uzoefu wangu wa kibinafsi kudhibiti lango la kuteleza la moja kwa moja ambalo nilikuwa nimeweka kwenye nyumba yangu. Lango hili, lenye jina la " V2 Alfariss ", lilipatiwa viboreshaji vichache vya Phox V2 kuidhibiti. Nina pia
Msaidizi wa Google - Uendeshaji wa Nyumbani Iot Kutumia Esp8266: Hatua 6
Msaidizi wa Google | Uendeshaji wa Nyumbani Iot Kutumia Esp8266: Katika maagizo haya nitakuonyesha msaidizi wa google anayedhibitiwa kiotomatiki nyumbani
Uendeshaji wa Nyumbani Kutumia Msaidizi wa Google na Adafruit IO: 3 Hatua
Automation ya Nyumbani Kutumia Msaidizi wa Google na Adafruit IO: Msaidizi wa Google ni AI (Artificial Intelligence) huduma ya amri ya sauti. Kutumia sauti, tunaweza kuwasiliana na msaidizi wa google na inaweza kutafuta kwenye wavuti, kupanga ratiba ya matukio, kuweka kengele, kudhibiti vifaa, n.k Huduma hii inapatikana kwenye sma
Kuanza na Uendeshaji wa Nyumbani: Kufunga Msaidizi wa Nyumbani: Hatua 3
Kuanza na Uendeshaji wa Nyumbani: Kufunga Msaidizi wa Nyumbani: Sasa tutaanzisha safu ya otomatiki ya nyumbani, ambapo tutaunda nyumba nzuri ambayo itaturuhusu kudhibiti vitu kama taa, spika, sensorer na kadhalika kutumia kitovu cha kati pamoja na msaidizi wa sauti. Katika chapisho hili, tutajifunza jinsi ya kuingiza