Dit keer is gekozen om de sensorkast te voorzien van een Raspberry Pi Zero W in plaats van de NodeMCU of andere Arduino variant. De reden om nu deze Raspberry Pi in te zetten? Eigenlijk was ik het wel een beetje zat om steeds maar weer tegen de beperkingen en instabiliteit van Arduino varianten aan te lopen. En de Raspberry Pi is wat dat betreft een volwaardig computersysteem met geheugenmanagement, multitasking en dat soort zaken. Er draait immers een volwaardig Linux operating systeem op, een verademing kan ik wel stellen.
Hierbij een foto van het sensorkastje met daarin de Raspberry Pi Zero W, linksonder de PMSA003 fijnstofsensor, linksboven de BME280 voor luchtdruk, relatieve luchtvochtigheid en temperatuur (in het kastje) en op het kastje ligt een DS18B20 welke de omgevingstemperatuur (buiten het kastje) gaat meten.
Redis voor data opslag
De SD-kaart die voor de Raspberry Pi nodig is en waar het OS inclusief de benodigde software op wordt geïnstalleerd (zoals NodeJS bijvoorbeeld) bevat voldoende ruimte die gebruikt kan worden voor logging maar ook voor opslag van de sensor data. Ik heb gekozen om daarvoor Redis in te zetten. Een prima lichtgewicht databasesysteem, perfect voor deze configuratie. Als er even geen Wifi verbinding is kan het meten gewoon doorgaan en worden de meetdata opgeslagen. Als de Wifi verbinding weer tot stand komt gaan de meetwaarden alsnog naar de server. Voor het uitlezen van de sensordata en voor het versturen naar de server draaien twee aparte Nodejs services op de Raspberry Pi. Wie weet komt daar nog een Nodejs service bij om een leuke webpagina met grafieken in de browser te vertonen. Het zou zo maar kunnen.