Overvåkning av 10 hundehus med ESP8266

Overvåkning av 10 hundehus med ESP8266

På fritiden driver familen min med hundekjøring og vi har 10 alaska huskyer på gården vår. Jeg tenkte derfor det var på tide å lage overvåkning av alle hundehusene slik at vi kan se hvordan hundene har det gjennom året. Er det for varmt, kaldt eller akkurat passe? Dette skal vi nå finne ut av.

NodeMCU eller barebone ESP8266

I første omgang testet jeg NodeMCU for å se om denne kjekke dingsen kunne brukes til formålet, men det kunne den ikke. Strømforbruket var altfor høyt i deepsleep (ca 10 mA) og jeg fikk bare batteriene til å vare i ca 10 dager. Det blir litt mye styr å skifte batterier hver tiende dag i 10 hundehus, så dette slo jeg raskt fra meg.

Komplett med spenningsomformer og usb-adapter.

NodeMCU Komplett med spenningsomformer og usb-adapter.

Jeg bestilte så noen barebone ESP8266 og satte igang med testing av disse. Her viste det seg med engang at strømforbruket i deepsleep bare var 20 μA. Dette bør fungere. Teoretisk sett så bør jeg klare å kjøre sensorene i 60 dager på 2 vanlige AA-batterier dersom jeg sender data hvert 5 minutt og med dagens kodebase.

Her er det ingen unødvendige spenningsomformere, eller usb-adaptre som trekker strøm i tide og utide.

Barebone ESP8266 Her er det ingen unødvendige spenningsomformere, eller usb-adaptre som trekker strøm i tide og utide.

En typisk syklus tar ca 7 sek og er fordelt slik:

  • 1 sek: Innhenting av data
  • 5-6 sek: Oppkobling mot wifi og motta ip-adresse.
  • 0,3 sek: Sende data til mqtt.

Å hente data fra sensorene går veldig raskt, men det tar tid å koble seg opp mot wifi og få en ip-adresse.

Strømforbruk. Å hente data fra sensorene går veldig raskt, men det tar tid å koble seg opp mot wifi og få en ip-adresse.

Lodding og sammenskruing

Alt dette kommer i små deler og må loddes sammen, så det krever litt loddekunnskap for å få det til.

ESP8266, adapterplater og pins klare til montering.

Alle delene. ESP8266, adapterplater og pins klare til montering.

ESP8266 klar til å bli loddet fast i adapterplaten.

Adapterplate. ESP8266 klar til å bli loddet fast i adapterplaten.

Alle ESP8266ene er loddet fast i adapterplatene og nå er de klare til å få påmontert pinner.

Nesten klare. Alle ESP8266ene er loddet fast i adapterplatene og nå er de klare til å få påmontert pinner.

Jeg har ikke noen PCBer til disse sensorene mine ennå, så jeg gikk derfor igang med å lage de ledningene som trengs.

Her er strømkoblingene med en 10kΩ motstand til pull-up og pull-down.

Strømkoblinger. Her er strømkoblingene med en 10kΩ motstand til pull-up og pull-down.

Hovedsensoren BME280 må også loddes, men dette er fort gjort. Det er bare å lodde på pinnene og så plugge på dupont-ledninger.

Sensor for å måle temperatur, luftfuktighet og lufttrykk.

BME280. Sensor for å måle temperatur, luftfuktighet og lufttrykk.

Siste koblinger er nå på plass og boksen er klare til test.

Siste kontroll før boksene lukkes og settes ut i hundehusene.

Test. Siste kontroll før boksene lukkes og settes ut i hundehusene.

Boksene har nå ligget ute på trappa til test i 7 dager for å se at de tåler temperaturen og fuktigheten.

Miljøtest. Boksene har nå ligget ute på trappa til test i 7 dager for å se at de tåler temperaturen og fuktigheten.

Her kan du lese mer om hvordan jeg oppdaterer alle IoT-enhetene mine

Presentasjon av data

Alle hundehusene sender data over til mqtt som igjen sender dette over til AWS IoT. Her er det satt opp regler for varsling av batteritilstand og temperatur. I tillegg lagres all data i Elasticsearch slik at jeg kan bruke dette til maskinlæring senere.

Hvert av hundehusene har en slik graf som viser historikken for de 2 siste dagene.

Nikita sin senor i test på trappa. Hvert av hundehusene har en slik graf som viser historikken for de 2 siste dagene.

Nyttige linker