Napravite pametne senzore za dom s Arduino, MySensors i OpenHAB

  • Peter Holmes
  • 0
  • 4225
  • 279
Oglas

Pametni senzori za kuće koštaju smiješnu svotu novca. Uz 60 do 100 dolara samo za detektor pokreta ili senzor vlage, ožičenje cijele kuće postaje domena onih sa blesavim iznosima raspoloživog dohotka. Izgradimo svoje.

Srećom, naporni posao već su učinili sitni ljudi iza MySensors.org. Danas ću vam pokazati kako koristiti MySensors okvir za stvaranje jeftinog niza pametnih kućnih senzora koji se mogu uvesti u instalaciju OpenHAB (pogledajte naš vodič za početak korištenja OpenHAB-a na Raspberry Pi) Početak rada s OpenHAB kućnom automatizacijom na Raspberry Pi Prvi koraci s OpenHAB kućnom automatizacijom na malini Pi OpenHAB je zrela platforma za kućnu automatizaciju otvorenog koda koja radi na različitim hardverima i agno je protokol, što znači da se danas može povezati s gotovo svim hardverom kućne automatizacije na tržištu. , Pretpostavljam da već imate radni MQTT poslužitelj i razumijete osnove formata MQTT poruka; ako ne, obavezno pročitajte sljedeće upute za OpenHAB koji uključuju upute za instaliranje MQTT poslužitelja OpenHAB Vodič za početnike 2. dio: ZWave, MQTT, Pravila i grafikoni OpenHAB početnički vodič 2. dio: ZWave, MQTT, Pravila i crtanje OpenHAB , softver za kućnu automatizaciju otvorenog koda, daleko nadmašuje mogućnosti ostalih sustava za automatizaciju kućanstava na tržištu - ali to nije lako postaviti. U stvari, to može biti ravno frustrirajuće. .

Iako ću se posebno baviti prosljeđivanjem podataka MySensorsa iz mreže Arduinosa, koristeći MQTT, u instalaciju OpenHAB, trebao bih napomenuti da MySensors okvir može ući u brojne različite kontrolere kućne automatizacije. Ovdje sam to predstavio kao cjelovito rješenje koje djeluje za mene, ali pogledajte stranicu MySensors jer možda smatrate da isto odgovara vašoj sličnoj svrsi, ali koristeći nešto drugačiji hardver ili drugačiji protokol poruka. Nevjerojatno je svestran.

Trošak hardvera za moje postavljanje je manji od 10 USD po čvoru (malo više za pristupnik), ali dodatni senzori i aktuatori mogu se dodati za vrlo malo (na primjer, DHT11 senzor vlage i temperature je oko 1 USD svaki; relej visokog napona kreće se oko 3 USD).

Što mi radimo

Osnovna ideja je da umjesto dodavanja na našu postojeću prepunu lokalnu mrežu koristeći nepouzdan Wi-Fi ili skupe Ethernet štitove, stvaramo potpuno zasebnu mrežu sposobnu za mrežnu mrežu samo za Arduinos; zatim preusmjeri to na lokalnu mrežu koristeći jedan čvor gateway koji ima i Ethernet vezu i radio vezu s drugim Arduinosom. Tako radimo nekoliko senzorskih čvorova koji skupljaju podatke; i pristupni čvor, koji te podatke prenosi na OpenHAB poslužitelj.

Opet, to mi djeluje, jer je moj Wi-Fi prijem toliko užasan i ne želim ga pretrpati nepotrebnim podacima. Ako ste zadovoljni Wi-Fi-jem, pogledajte korištenje jeftinog ESP8266 Arduino-kompatibilnog Upoznajte Arduino-ubojicu: ESP8266 Upoznajte Arduino-ubojicu: ESP8266 Što ako vam kažem da postoji Arduino-kompatibilna dev ploča s ugrađenom Wi -Fi za manje od 10 dolara? Pa, postoji. s ugrađenim Wi-Fi pločama - MySensors ih podržava i.

Važna napomena za korisnike El Capitana i Arduino klonove: Apple je uspio slomiti serijske upravljačke programe koji su korišteni za komunikaciju s mnogim Arduino klonskim pločama u najnovijem izdanju El Capitana zahvaljujući novim sigurnosnim mjerama. Da biste vidjeli jeste li pogođeni, pogledajte svoju ploču i čip najbliži USB priključku. Ako piše CH340, na vas to utječe. Slijedite upute ovdje da biste onemogućili potpisivanje nakon pokretanja, ponovno instalirajte serijske upravljačke programe CH340.

Potrebne komponente

Za ulaz ćete trebati:

  • Arduino Uno
  • Ethernet štit (zasnovan na W5100)
  • NRF24L01 modul - koristio sam +PA + LNA verzije u čitavom dijelu, koji imaju povećan domet do 1 km. Ožičenje je isto ono što odaberete.

Za svaki senzorski čvor:

  • Arduino Uno
  • NRF24L01 modul
  • Senzori (za početak, predložio bih temperaturu i vlažnost DHT11 ili DHT22 modul)

Dodatno / neobavezno:

  • 10uF kondenzatori, po jedan za svaki RF modul koji imate (veza je za paket od 50!)
  • Napajanje s izlazom od 5 V i 3.3 V (YwRobot MB102 dobro radi i svaki $ 1) - potreban ako se koristi klon Arduino. Za njih će vam trebati i 9-12V istosmjerno napajanje.
  • Štitnici za prototipiranje ili kratke muško-ženske skakačke žice.

Rad s NRF24L01 modulima

Krenimo od NRF24L01 modula, jer su oni najsloženiji dio projekta. Potražila sam skuplju verziju dužeg raspona: tehnički poznata kao NRF24L01 + PA + LNA. Dolaze s ugrađenim krugom za pojačavanje signala i priključkom antene, mada vam savjetujem da prvo isprobate jeftiniju verziju modula bez antene ako imate normalan dom s pravilnim zidovima, a ne zid od čvrstog kamena debljine metar Jesam. Područje zahtjeva za njih iznosi oko kilometar, više nego dovoljno za mene koji je stavljen u vrtnu šupu.

Međutim, takve su stvari stvarno s kojima je teško raditi; ako nastavite i uključite sve, a da prvo ne pročitate ove savjete, razočarat ćete se.

  • Modulu treba 3,3 V ulazne snage na VCC pin - a ne 5v. Ako stavite 5v, pržit ćete ga.
  • Zalemite 10uF kondenzator preko VCC / GND terminala. Čvrsta siva linija na kondenzatoru označava negativnu / GND stranu.
  • Koristite kratke, kvalitetne skočne kablove; ili još bolje, lepite ih izravno na zaštitni dio prototipa kako bi se dužina kabela smanjila na minimalne i čvrste veze.
  • Ako koristite Arduino klon, regulator napona ih ne osigurava dovoljno na 3,3 V pinu - morat ćete koristiti vanjsku ploču za napajanje (povezanu iznad), dostupnu za oko 1 USD. Omogućuju stabilna 3.3V. Ako koristite an izvornik Arduino marka Uno, čini se da to nije problem.

Toplo predlažem da prvo napravite neke osnovne testove samo kako biste utvrdili da vaš radio radi. Povežite dva radija kao što je prikazano na stranici MySensors. Nije važno da njihov dijagram prikazuje Arduino Micro ploče - koriste se isti brojevi pinova. Imajte na umu da dijagram prikazuje NRF24L01 iz vrh; zapravo ćete stvari priključiti s donje strane. Mentalno se prilagodite u skladu s tim. Zanemarite sivi IRQ pin, trenutno se ne koristi. U sažetku:

  • VCC ide na 3,3 V na vašem vanjskom izvoru napajanja
  • BND ide na zajedničku prizemnu željeznicu
  • CE na pin 9
  • CSN / CS za prikvačenje 10
  • MOSI za pin 11
  • MISO za pin 12
  • SCK za pin 13

Za testiranje su vam potrebna dva čvora potpuno ožičena. Preuzmite RF24 biblioteku i učitajte najjednostavnije Početak rada primjer. Uključite oba modula, ali jedan ostavite spojen preko USB-a i otvorite serijsku konzolu. Tip “T” i pošaljite je, kako biste je prebacili u način prijenosa, u tom bi trenutku trebali dobiti poruke za uklanjanje pogrešaka rekavši da je uspješno slanje poruke na drugi čvor.

Izgradnja MySensors MQTT klijentskog prolaza

Ok, sada kad znamo da su RF24 radio spojeni i ispravno rade, nastavite i preuzmite razvojnu granu MySensors Arduino paketa. Ovaj je udžbenik napisan s verzijom 1.5, ali treba biti u redu i s kasnijim verzijama. Mi koristimo razvojnu granu jer je u vrijeme pisanja MQTT klijent pristupnik još nije dio glavnog paketa.

Iako je MQTTGateway dostupan u matičnoj branši, on djeluje i kao poslužitelj, što ne želimo jer već imamo stabilan MQTT server koji radi na Raspberry Pi. Samo želimo proslijediti MySensors podatke. Opet, ako to nije ono što želite - ako radije ne koristite MQTT - onda pogledajte EthernetGateway ili SerialGateway, a oba su također kompatibilna s OpenHAB-om.

Vrijedno je napomenuti da paket za preuzimanje ne uključuje samo osnovne MySensors datoteke, već uključuje i kompatibilne biblioteke potrebne za svaki mogući senzor. Da biste izbjegli sukobe, predlažem da sigurnosno kopirate cijelu trenutnu mapu knjižnica i sve zamijenite onima u paketu za preuzimanje.

Ožičenje za pristupnik je malo drugačije; Jednom kada imate svoj Ethernet štit, koristite sljedeće pinove za radio modul:

  • CE na pin 5
  • CSN za pin 6
  • SCK za pin A0
  • MOSI za pin A1
  • MISO za pin A2

Također morate omogućiti #define SOFTSPI crta u knjižnice / mySensors / MyConfig.h datoteka. Učinite to uklanjanjem // kako biste ga komentirali, a na mojoj je liniji 309.

Moramo to učiniti jer i radio modul i mrežni štit koriste SPI, a oni su nespojivi; tako da jednostavno prebacimo SPI radijskog modula na neke druge igle i umjesto toga izvodimo SPI komunikaciju u softveru, mekan SPI).

Učitajte MySensors / GatewayW5100MQTTClient Skica. Ako to ne vidite u izborniku MySensors, nemate ih grana razvoja instaliran. Upotrijebite gornju vezu da biste ponovo preuzeli čitavu knjižnicu.

Trebat ćete definirati statičku IP adresu za kontroler, IP vašeg mrežnog usmjerivača i podmreže i IP adresu vašeg postojećeg MQTT poslužitelja. Slobodno izmijenite prefikse tema ako želite. Prenesite i priključite tu stvar u mrežu. Kratko provjerite serijsku konzolu za bilo kakve gorljive pogreške poput nemogućnosti povezivanja s vašim MQTT serverom, u protivnom ga ostavite na stranu (ali ostavite ga uključenim).

Izgradnja senzorskih čvorova

Prvo, komentirajte to #define SOFTSPI crta u MyConfig.h datoteku ponovo tako što ćete // vratiti na početak. Potrebno je samo za pristupnik - za senzorske čvorove koristimo standardni NRF24L01 ožičenje koje koristi hardverski SPI. Ako trebate podsjetiti:

  • VCC ide na 3,3 V na vašem vanjskom izvoru napajanja (ili na samom Arduinu ako je original, a ne klon)
  • BND ide na zajedničku prizemnu željeznicu
  • CE na pin 9
  • CSN / CS za prikvačenje 10
  • MOSI za pin 11
  • MISO za pin 12
  • SCK za pin 13

Zatim povežite odabrani senzor; Za testiranje koristim DHT11 senzor vlage i temperature, ali ako se pomaknete prema dolje do popisa senzora i pokretača na bočnoj traci stranice MySensors, naći ćete veliki izbor drugih opcija: vrata, mjerač kiše, svjetlost, kretanje, čak RFID - i učitava više. Možete vidjeti da sam također dodao relej čvoru na slici dolje, ali o tome nešto kasnije.

Na kraju, učitajte HumiditySensor primjerice iz izbornika MySensors i dodajte sljedeći redak odmah nakon komentara.

#define MY_NODE_ID 2

Budući da koristimo posebnu verziju kontrolera koja upravo prosljeđuje stvari na naš vlastiti MQTT poslužitelj, on nema standardnu ​​značajku kontrolera koja bi automatski dodijelila ID-e čvora svakom novom čvorištu. Umjesto toga, samo ćemo ga ručno definirati svaki put. Zapišite ovaj broj negdje za vlastite zapise i promijenite ga za svaki čvor.

Omogućite i izlaz za uklanjanje pogrešaka:

#define MY_DEBUG

Na kraju provjerite je li podatkovni pin vašeg DHT11 osjetnika točan.

#define HUMIDITY_SENSOR_DIGITAL_PIN 7

Zatim prenesite!

Vrijedno je otvoriti serijsku konzolu kako biste je pogledali. Bitno je što treba pogledati st =, koji je status poruke. st = fail znači da poruka nije poslana. Moguće je da niste definirali jedinstveni ID čvora ili je vaš pristupnik izvan mreže. Lažirao sam ove propuste jednostavnim isključenjem mrežnog prolaza:

Ako sve radi, trebali biste početi gledati kako neka očitanja podataka dolaze na vaš MQTT poslužitelj. Stavljanje onih u OpenHAB izvan je okvira ovog vodiča, ali je pokriveno u 2. dijelu vodiča za OpenHAB OpenHAB vodič za početnike 2. dio: ZWave, MQTT, pravila i grafikoni OpenHAB vodič za početnike 2. dio: ZWave, MQTT, Pravila i grafikoni OpenHAB, softver za kućnu automatizaciju otvorenog koda daleko nadmašuje mogućnosti drugih sustava za automatizaciju kućnih automata na tržištu - ali nije ga lako postaviti. U stvari, to može biti ravno frustrirajuće. pa se možete uputiti tamo.

Kombinirajući kod senzora

Iako je postavljanje i pokretanje jednog osjetničkog čvora relativno jednostavno, postaje malo zamršenije kada želite dodati više senzora u svaki čvor. U osnovi ćete spojiti isječke koda iz dva različita primjera. Najlakši način da to pokažete primjerom s videom! Ovdje kombiniram naš osnovni senzor vlažnosti s relejem.

Ovdje možete pronaći popunjeni kod senzora za vlagu i releja, koji je već modificiran petljom koja ne blokira, kao što sam spomenuo u videu. Da biste saznali više o MQTT naredbenoj strukturi potrebnoj za aktiviranje releja, provjerite serijski API - ali dovoljno je reći da sljedeći kanal kontrolira prvi relej u kodu koji sam dao (s tijelom poruke od 0 ili 1):

mysensors-u / 9/1/1/0/2

Vaše jedino ograničenje sada je količina memorije na Arduinu, a ja ću reći ovo - najpouzdaniji senzori u mom pametnom domu nisu komercijalni Z-Wave moduli koji koštaju 80 dolara, već MySensors prilagođeni.

Završit ću danas tamo, ali ako imate problema, možete ih pitati u komentarima ili vrlo aktivnim forumima MySensors. Hoćete li sastaviti svoje vlastite jeftine senzorske čvorove? Kako dolazi vaš pametni dom?




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.