feb 192018
 

In de categorie “grappig” valt de tweet van The ThingsMaastricht. Ook daar werken ze aan het in kaart brengen van het bereik van de opgestelde TTN gateways. Dat doen ze niet lopend, niet met de fiets, niet met de auto. Nee, gewoon met de bus.

Ik neem aan dat een buschauffeur van een van de stadsbussen in Maastricht een tracker met zich mee neemt tijdens de ritten. Kan zonder problemen lijkt me omdat je het apparaatje maar gewoon ergens hoeft neer te leggen en het de chauffeur tijdens de rit verder niet afleidt of zo.

Deel dit bericht:
jan 302018
 

Nee, ik heb geen plannen om Jody Foster na te doen, al was het maar omdat het letterlijk kilometers buiten mijn kennisdomein ligt, maar het is wel grappig hoe sommige zaken schijnbaar gelijktijdig plaats vinden:

Komende week is in Amsterdam de eerste conferentie van The Things Network. Ik ben er niet bij, is me privé wat prijzig, ja, ik zou zaterdag kunnen gaan, dan is het betaalbaar, maakt ook niet uit, ik ben er niet. Maar een van de dingen die ze voor de conferentie geregeld hebben is dat, met dank aan ESA , Space Norway en Norwegian Space Centre, de NORSAT-2 satelliet tijdens de drie dagen van de conferentie, LoRa berichten vanuit de ruimte (ongeveer 600 km hoogte) uit zal zenden. Op het conferentiegebouw zal een ontvanger staan om de tekstberichten te ontvangen en op een scherm weer te geven.

Anderen zouden ook in staat moeten zijn om de berichten te ontvangen, je hebt alleen maar een SX1276 module nodig die je op 169Mhz moet instellen en een antenne die goed werkt rond de 162Mhz frequentie. Nou heb ik een SX1278 module (was eigenlijk een foutje want normaal gesproken heb ik daar niets aan in NL), nog geen antenne voor die frequentie, dus waarschijnlijk gaat het mij niet lukken (ondanks alle vriendelijke uitleg van Jose Marcelino via Twitter). Wie dat ongetwijfeld wel zou kunnen is de amateur astronoom die eigenlijk op zoek was naar de onlangs kwijt geraakte, geheime, Zuma satelliet en die daarbij per ongeluk de IMAGE satelliet terug vond waarvan de Nasa in 2005 geconcludeerd had dat die “dood” (lees: stuk) was (bron).

Nasa heeft inmiddels bevestigd dat het inderdaad de verloren gewaande satelliet is. Maar ze hebben een probleem dat een beetje lijkt op dat van mij: ze hebben (niet meer) de juiste hardware en software. Die is sinds 2005 namelijk dusdanig gewijzigd dat ze niet zomaar meer in staat zijn om de signalen van de satelliet op te vangen en te verwerken. Mooi toch? 🙂

Voor wie de achterliggende technologie wél snapt, is de serie berichten van Scott Tilley, de man die IMAGE terug gevonden heeft, zeker de moeite waard.

Deel dit bericht:
jan 162018
 

OK, hier wordt ik dus enthousiast van, al is het niet eens echt heel veel goedkoper dan de kant en klare oplossing waar ik vorige week mee geëxperimenteerd heb. Het blijkt namelijk mogelijk om een node met sensor voor het LoRaWAN netwerk / The Things Network te bouwen op basis van een ATtiny85!

Dus, gewoon op basis van die microprocessor, die zo’n 80 eurocent kost als je hem uit China laat komen en die we hier tot nu toe gebruikten om LEDs in een kleine kerstboom aan te sturen of papercircuit kerstkaarten te maken. Diezelfde chip kun je gebruiken als de basis van een meetapparaat waarmee je de lokale temperatuur, vochtigheid en luchtdruk tot kilometers ver door kunt geven.

Ok, ok, je hebt nog een paar andere dingen nodig. Bijvoorbeeld de sensor voor die drie waarden, in dit geval een BME280, die kost zo’n 2,5 euro per stuk. En je hebt natuurlijk ook een chip nodig die het LoRa-deel van de communicatie voor zijn rekening neemt. Er wordt hier gebruik gemaakt van een RMF95  en die kost nog steeds nog een euro of 4-5. Betekent dus dat het meetstation (zonder behuizing, bekabeling, batterijhouder etc) nog steeds zo’n 7-8 euro per stuk kost. Dat is maar een paar euro goedkoper dan die kant en klare oplossing die ik kocht.

Maar in de categorie “omdat het kan” en “omdat het cool is om te zien dat zo’n klein ding zoiets indrukwekkends kan” schreeuwt het natuurlijk om een test (sorry, volgende vakantie duurt nog even). De beschrijving hier gaat nu nog uit van het resetten van pin PB5 zodat het een gewone I/O pin wordt (ipv de reset pin), maar dan kun je daarna niet/slecht heel ingewikkeld de ATtiny85 herprogrammeren. Op het forum wordt al gesproken over een oplossing waarbij dat niet langer nodig is.

Bij de beschrijving staat niet hoe lang deze specifieke constructie mee kan op een set batterijen. Ook dat zou een leuke test zijn. Gaat op het verlanglijstje om te bouwen.

Deel dit bericht:
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:
dec 202017
 

Vandaag vindt in Amsterdam bij De Waag Society de workshop plaats ter voorbereiding van de meting van de luchtkwaliteit tijdens de jaarwisseling 2017-2018. Dit doen ze weer samen met het RIVM die een hele site heeft over het samen meten aan luchtkwaliteit. Ze zochten deelnemers in Amsterdam en daar woon ik niet, dus helaas. Op de site van het RIVM (b)lijkt het echter niet alleen om metingen in Amsterdam te gaan, logisch eigenlijk ook natuurlijk. Op die site staat ook dat ze dit jaar met The Things Network (TTN) en LoraWAN aan de slag gaan. Extra interessant natuurlijk.

Dichter bij huis, in Venlo, werken studenten van Fontys bij het Greentechlab aan een experiment voor (o.a.) tijdens de jaarwisseling. Omroep Venlo had er een reportage over (klik even door voor de video). Hier geen uitgebreide pagina, maar ik herken in het filmpje de Marvin van RDM Makerspace, dat betekent in ieder geval dat ze ook met LoraWAN aan de slag gaan. Niet duidelijk is of ze dan KPN gebruiken (en bv een demo-account) of “gewoon” TTN. De standaard bijgeleverd temperatuur en vochtigheidssensor zit er ook aan. Ik kan in het filmpje niet zien welke sensor ze gebruiken. Want daar zit nogal wat variatie in.

Het RIVM heeft er een hele pagina over online staan (en de website bevat nog veel en veel meer info). Het wordt dan al heel snel “technisch” met term en als PM 2.5 en PM 10. De getallen 10 en 2.5 verwijzen naar de afmetingen van deeltjes die gemeten kunnen worden in microns (micrometers). Dan heb je het over klein en nog kleiner. Het RIVM blijkt te meten met PM10, dus deeltjes van 10 micrometer en kleiner. Dat is een beetje balen want de sensoren die ik heb liggen (nog niet getest overigens) meten 2,5 micrometer en kleiner. Dat lijkt dan nauwkeuriger, maar als we het hebben over “fijnstof” dan telt alles van 10 micrometer en kleiner mee.  En dus is het handiger om in diezelfde maat te meten. Overigens, voor fijnstof geldt hoe kleiner de deeltjes hoe slechter en hoe minder van alles hoe beter. Er is geen veilige ondergrens.

Ik heb het RIVM om meer info gemaild. De sensor die zij gebruikten, de Shinyei PPD 42NJ  zou ik deze week nog in huis moeten kunnen hebben. De aansluiten op de Marvin moet relatief gemakkelijk zijn, dan zou het vooral gaan om de vraag hoe ik verbinding maak met de centrale backend van het RIVM om er voor te zorgen dat mijn data uit Deurne ook in hun overzicht/meting opgenomen wordt.  Wordt (hoop ik) vervolgd.

p.s. de kaarten met overzichten van de niveaus fijnstof zijn best verontrustend.

Deel dit bericht:
mei 142017
 

At AliExpress they sell a number of cheap GPS modules that you can use for Arduino. I ordered one (this one) GY-NEO6MV2 for €6,82 incl. free shipping (the seller doesn’t offer free shipping anymore so you might want to shop around a bit) and wanted to try it out on the LoPy. Now, I wanted to say that using it is really easy, it is, but then again there were more than enough bumps in the road to get it to work the way I wanted it. But hey, what is life without some challenges?

First things first: the GPS module is easy to use. It use UART to connect to it. As soon as you have got something that is willing to listen to it, power it (it worked using 3.3V), it start sending you GPS data that you only need to interpret. I soldered 4 header pins to the module, connected the VCC to the 3.3V, GND to GND on the Pyboard, the TX line to “P11” and the RX line to “P12”.

As soon as you connect power to the LoPy, the GPS unit is powered. The red light blinking means that the unit is working and sending data. You just need to listen to it.  The code to do that is available here on GitHub.

To start listening:  com = UART(1,pins=(config.TX, config.RX), baudrate=9600)

To interpret the data coming from the module, I use the MicropyGPS module. It is initialized using my_gps = MicropyGPS().

After that it is a matter of checking if there is any data available, and then feed it character by character to the module:

if com.any():
    my_sentence = com.readline()
    for x in my_sentence:
        my_gps.update(chr(x))

 

Lees verder….

Deel dit bericht:
apr 152017
 

Now that Alex explained everyone how to use MQTT in combination with the LoPy, I thought it was time to show some more advanced uses of MQTT in case you still had no idea why you would bother learning to understand it.
The nice thing about MQTT (MQ Telemetry Transport or Message Queue Telemetry Transport) as a protocol, is that it is not tied to the LoPy or WiPy that Alex used in his example. You can use it in combination with many different devices, tools and applications. For example, in our house, I use a Mosquitto MQTT broker as the central backbone for the home automation. For those that can understand Dutch, see this blogpost I did in 2014, or the one about the lights in my Christmas tree.

MQTT is also supported by The Things Network (TTN) meaning that you can retrieve all the data that your nodes send to TTN using MQTT. This also means you can use MQTT as a way to create a local backup of the data that your nodes send this way.
You can also use it in combination with the KPN LoRaWAN network, but the setup is slightly different. So in this post I am going to focus on TTN, although like before I will be using both the Marvin board and the LoPy board (in combination with Puck.js although that is completely optional of course).

I will be using Node-RED installed on one of my Raspberry Pi devices and I will be using MySQL as the database backend. I will be posting about MySQL versus MongoDB versus InfluxDB one of these days, but on a Raspberry Pi for now this was the quickest and easiest solution.

Let’s dive in:

Lees verder….

Deel dit bericht:
apr 092017
 

I still wasn’t out of “what if…” scenario’s for the devices I had been playing with in relation to The Things Network / LoRaWAN. Because, although I had used the WiFi (and of course LoRA) capabilities of the LoPy a lot, I had not yet played with its BLE (Bluetooth Low Energy) capabilities. For that I needed something else that could use BLE to connect to it. My iPad Mini, the micro:bit, my desktop machine (thanks to the BLE USB adapter), they all could do that. But I wanted to use the Puck-js buttons that I had for that.

The use-case:  If I press the button on the Puck.js (I have two of them, I can press either of them), then the Puck.js connects over bluetooth to the LoPy. After the connection has been made, the Puck.js sends 1) its device-id 2) the measurement of the light sensor of the Puck.js 3) the measurement of the temperature sensor of the Puck.js and 4) the battery voltage of the Puck-js. Once the LoPy has received those 4 values (encoded as a single HEX-string), it sends it to The Things Network (TTN) via LoRaWAN.

Like with the Adafruit Circuit Playground, one of the challenges was that both devices (the LoPy and the Puck.js) use different programming languages and there were no existing examples that handles the cross platform connection.

I uploaded all code to github.com

Programming the Puck.js

To program the Puck.js, you need the Espruino IDE. I have had my fair share of problems connecting to the Puck.js from within that IDE. It is probably one of the challenges of using BLE as a connection to program. But in the end it got the job done. I wasted most time trying to understand how I can send data from the Puck.js to the LoPy after connecting to it. There was an example using 2 Puck.js to send data, but I could not figure out what the UUID of the PrimaryService and the UUID of the Characteristic for the LoPy that allowed me to write data to it where.

I tried to figure that out using code on the Puck.js, but that didn’t work. In the LoPy code that I found, the service and characteristic were defined like this:

srv1 = bluetooth.service(uuid=b'1234567890123456', isprimary=True)

chr1 = srv1.characteristic(uuid=b'ab34567890123456', value=5)

I finally discovered how these needed to be added in the Puck.js code by using nRF Connect, a free tool for iOS. After setting up the LoPy so that it broadcasts using BLE (see the code below), I connected to the LoPy using the nRF Connect app. It then shows you the correct UUID’s that are in the Send_BT_to_LoPy.js script:

return d.getPrimaryService("36353433-3231-3039-3837-363534333231");

return s.getCharacteristic("36353433-3231-3039-3837-363534336261");

Easy, once you know it.

Note #1:  The Puck.js connects to a device named “LoPy01” so if you change the name of the device in main.py for the LoPy, you also have to change it in the code for the Puck.js
Note #2:  I added the id for the Puck.js in the code, first line. You need to change that to the code for your Puck.js if you have more than 1 Puck.js and want to be able to keep the transmitted values apart afterwards.

Let’s continue with the LoPy.

Lees verder….

Deel dit bericht: