Zelfbouw sensor met Zigbee en Arduino

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • mynewacc
  • Registratie: April 2010
  • Laatst online: 15-09 20:59
Gegroet medetweakers! Na veel denk- en zoekwerk kom ik niet verder in deze uitdaging, dus hopelijk heeft iemand hier ervaring mee en kunnen we de weg wat gladstrijken voor toekomstige tweakers.

Wat is het probleem?
Hoewel er genoeg documentatie en voorbeelden beschikbaar zijn voor het bouwen van een ESP8266 smart home sensor, is het WiFi protocol vrij energie-intensief en zal een sensor niet lang draaien op batterijen. Tegelijkertijd is het Zigbee protocol veel zuiniger en daardoor geschikter om te gebruiken om de data van een sensor te verzenden vanaf een plek waar geen netspanning beschikbaar is. Echter is er zo goed als geen documentatie beschikbaar over hoe je Zigbee gebruikt in combinatie met Arduino.

Wat is de situatie?
Mijn smart home bestaat uit de volgende componenten:
  • Een Raspberry Pi met daarop (1) Home Assistant, en (2) een Conbee II stick die dient als controller van een Zigbee netwerk. Op deze stick draait standaard een Phoscon app.
  • Een aantal kant-en-klare Zigbee sensoren. Deze zijn gekoppeld met de Conbee II stick via de Phoscon interface, en vervolgens beschikbaar in Home Assistant.
  • Een aantal zelfgemaakte ESP8266 sensoren aan netspanning.
  • Overige componenten die nu niet relevant zijn.
Hieraan wil ik een afstandssensor toevoegen die in een 3D-geprint kastje in de badkamer wordt geplaatst, en gaat registreren op welke plaats een astma-pufje staat: links voor 's ochtends, rechts voor 's avonds. Zo kan worden bijgehouden of het pufje is ingenomen en of het correct is teruggezet. Hier is geen netspanning aanwezig en de batterijen moeten toch wel een jaartje meegaan.

Oplossingsrichtingen
De volgende oplossingsrichtingen heb ik bedacht:
  • Arduino Nano 33 BLE. Deze Arduino bevat een chip van het type nRF52840 die het Zigbee protocol ondersteunt. Echter lijken er geen Arduino libraries beschikbaar om die Zigbee functionaliteit daadwerkelijk te benutten. Wel kwam tegen dat dit via de NRF5 SDK kan, maar hiervoor moet je de Arduino bootloader overschrijven en daar ben ik niet comfortabel genoeg mee.
  • Normale Arduino Nano i.c.m. CC2530 UART. De CC2530 UART is een module die ik op de Arduino Nano aansluit om via de UART serial connection over het Zigbee protocol te verzenden/ontvangen. In mijn opzet is de CC2530 module aangesloten op twee poorten van de Arduino Nano, zeg D2 en D3, om zo via SoftwareSerial de sensordata over Zigbee te verzenden. Hier loop ik vast bij het pairen van de CC2530 module met de Conbee II stick in mijn Raspberry Pi. Het lijkt erop dat de Conbee II stick alleen erkende sensoren ondersteunt, en dus geen zelfbouw-sensoren. Daardoor krijg ik de CC2530 module niet in het bestaande Zigbee netwerk opgenomen.
  • CC2530 by proxy. Er is wel documentatie over hoe je data van de ene CC2530 module naar de andere verstuurt. Op eerste gezicht lijkt dit met de Xbee-Arduino library te lukken, al heb ik het nog niet getest. Ik zou de sensordata vanuit de badkamer via UART naar de eerste CC2530 module kunnen sturen, en laten consumeren door een tweede CC2530 module die ik aan één van mijn ESP8266 sensoren met netspanning toevoeg, waarna de data via WiFi naar de Raspberry Pi wordt verzonden. Het nadeel hiervan is dat mijn sensor nu afhankelijk is van een tweede sensor, en niet beschikbaar is wanneer deze tweede sensor uitvalt of in onderhoud is.
Stiekem hoop ik dat iemand hier al eens een zelfbouw Zigbee sensor heeft gemaakt, het liefst in combinatie met Arduino. Als jullie suggesties hebben of dit probleem herkennen: van harte welkom!

Acties:
  • +1 Henk 'm!

  • _ferry_
  • Registratie: Januari 2002
  • Niet online

_ferry_

Moderator Tweaking

Nipple Tweaker

Even een ander pad: is het niet makkelijker om bijvoorbeeld eenkant en klare zigbee schakelaar te nemen (tradfri kost je 8€), en daar losse schakelaars of fotodiodes op aan te sluiten die registreren of de puffer is gepakt. Dan kun je de tijd registeren, of eventueel die positie, en via je domotica de rest regelen.
(Indien tijd sinds laatste puf meer dan 12 uur is, verstuur melding. Of nog leuker/duidelijker, een lampje aan doen in de ochtend/avond die pas weer uit gaat als de puffer is opgepakt)

Acties:
  • 0 Henk 'm!

  • mynewacc
  • Registratie: April 2010
  • Laatst online: 15-09 20:59
_ferry_ schreef op donderdag 21 april 2022 @ 08:31:
Even een ander pad: is het niet makkelijker om bijvoorbeeld eenkant en klare zigbee schakelaar te nemen (tradfri kost je 8€), en daar losse schakelaars of fotodiodes op aan te sluiten die registreren of de puffer is gepakt. (...)
Slim idee! In het verlengde daarvan zou ik ook een motion sensor kunnen gebruiken. In beide gevallen inderdaad de rest afhandelen in de domotica.

Het is dan wel jammer dat het dan niet is gelukt om een sensor "from scratch" te maken die op Zigbee werkt. Ik had gehoopt om deze relatief simpele use-case te kunnen tackelen, om zo later ook Zigbee-based gas en motion sensoren te maken. Nu draai ik die nog vooral op ESP8266 (WiFi), maar het is veel logischer om binnenshuis een mesh netwerk te gebruiken voor zulke lage volumes aan data.

In ieder geval bedankt voor de tip - ik ga eens op zoek welke schakelaars makkelijk te demonteren zijn!

Acties:
  • +1 Henk 'm!

  • _ferry_
  • Registratie: Januari 2002
  • Niet online

_ferry_

Moderator Tweaking

Nipple Tweaker

Afaik komen er wel ESP modules met zigbee aan, dan is het wel heel makkelijk en leuk om dingen via zigbee te knutselen.

moet het alleen nog eens stabiel blijven draaien in mijn HA omgeving

Acties:
  • 0 Henk 'm!

  • kroonen
  • Registratie: Augustus 2008
  • Laatst online: 25-09 07:51
Je kunt natuurlijk ook zigbee2tasmota gebruiken, dan kun je een esp8266 of esp32 gebruiken icm bijvoorbeeld een cc2530.

https://tasmota.github.io/docs/Zigbee/#device-information

https://zigbee.blakadder.com/zigbee2tasmota.html

Acties:
  • 0 Henk 'm!

  • Rolandp
  • Registratie: Maart 2011
  • Laatst online: 25-08 09:59
Toevallig ben ik zelf ook een soortgelijk project van plan (Zigbee -> HA) en heb wat naslagwerk gevonden waar jij misschien ook wat aan hebt:

Tasmota

Zigbee to MQTT gateway

MQTT automated blinds

Acties:
  • 0 Henk 'm!

  • Rickbhs
  • Registratie: December 2012
  • Laatst online: 25-09 11:24
Ik heb er ook al een keer naar gekeken met als de start een adafruit feather nrf52840
helaas kwam ik ook tot de conclusie dat er nog geen Arduino libraries er voor zijn.
kwam wel tegen dat het met een Segger Embedded Studio zou moeten kunnen
https://github.com/larrytsai1980/nRF52840-zigbee-color-light-bulb

Acties:
  • 0 Henk 'm!

  • gastje01
  • Registratie: Oktober 2005
  • Laatst online: 25-09 12:37
_ferry_ schreef op donderdag 21 april 2022 @ 17:18:
Afaik komen er wel ESP modules met zigbee aan, dan is het wel heel makkelijk en leuk om dingen via zigbee te knutselen.

moet het alleen nog eens stabiel blijven draaien in mijn HA omgeving
Nu heb je m’n aandacht O-)

Waar zoek ik op al het zo ver is?

Acties:
  • 0 Henk 'm!

  • Rickbhs
  • Registratie: December 2012
  • Laatst online: 25-09 11:24
Heeft misschien iemand al wat geprobeerd met een Lilygo T-Zigbee? Op de GitHub hebben wat er op lijkt nog wel een voorbeeld. https://github.com/Xinyua...main/examples/zigbee2mqtt

Acties:
  • +1 Henk 'm!

  • jan-gerard
  • Registratie: Oktober 2006
  • Laatst online: 17-05-2024
Ik heb een ZYZB010 genomen (Aliexpress) en op https://zigbee.blakadder.com/eWeLight_ZYZB010.html staat hoe je die aansluit (was even zoeken naar de documentatie van de fabrikant, maar ik heb het op de Blackadder site toegevoegd). Die kan je vervolgens met een Arduino verbinden, en zo maximaal 5 binaire signalen doorsturen.
In principe doet de module zich voor als 5 lichtschakelaars (als je de juiste koopt), die ofwel vanuit bijvoorbeeld Home Assistant aan te sturen zijn, of die je door de Arduino kan laten schakelen en zo door Home Assistant kan laten verwerken. Ik heb een custom aanwezigheidssensor gebouwd die wakker wordt met een PIR sensor, en daarna met een echo-distance sensor kijkt of er iemand in de ruimte verblijft. Minimaal stroomverbruik, want de Arduino laat ik in Deep Sleep tot de PIR een signaal geeft, en dan gebruik ik de afstandssensor, tot de ruimte weer verlaten is. Aanwezigheid en afwezigheid geef ik door aan HA door de dummy Zigbee schakelaar lokaal aan/uit te zitten.
De truc voor het schakelen van de "lichtschakelaar" is door de Arduino eerst e laten kijken naar de status van de uitgang, en als die moet wijzigen, een puls op de ingang (150 ms) te zetten. Je kan namelijk niet direct de waarde van de ingang van de Zigbee module door laten geven, het is omschakelen met een puls, zoals ook een terugverende lichtknop doet.
Pagina: 1