Inhoudsopgave:

Nieuwe draadloze IOT-sensorlaag voor thuismonitoringsysteem - Ajarnpa
Nieuwe draadloze IOT-sensorlaag voor thuismonitoringsysteem - Ajarnpa

Video: Nieuwe draadloze IOT-sensorlaag voor thuismonitoringsysteem - Ajarnpa

Video: Nieuwe draadloze IOT-sensorlaag voor thuismonitoringsysteem - Ajarnpa
Video: Data Driven Live Session: Digitaal meten van lucht en waterkwaliteit met IoT en Machine Learning 2024, November
Anonim
Nieuwe draadloze IOT-sensorlaag voor thuismonitoringsysteem
Nieuwe draadloze IOT-sensorlaag voor thuismonitoringsysteem
Nieuwe draadloze IOT-sensorlaag voor thuismonitoringsysteem
Nieuwe draadloze IOT-sensorlaag voor thuismonitoringsysteem

Deze Instructable beschrijft een goedkopere, op batterijen werkende draadloze IOT-sensorlaag voor mijn eerdere Instructable: LoRa IOT Home Environmental Monitoring System. Als je deze eerdere Instructable nog niet hebt bekeken, raad ik je aan de inleiding te lezen voor een overzicht van de mogelijkheden van het systeem die nu zijn uitgebreid naar deze nieuwe sensorlaag.

Het originele LoRa IOT Home Environmental Monitoring System bereikte de doelstellingen die ik had uiteengezet toen het in april 2017 werd gepubliceerd. Maar nadat ik het monitoringsysteem een aantal maanden had gebruikt om de temperatuur en vochtigheid op elke verdieping van het huis te bewaken, wilde ik voeg 11 extra sensoren toe op bijzonder kwetsbare plekken in huis; inclusief zes sensoren die strategisch in de kelder zijn geplaatst, sensoren in elke badkamer en een sensor op de zolder, de wasruimte en de keuken.

In plaats van meer LoRa-gebaseerde sensoren van de eerdere Instructable toe te voegen, die enigszins duur zijn en gevoed worden via AC-adapters, heb ik besloten om een laag goedkopere, op batterijen werkende sensoren toe te voegen met 434-MHz RF Link-zenders. Om de compatibiliteit met het bestaande LoRa IOT Home Environmental Monitoring System te behouden, heb ik een draadloze brug toegevoegd om de 434-MHz-pakketten te ontvangen en ze opnieuw te verzenden als LoRa-pakketten op 915-MHz.

De nieuwe sensorlaag bestaat uit de volgende subsystemen:

  1. 434-MHz draadloze afstandsbedieningen - op batterijen werkende temperatuur- en vochtigheidssensoren
  2. Wireless Bridge - Ontvangt 434-MHz-pakketten en verzendt ze opnieuw als LoRa-pakketten.

De 434-MHz draadloze afstandsbedieningen gebruiken een lager zendvermogen en minder robuuste protocollen in vergelijking met LoRa-radio's, dus de locatie van de Wireless Bridge in huis is gekozen om betrouwbare communicatie met alle 434-MHz draadloze afstandsbedieningen te garanderen. Door de Wireless Bridge te gebruiken, kan de communicatie met de 434-MHz draadloze afstandsbedieningen worden geoptimaliseerd zonder enige beperking op te leggen aan de locatie van de LoRa IOT-gateway.

De 434-MHz draadloze afstandsbedieningen en draadloze brug zijn gebouwd met behulp van gemakkelijk verkrijgbare hardwaremodules en een paar afzonderlijke componenten. De onderdelen zijn verkrijgbaar bij Adafruit, Sparkfun en Digikey; in veel gevallen zijn Adafruit en Sparkfun onderdelen ook verkrijgbaar bij Digikey. Bekwame soldeervaardigheden zijn nodig om de hardware te monteren, met name de point-to-point-bedrading van de 434-MHz draadloze afstandsbedieningen. De Arduino-code is goed becommentarieerd voor begrip en om gemakkelijke uitbreiding van functionaliteit mogelijk te maken.

De doelstellingen voor dit project waren onder meer:

  • Zoek een goedkopere draadloze technologie die geschikt is voor huishoudelijke omgevingen.
  • Ontwikkel een draadloze sensor op batterijen die een aantal jaren op één set batterijen kan werken.
  • Vereisen geen wijziging aan de LoRa IOT Gateway hardware of software van mijn eerdere Instructable.

De totale onderdelenkosten voor de 434-MHz draadloze afstandsbedieningen, exclusief de 3xAA-batterijen, bedragen $ 25, waarvan de SHT31-D temperatuur- en vochtigheidssensor meer dan de helft ($ 14) voor zijn rekening neemt.

Net als bij de LoRa-afstandsbedieningen van mijn eerdere Instructable, nemen de 434-MHz draadloze afstandsbedieningen temperatuur- en vochtigheidsmetingen en rapporteren ze elke 10 minuten aan de LoRa IOT Gateway via de Wireless Bridge. De elf 434-MHz draadloze afstandsbedieningen werden in december 2017 in gebruik genomen met behulp van 3 x AA-batterijen die nominaal 4,5 V leveren. De batterijmetingen van de elf sensoren in december 2017 varieerden van 4,57V tot 4,71V, zestien maanden later, in mei 2019, variëren de batterijmetingen van 4,36V tot 4,55V. Het gebruik van onderdelen met een breed bedrijfsspanningsbereik moet ervoor zorgen dat de sensoren nog een jaar of langer kunnen blijven werken, op voorwaarde dat de betrouwbaarheid van de RF-verbinding behouden blijft, aangezien het zendvermogen afneemt bij lagere batterijspanningen.

De betrouwbaarheid van de 434 MHz-sensorlaag is uitstekend geweest in mijn huishoudelijke omgeving. De nieuwe sensorlaag wordt ingezet over 4.200 SqFt afgewerkte ruimte en 1.800 SqFt onafgewerkte kelderruimte. Sensoren zijn gescheiden van de Wireless Bridge door een combinatie van 2 - 3 binnenmuren en vloer/plafonds. De LoRa IOT Gateway van mijn eerdere Instructable stuurt een sms-waarschuwing als de communicatie met een sensor langer dan 60 minuten is verbroken (6 gemiste rapporten van tien minuten). Eén sensor, op de vloer in een hoek aan het uiteinde van de kelder achter gestapelde dozen, zal af en toe een verloren contact-waarschuwing veroorzaken, maar in alle gevallen wordt de communicatie met de sensor hersteld zonder enige tussenkomst.

Bedankt voor het bezoeken van dit instructable, en zie de volgende stappen voor meer informatie.

  1. Op batterijen werkend draadloos sensorontwerp
  2. 434-MHz draadloze externe hardware
  3. 434-MHz draadloze afstandsbedieningssoftware
  4. Draadloze bridge-hardware
  5. Wireless Bridge-software

Stap 1: Op batterijen werkend draadloos sensorontwerp

Op batterijen werkend draadloos sensorontwerp
Op batterijen werkend draadloos sensorontwerp

Het ontwerp voor de 434-MHz draadloze afstandsbediening maakt gebruik van de volgende onderdelen:

  • ATtiny85 8-bit AVR-microcontroller
  • Sensirion SHT31-D - Breakout Board voor temperatuur- en vochtigheidssensoren
  • Sparkfun 434-MHz RF-linkzender
  • 10K Ohm weerstand

Een van de eerste ontwerpbeslissingen was om apparaten te vermijden die gereguleerde 3,3 V of 5 V nodig hebben en om onderdelen te selecteren die over een breed spanningsbereik werken. Dit elimineert de noodzaak voor spanningsregelaars die stroomverspillers zijn in een op batterijen werkend ontwerp, en verlengt de levensduur van de sensoren omdat ze langer zullen blijven werken naarmate de batterijspanning na verloop van tijd afneemt. De bedrijfsspanningsbereiken voor de gekozen onderdelen zijn als volgt:

  • ATtiny85: 2.7V tot 5.5V
  • SHT31-D: 2,4 V tot 5,5 V
  • RF-link Tx: 1.5V tot 12V

Met enige marge zouden de 434-MHz draadloze afstandsbedieningen functioneel moeten werken tot een batterijspanning van 3V. Zoals reeds opgemerkt, valt nog te bezien hoe goed de betrouwbaarheid van de RF-link behouden blijft, aangezien het zendvermogen wordt verminderd bij lagere batterijspanningen.

Er is gekozen om 3 x AA batterijen te gebruiken om een nominale startspanning van 4,5V te leveren. Na 16 maanden gebruik is de laagst gemeten accuspanning 4,36V.

De ATtiny85 Watch Dog Timer (WDT) wordt gebruikt om de 434-MHz draadloze afstandsbediening het grootste deel van de tijd in een slaapstand te houden. De ATtiny85 wordt elke 8 seconden gewekt door de WDT om een teller van 10 minuten te verhogen; bij het bereiken van een interval van 10 minuten wordt een meting uitgevoerd en een datapakket verzonden.

Om het stroomverbruik verder te minimaliseren, worden de SHT31-D en RF Link Transmitter gevoed via een digitale I/O-poortpin op de ATtiny85 die als uitgang is geconfigureerd. De stroom wordt ingeschakeld wanneer de I/O-pin hoog wordt aangedreven (1) en wordt verwijderd wanneer de I/O-pin laag wordt aangedreven (0). Via software wordt deze randapparatuur slechts om de 10 minuten gedurende 1 - 2 seconden van stroom voorzien terwijl er metingen worden verricht en verzonden. Raadpleeg 434-MHz Wireless Remote Software voor een beschrijving van de bijbehorende software.

Het enige andere onderdeel dat in de 434-MHz draadloze afstandsbediening wordt gebruikt, is een weerstand van 10K ohm die wordt gebruikt om de reset-pin op de ATtiny85 omhoog te trekken.

Een vroeg ontwerp gebruikte een resistieve spanningsdeler over de batterij om een ADC-pin op de ATTINY85 in staat te stellen de batterijspanning te meten. Hoewel klein, legde deze spanningsdeler een constante belasting op de batterij. Sommige onderzoeken hebben een truc opgeleverd die de interne ATtiny85-referentiespanning van 1,1 V bandbreedte gebruikt om Vcc (batterijspanning) te meten. Door de ADC-referentiespanning in te stellen op Vcc en de interne 1,1V-referentiespanning te meten, is het mogelijk om Vcc op te lossen. De interne ATtiny85-referentiespanning van 1,1 V is constant zolang Vcc > 3V. Raadpleeg 434-MHz Wireless Remote Software voor een beschrijving van de bijbehorende software.

De communicatie tussen de ATtiny85 en SHT31-D verloopt via de I2C-bus. Het Adafruit SHT31-D breakout board bevat pull-up weerstanden voor de I2C bus.

Communicatie tussen de ATtiny85 en de RF Link Transmitter vindt plaats via een digitale I/O-pin die als uitgang is geconfigureerd. De RadioHead Packet Radio-bibliotheek RH_ASK wordt gebruikt om de RF-linkzender via deze digitale I/O-pin aan-uit te toetsen (OOK / ASK).

Stap 2: 434-MHz draadloze externe hardware

434-MHz draadloze externe hardware
434-MHz draadloze externe hardware
434-MHz draadloze externe hardware
434-MHz draadloze externe hardware

Onderdelen lijst:

1 x Adafruit broodplank 1/4 formaat, Digikey PN 1528-1101-ND

1 x batterijhouder 3 x AA-cellen, Digikey PN BC3AAW-ND

1 x Adafruit Sensiron SHT31-D Breakout Board, Digikey PN 1528-1540-ND

1 x Sparkfun RF-linkzender (434-MHz), Digikey PN 1568-1175-ND

1 x ATtiny85-microcontroller, Digikey PN ATTINY85-20PU-ND

1 x 8-pins DIP-aansluiting, Digikey PN AE10011-ND

1 x 10K ohm, 1/8W weerstand, Digikey PN CF18JT10K0CT-ND

6,75 / 17cm lengte van 18AWG geëmailleerde koperdraad

1 x stuk dubbelzijdige schuimtape

18 /45 cm draadwikkeldraad

Er wordt een socket gebruikt voor de ATtiny85 omdat in-circuit programmering niet wordt ondersteund.

Het SHT31-D breakout-bord, de RF-linkzender, de 8-pins DIP-aansluiting en de antennedraad zijn op het breadboard gesoldeerd zoals weergegeven in de bovenstaande foto. Verwijder het email van 1/4 van de 18AWG-antennedraad voordat u op het breadboard soldeert.

De weerstand van 10K ohm is op het breadboard gesoldeerd tussen pin 1 en 8 van de 8-pins DIP-aansluiting.

De draadwikkeldraad wordt aan de achterkant van het breadboard gesoldeerd om de verbindingen tussen componenten te maken in overeenstemming met het draadloze afstandsbedieningsschema dat in de vorige stap is getoond.

De positieve en negatieve draden van de batterijhouder zijn gesoldeerd aan respectievelijk een set "+" en "-" bussen op het breadboard.

434-MHz Wireless Remote is getest met de Wireless Bridge en LoRa IOT Gateway. De 434-MHz draadloze afstandsbediening verzendt onmiddellijk een pakket telkens wanneer de batterijen worden geplaatst, en daarna elke ~10 minuten. Na ontvangst van een draadloos pakket van de 434 MHz-sensorlaag, knippert de groene LED op de Wireless Bridge gedurende ~0,5s. De stationsnaam, temperatuur en vochtigheid moeten worden weergegeven door LoRa IOT Gateway als het 434-MHz Wireless Remote-stationnummer is ingevoerd in de gateway.

Zodra de draadloze afstandsbediening in orde is getest met een geprogrammeerde ATtiny85, wordt een stuk dubbelzijdig schuimtape, op dezelfde maat gesneden als het breadboard, gebruikt om het voltooide breadboard aan de batterijhouder te bevestigen.

Stap 3: 434-MHz draadloze afstandsbedieningssoftware

434-MHz draadloze afstandsbedieningssoftware
434-MHz draadloze afstandsbedieningssoftware
434-MHz draadloze afstandsbedieningssoftware
434-MHz draadloze afstandsbedieningssoftware

De 434-MHz Wireless Remote-software is bij deze stap gevoegd en is goed becommentarieerd.

Ik heb de ATtiny85-microcontrollers geprogrammeerd met behulp van een Sparkfun Tiny AVR-programmeur en de Arduino IDE. Sparkfun heeft een uitgebreide tutorial over het instellen van drivers & etc. en hoe je de programmeur aan het werk krijgt met de Arduino IDE.

Ik heb een ZIF (Zero Insertion Force) socket toegevoegd aan de Tiny AVR Programmer om het gemakkelijk te maken om chips toe te voegen aan en te verwijderen uit de programmer.

Stap 4: Wireless Bridge-hardware

Draadloze brughardware
Draadloze brughardware
Draadloze brughardware
Draadloze brughardware
Draadloze brughardware
Draadloze brughardware
Draadloze brughardware
Draadloze brughardware

Onderdelen lijst:

1 x Arduino Uno R3, Digikey PN 1050-1024-ND

1 x Adafruit Proto Shield Arduino Stack V. R3, Digikey PN 1528-1207-ND

1 x Adafruit RFM9W LoRa radiozendontvangerkaart (915-MHz), Digikey PN 1528-1667-ND

1 x Sparkfun RF Link-ontvanger (434-MHz), Digikey PN 1568-1173-ND

1 x 8-pins DIP-aansluiting, Digikey PN AE10011-ND

6,75 / 17cm lengte van 18AWG geëmailleerde koperdraad

3,25 / 8,5 cm lengte van 18AWG geëmailleerde koperdraad

24 /61 cm draadwikkeldraad

1 x USB-kabel A / MicroB, 3 ft, Adafruit PID 592

1 x 5V 1A USB-poort voeding, Adafruit PID 501

Monteer het prototype schild volgens de instructies op Adafruit.com.

Monteer de RFM95W LoRa-transceiverkaart volgens de instructies op Adafruit.com. De 18AWG-draad met een lengte van 3,25" / 8,5 cm wordt gebruikt voor de antenne en wordt direct op het zendontvangerbord gesoldeerd nadat 1/4" glazuur van de draad is verwijderd.

Snijd de 8-pins DIP-socket voorzichtig in de lengte doormidden om twee sets 4-pins SIP-sockets te maken.

Soldeer de twee 4-pins SIP-aansluitingen aan het prototype-schild zoals afgebeeld. Deze worden gebruikt om de RF Link-ontvanger aan te sluiten, dus zorg ervoor dat ze in de juiste gaten zitten om overeen te komen met de RF Link-zender voordat u gaat solderen.

Soldeer het RFM9W LoRa-transceiverbord aan het prototype-schild zoals afgebeeld.

De volgende verbindingen worden gemaakt tussen de Arduino Uno en het RFM9W-zendontvangerbord met behulp van draadwikkeldraad aan de bovenzijde van het prototypebord:

RFM9W G0 Arduino Digital I/O Pin 2, RadioHead-bibliotheek gebruikt Interrupt 0 op deze pin

RFM9W SCK Arduino ICSP-header, pin 3

RFM9W MISO Arduino ICSP-header, pin 1

RFM9W MOSI Arduino ICSP-header, pin 4

RFM9W CS Arduino digitale I/O-pin 8

RFM9W RST Arduino digitale I/O-pin 9

Aan de onderzijde van het prototyping board worden de volgende aansluitingen gemaakt:

RFM9W VIN Prototyping bord 5V bus

RFM9W GND Prototyping board ground (GND) bus

RF Link Rx Pin 1 (GND) Prototyping board massa (GND) bus

RF Link Rx Pin 2 (Data Out) Arduino Digitale I/O Pin 6

RF Link Rx Pin 2 (Vcc) Prototyping bord 5V bus

Proto Board Groene LED Arduino Digitale I/O Pin 7

Pin-informatie voor de RF-link-ontvanger is beschikbaar op www.sparkfun.com.

Strip het email van 1/4' van de 6,75 lengte van 18AWG draad en steek het in het prototyping board gat direct naast RF Link Rx Pin 8 (Antenne). Eenmaal in het gat gestoken, buig het gestripte uiteinde om zodat het contact met RF Link Rx Pin 8 en soldeer deze op zijn plaats.

Programmeer de Arduino Uno met de schets in de volgende stap. Bij reset of opstarten, knippert de groene LED tweemaal gedurende 0,5 s. Bij ontvangst van een draadloos pakket van de 434 MHz-sensorlaag, knippert de groene LED gedurende ~0,5s.

Stap 5: Wireless Bridge-software

De Wireless Bridge-software is bij deze stap gevoegd en is goed becommentarieerd.

Aanbevolen: