jan 132018
 

Time for part 2 of the post about getting the “cheap” Chinese ESP32 + SX1276 board connected to The Things Network.

The picture in this and the other post shows the board with a DHT11 temperature and humidity sensor already connected. I stopped using the small case that was on sale, because with the pinheaders soldered to the board and dupont cables connected to it, it no longer fitted.

Also, I am no longer using the small antenna that was provided with the board. I seem to have accidentally twisted the cable that you use to connect the SMA socket to the U.FL IPX connector on the board. The only suitable antenna I had available, was one that was provided as part of the LoPy kickstarter kits (which apparently is different from the antenna sets they sell now). The antenna I got in the kit is a RP-SMA antenna meaning the cable is also RP-SMA. Long story short: I can connect the LoPy cable + LoPy antenna to the board, but the the provided small antenna won’t fit on the LoPy cable. With the LoPy antenna combi I’ve been able to get about 500 meters range outdoors, combined with the single channel LoPy nanogateway. Which is absolutely not bad at all, also given that I’m fixed not to just one channel there but also to SPF7. I’ll do further comparisons once the replacement cable has arrived.

So, the DHT11 sensor. It helped that I managed to figure out that the provided pinout chart was incorrect. Once I know to which actual ports the DHT11 was connected, it was a matter of integrating the library and code into the existing code.  To keep the number of things that could go wrong manageable, I first tested jut the DHT11 code. I provided an example here. If that doesn’t work, don’t bother with the connection to TTN.

Lees verder….

Deel dit bericht:
jan 132018
 

The previous post about the LoRa board I bought via Aliexpress, I did in Dutch. I should have know that, like often happens with the more technical posts on my blog, the majority of people interested in it are not from the Netherlands.
So, this follow-up post about connecting a sensor to it, I’ll do in English again.

I will do the quick summary of the previous post first, so you’ll have an all-in-one topic:

This board was the first one I bought of Aliexpress. It was cheap, €13,9 incl. shipping for ESP32 + SX1276 + 0.96 inch OLED. ESP32 means WiFi (like you have with the ESP8266) *and* Bluetooth build in. If you compare that to a LoPy (about 50 euros) or a Marvin (about 85 euros), that is cheap. Problem though with Aliexpress is that you don’t always get a nice manual with the device.
Luckely there is a very active forum at The Things Network, and they have a topic specific for this combination of ESP32 and SX1276 chip. A number of people, much smarter than me, took the time there to figure out how to setup the board. All I had to do is go through their posts.

Lees verder….

Deel dit bericht:
jan 102018
 

Tot voor kort had ik 2 verschillende LoraWAN nodes in huis: een tweetal LoPy‘s, waarvan er eentje dienst doet als single channel gateway en een Marvin. Beide zijn niet bijzonder goedkoop, een LoPy met ontwikkelbordje en antenne kost zo’n 50 euro excl. verzendkosten. Een Marvin kost bijna 85 euro excl. verzendkosten. Niet echt sensoren dus die je ergens “kwijt” wilt raken. Terwijl een LoraWAN sensor toch juist vaak op een plek moet komen te hangen die iets verder van alles weg is (zoals sensoren langs een weg die fijnstof meten of zo).

Je kunt zelf een sensor bouwen door een chip te bestellen voor de communicatie, een ESP8266 te kopen, antenne etc en dan solderen. Maar dat kost tijd en extra werk.  De “868MHz/915MHz SX1276 ESP32 LoRa 0.96 Inch Blue OLED Display Bluetooth WIFI Lora Kit 32 Module IOT Development Board for Arduino” zoals de listing op AliExpress voluit luidt, is een voorbeeld van een tussenweg: voor €13,90 incl. verzendkosten heb je een ESP32 + SX1276 chip op een ontwikkelbord. Als je het LCD-scherm dat er dan op zit niet nodig hebt, kun je nog een paar euro besparen en €10,29 betalen incl. verzendkosten. Het is niet mijn eerste node op basis van een ESP32, ook de LoPy maakt daar gebruik van, maar het was wel de eerste die ik via AliExpress bestelde. En ik wist dat het daar bestellen een keerzijde heeft: documentatie is niet altijd voorhanden.

Gelukkig is er ook een heel actief forum bij The Things Network waar een heel topic specifiek voor deze combinatie van ESP32 en SX1276 chip (inclusief het OLED schermpje) ingericht is. En daar hadden sinds oktober 2017 al een paar slimme mensen alles uitgezocht wat ik nodig had om ook mijn exemplaar aan de praat te krijgen. En omdat het een proces is dat ik over een paar maanden zeker niet meer uit mijn hoofd weet te herhalen, documenteer ik het hier weer even.

Lees verder….

Deel dit bericht:
jan 082018
 

Toen ik een week geleden schreef over het automatisch opslaan van sensordata in Google Sheets gaf ik al aan dat dat zeker niet een optimale oplossing was. Inmiddels wordt dat ook meer dan duidelijk omdat de spreadsheet zich blijft vullen en het opbouwen van de grafieken duidelijk meer tijd kost.

In dat bericht verwees ik al naar InfluxDB, een database die specifiek ontwikkeld is voor het opslaan van tijdreeksen, data dus die gekoppeld is aan een datum/tijd. Het is dan ook niet zo vreemd dat InfluxDB populair is als database om de data die vanuit de verschillende sensoren die je aan OpenHAB koppelt op te slaan. OpenHAB is een gratis tool/omgeving waarmee je zelf je huis kunt automatiseren. Je kunt er lampen of schakelaars mee aansluiten, de data van sensoren zoals thermometers verzamelen en weergeven, je kunt acties koppelen aan die sensoren (bv zet de ventilator op de badkamer automatisch aan als de luchtvochtigheid boven de 50% komt) etc.

Ik gebruik OpenHAB al een tijd en hoewel er ook hier discussies zijn over wat de beste omgeving is (er zijn meer gratis alternatieven op dit gebied), werkt het voor mij en heb ik geen reden om over te stappen. Wat ik echter wel wil doen is overstappen van mijn huidige 1.8 versie naar de recente 2.2 versie. Dat is op papier een eenvoudige upgrade, ik had vooral al begrepen dat het in praktijk niet helemaal zo zou zijn. Daarom wilde ik dat voorzichtig aanpakken. Het voordeel van het gebruik van OpenHAB op een Raspberry Pi is dat het niet veel geld kost om er een tweede Raspberry Pi naast te zetten met de nieuwe versie (zeker als je er al een paar in huis hebt).

Een tweede ontwerpkeuze waar ik veel voordeel van gehad heb is dat ik MQTT gebruik voor zo ongeveer alles wat met sensordata te maken heeft en ook voor het aansturen van schakelaren in huis. De Mosquitto-server (een gratis server voor MQTT) die ik daarvoor gebruik staat op dezelfde server als OpenHAB. Dat zou een probleem kunnen zijn, alle sensoren sturen namelijk hun data naar dat IP-adres, maar het is gelukkig heel eenvoudig om de Mosquitto-server te vertellen dat alle ontvangen data ook doorgestuurd moet worden naar de Mosquitto-server die op de “nieuwe” (test-)server met OpenHAB 2.2 staat. Zo kon ik de bestaande productieserver helemaal met rust laten (op het toevoegen van die ene doorverwijzing in het mosquitto.conf bestand (zie ook de schermafdruk hiernaast voor de benodigde aanpassing, voor het IP-adres gebruik je het eigen IP-adres van de nieuwe server, de naam van de connection is vrij te kiezen). Daarna moest ik de Mosquitto-server even herstarten met systemctl status mosquitto.service -l

Goed, terug naar de tijdseriedata en InfluxDB. Er zijn tutorials beschikbaar voor het installeren van InfluxDB op de Raspberry Pi (bv hier). Maar omdat het mij om de combinatie InfluxDB, Mosquitto, OpenHAB én Grafana ging, heb ik gekozen voor openHABian. Daar heb je namelijk al die tools (inclusief o.a. Node-RED, ook heel handig in combinatie met sensoren) ter beschikking in één download. Er is wat discussie over de vraag of je dat wel allemaal op één Raspberry Pi moet willen installeren. Dat zal waarschijnlijk een beetje afhangen van het gebruik. Ik heb het geheel nu draaien op 1 Raspberry Pi 2 en het werkt voor nu voldoende snel. Ik moet wel nog even uitzoeken hoe snel de database groeit, maar met een 16GB micro-SD kaartje is er nog wel wat ruimte over voor groei.
Lees verder….

Deel dit bericht:
jan 032018
 

“Papa, hoe werkt deze dan eigenlijk?”. Dat was de vraag die ik kreeg toen mijn oudste dochter het zakje zag liggen met een van de bestellingen van AliExpress. Eerder vandaag hadden we namelijk samen naar deze blogpost gekeken toen het ging over de verschillende manieren waarop de fijnstofmeters verbinding maken met de ESP8266. Toen ging het over UART, SPI en I2C (als jou dat niets zegt, lees dan ook even die blogpost!).

Er waren twee manieren om erachter te komen op welke manier dit kleine LCD verbonden moest worden met een Arduino (of ESP8266): foetelen (!) en op de pagina van de verkoper kijken of naar de tekst bij de pinnen kijken. Dat was gemakkelijk: naast GND en VCC waren er maar 2 pinnen over, dus was het geen SPI, en met SDA en SDL bij de andere twee pinnen was het duidelijk: het was een I2C verbinding.

“Maar hoe zorg je er dan voor dat er tekst op komt? Moet dat dan pixel voor pixel?”, was de vervolgvraag. Ja, maar gelukkig ook weer niet. Daar hebben mensen namelijk “bibliotheken” voor gemaakt die een groot deel van de complexiteit verbergen. “Laten we het gewoon een uitproberen”, zei ik. Nu was de pagina van de verkoper toch nog handig, want we moesten nog een paar dingen meer weten, bijvoorbeeld of hij 3V of 5V wilde hebben. Als de verkoper die info niet online had staan, dan was even op de achterkant van het LCD scherm kijken ook handig. Daar stond namelijk OLED-091, en als je dat in Google invoert krijg je een zee van informatie. Het LCD-scherm kan zowel op 3V als op 5V en heeft een SSD1306 chip. Adafruit heeft daar een library voor gemaakt voor de Arduino en ook voor de ESP8266  is er eentje te vinden. Eitje dus om dit aan de praat te krijgen. Of zo dachten we.

Het aansluiten van de kabels, het installeren van de bibliotheken, het openen en draaien van een van de voorbeelden, dat ging inderdaad zonder problemen. Maar toen kwam de vraag: “Kunnen we ook ons eigen plaatje laten bewegen??”. Ehm, ja, maar dat duurde uiteindelijk een uur voordat het werkte. Daarom ook een blogpost om vast te leggen hoe we het uiteindelijk voor elkaar gekregen.

Lees verder….

Deel dit bericht:
jan 012018
 

Als je dit weblog regelmatig bezoekt, dan weet je dat we afgelopen week druk bezig zijn geweest met het last-minute deelnemen aan een experiment dat het RIVM, samen met anderen nu voor het tweede achtereenvolgende jaar uitgevoerd hebben: het meten van de hoeveelheden fijnstof tijdens de jaarwisseling.

Daarbij wordt gebruik gemaakt van relatief goedkope sensoren die door particulieren ook zelf opgehangen kunnen worden. Dat brengt uiteraard veel uitdagingen met zich mee, zo hebben wij zelf ook gemerkt toen we wilden deelnemen. Naar aanleiding van de aankondiging heb ik al een tweetal blogposts geschreven naar aanleiding van informatie die ik sindsdien gevonden had: blogpost #1 en blogpost #2. Zoals zo veel dingen lijkt het eenvoudig, maar komt er toch heel wat meer bij kijken als je het goed wilt doen.

Omdat het voor ons onmogelijk was om een Nova SDS011 sensor tijdig in huis te krijgen, zijn we aan de slag gegaan met een Shinyei PPD 42NJ samen met een BME280, een super kleine geïntegreerde sensor voor zowel luchtvochtigheid, temperatuur, luchtdruk en hoogte. Dat geheel werd in een PVC T-stuk bevestigd en achter het Frans balkon van ons huis opgehangen. De gebruikte code was een combinatie van de code van het RIVM van vorig jaar (voor de Shinyei) met de code van dit jaar (voor de SDS011 + BME280). Ik heb de code nog iets verder aangepast op basis van het script waar ik eerder over schreef zodat we ook zelf de ruwe waarden van de sensoren konden volgen. Dat was maar goed ook, want op de officiële site bleef de lijn van de meting bijna vlak:

 Sowieso worden voor de Shinyei sensoren alleen de ruwe PM2.5 metingen doorgegeven die dan op de server omgerekend zouden moeten worden naar µg/m3. Of dat hier helemaal goed gaat weet ik niet, maar omdat onze sensor pas 2 dagen voor de jaarwisseling online kwam ontbrak het aan de mogelijkheid hier nog echt contact over te hebben met het RIVM. Voor de duidelijkheid: vanuit het RIVM werd de afgelopen heel snel, vriendelijk en uitvoerig via de mail gecommuniceerd. Niets dan complimenten daarover!

De stevige piek die je in de afbeelding ziet was toen ik na registratie toch even het script met de omrekening gebruikt had (foei). Maakt niet uit, de grafiek die ik in Google Sheets liet maken (met dat stukje eruit geknipt) laat wél voldoende verschil tussen (ruwe) waarden zien om interessant te zijn.

Lees verder….

Deel dit bericht: