Zoekresultaten : mqtt

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:
dec 202015
 

php_MQTTDit is even een blogpost die 99% van de lezers niet zal zeggen, maar die ik voor mezelf hier maak zodat ik hem de volgende keer weer terug kan vinden, zonder het bijbehorende uitzoekwerk.

Wat wilde ik?
Ik heb op een Raspberry Pi een Mosquitto MQTT server draaien en op die server draait ook een Apache webserver met PHP5 ondersteuning. Nu wilde ik vanuit PHP data naar de Mosquitto server kunnen sturen en lezen. Dat kan, via deze uitbreiding. Maar daar moest ik een paar zaken voor doen. De commando’s zijn:

> sudo apt-get install php-pear
> sudo apt-get install php5-dev
> sudo apt-get install libmosquitto-dev
> sudo pecl install Mosquitto-alpha
> sudo nano /etc/php5/apache2/php.ini
voeg
extension=mosquitto.so
toe aan het bestand en sluit af
> sudo nano /etc/php5/cli/php.ini
voeg
extension=mosquitto.so
toe aan het bestand en sluit af
> sudo /etc/init.d/apache2 restart

Belangrijk is dat ik extension=mosquitto.so aan /etc/php5/cli/php.ini toe bleek te moeten voegen om het ook vanaf de commando prompt te kunnen gebruiken.

Deel dit bericht:
 Reacties uitgeschakeld voor Quick notes: MQTT ondersteuning in PHP op Raspberry Pi  Tags: , ,
jul 052014
 

Schema netwerk Vandaag weer wat (lees: eigenlijk teveel) tijd gehad om verder te werken aan mijn sensornetwerk op basis van MQTT. Ik had een vorige keer al beschreven dat ik op dit moment helaas alleen digitale vochtmeters voor in de grond huis heb (de analoge exemplaren zijn nog onderweg vanuit China). Maar ik had, naast de drie digitale vochtmeters voor in de grond, ook nog een gecombineerde temperatuur/luchtvochtigheid meter (een DHT11) en een lichtgevoelige weerstand beschikbaar, dus in totaal 6 meeteenheden.

Mosquitto
Op de Raspberry Pi had ik Mosquitto draaien, een open source MQTT “broker”, een plek waar de Arduino de gegevens naar toe kan sturen en waar anderen kunnen aangeven dat ze die info dan ook willen hebben. Het betrouwbaar aan de praat krijgen van de koppeling tussen de Arduino en de Raspberry Pi was niet gemakkelijk. Eigenlijk een bekend probleem: ik wilde het te mooi/ingewikkeld doen en was met JSON aan de slag gegaan om in plaats van via 6 MQTT calls, het geheel in één JSON via MQTT call te doen. Om een lang verhaal kort te maken: slecht idee.
Op een gegeven moment liep de Arduino bij het opstarten meteen vast en wel op een manier dat de seriële poort ook niet meer werkte en ik er dus geen gewijzigde scripts op kon zetten.
De oplossing bleek het goed getimed uploaden van het “blink” script waarbij ik de Arduino net op het juiste moment moest aansluiten zodat het uploaden plaats zou vinden voordat het bestaande script de Arduino weer zou doen vastlopen.
Lees verder….

Deel dit bericht:
jun 022014
 

MQTTTijdens het schrijven van de post over de robots gisteren, kwam ik een term tegen die ik nog niet kende, maar die wél al heel lang blijkt te bestaan: MQTT of: MQ Telemetry Transport, in 1999 bedacht door Dr Andy Stanford-Clark van IBM en Arlen Nipper van Arcom (tegenwoordig Eurotech).

Het is een lichtgewicht protocol voor berichten tussen apparaten. De werking is heel simpel: je hebt minimaal drie partijen (apparaten/programma’s) nodig: een sender, een ontvanger en daar tussenin een ‘broker’. Dit is een plek waar de zender de informatie aflevert en de ontvanger de informatie op haalt. En natuurlijk kan een broker meer dan één zender aan en kunnen meerdere ontvangers dezelfde informatie ophalen. En het kan ook zijn dat één ontvanger de informatie van meerdere ontvangers verzameld/combineert.

Daarbij hoeven zender en ontvanger niets van elkaar te weten. Het kunnen verschillende hardwareplatformen zijn en verschillende programmeertalen. Zo beschrijft dit voorbeeld de communicatie tussen een BeagleBone Black die Python gebruikt en een Raspberry Pi waar Java op draait. Beide apparaten hoeven niet van elkaars bestaan te weten, ze hoeven niet in hetzelfde netwerk te zitten, als de ene er even niet is, dan heeft de andere er niet direct last van. Zolang de broker maar in de lucht is.
Lees verder….

Deel dit bericht:
jul 252019
 

Terwijl iedereen het warm heeft in Nederland en ook vandaag weer een nieuw warmterecord bereikt is, dacht ik “laat ik eens een blogpost over hitte maken”, schijnt actueel te zijn.

Was het ook voor mij, zo bleek. Sinds maandag ligt er namelijk een Raspberry Pi 1B in een (open) kistje in de tuin, verbonden aan de antenne voor de NOAA satellieten (zie dit bericht).
En die plek in de tuin wordt (zo weet ik inmiddels) overdag tamelijk warm. Elders had ik gelezen dat ook telefoons, laptops etc. problemen konden krijgen als ze het te warm krijgen (de Raspberry Pi 4 wordt uit zichzelf al snel te warm en schakelt dan terug in snelheid), dus wilde ik weten hoe warm die Raspberry Pi het had.

Uiteraard bleek al iemand anders het antwoord op die vraag uitgewerkt te hebben, in deze blogpost van Lars kun je het script vinden dat hij gebruikt. Ik zou meteen even het tweede, uitgebreidere script gebruiken dan krijg je ook de processorbelasting, het percentage gebruik van de micro-SD kaart en het geheugengebruik. Lars legt uit hoe je die informatie via MQTT kunt doorsturen. Hij stuurt het door naar een externe MQTT-server van Adafruit, ik gebruik (uiteraard) mijn eigen MQTT-server die onderdeel is van de Home Assistant installatie die de rest van de apparaten aanstuurt.

Daar bleek al snel dat de Raspberry Pi in de tuin het vandaag wel heel erg warm kreeg.

Na deze screenshot steeg de temperatuur nog door naar 101,4 °C. Dat is veel meer dan de 85 °C die als maximum voorgeschreven wordt. Het zit nog ruim onder de 125 °C die in het bericht genoemd wordt, maar voor mij was het voldoende reden om de Raspberry Pi af te sluiten en voor de rest van de dag maar even binnen neer te zetten. Er kwam een geur van de case af een beetje leek op een hete soldeerbout, lijkt me niet goed.
Ik heb de cronjob voor het script op 1 keer updaten elke 10 minuten staan. Bij gebruik van Home Assistant kan ik dan eenvoudig een waarschuwing instellen voor als de temperatuur boven de 90 °C uit komt. Niet direct noodzakelijk voor deze testopstelling die na morgen toch weer afgebroken wordt, maar handig om te weten ook voor de andere systemen die in huis in gebruik zijn. Omdat het hier om de temperatuur in de processor zelf gaat, is een graad of 40 °C hier helemaal geen probleem.

Het script werkte niet “zomaar” op mijn Raspberry Pi. Python was uiteraard al geïnstalleerd, maar voor het verkrijgen van de info en het versturen van berichten via MQTT waren twee andere libraries nodig:

sudo pip install paho-mqtt
sudo pip install psutil

Nou, en dan voor de geschiedenisboeken toch nog even een aantal andere temperaturen om het huis: De airco staat UIT op de studeerkamer op zolder, AAN op de eerste verdieping (waar de slaapkamers liggen). De serre heeft een dak van dubbellaags kunststof dus dat is een broeikast, maar zoals je ziet doet de volle zon op het balkon aan de voorkant van het huis (op het zuiden) ook haar werk.

Tja, gewoon rustig aan doen dus.

Deel dit bericht:
jul 082019
 

Het leek heel gemakkelijk, was het ook voor wat betreft de eerste demo, maar stap 2 was een stuk complexer.

Ik had een aantal voorbeelden gezien van, wat mij betreft, enorm indrukwekkende demonstraties van de kracht van de ESP32 microprocessor. Je blijkt er een heel kleine camera op aan te kunnen sluiten (daar zijn de meeste mensen niet meer zo vreselijk van onder de indruk). Maar Espressif (de bedenkers van de chip) heeft nu ook een demo/test board gemaakt, genaamd de ESP-EYE, met niet alleen de camera voorgeïnstalleerd, maar ook spraak- en gezichtsherkenning alvast voorgeprogrammeerd. Je kunt dus meteen aan de slag!

Als je de video hierboven bekeken hebt voordat je verder las, dan weet je waarom dat indrukwekkend is: het is namelijk niet zo dat de ESP-EYE stiekumpjes gebruik maakt van een online webservice, dus bv Google of Amazon die al het werk uit handen neemt. Nee, de ESP-EYE werkt volledig zelfstandig. Dus geen data die over het internet naar de een of andere, meer of minder betrouwbare aanbieder gaat. Alles gebeurt 100% op het boardje zelf. Dat wilde ik zelf uitproberen, dus heb ik er eentje besteld bij AliExpress. Ik heb er overigens zelf €22,65 voor betaald, ik zie dat hij nu iets boven de 26 euro kost. Ik verdien niets aan de link of het verwijzen naar AliExpress, shop gerust dus even rond voor de beste deal. Hieronder zie je wat foto’s van de verpakking, de ESP-EYE met als referentie voor het formaat een 5 eurocent muntje ernaast. Het ding is klein!

De video hierboven van Luca Dentella was heel handig en behulpzaam, hij laat zien hoe de ESP-EYE zo uit het doosje werkt, dat lukte mij ook. Maar de instructies zorgden ook voor de nodige problemen toen ik hem letterlijk probeerde te volgen bij het aanpassen van de standaardcode.

Lees verder….

Deel dit bericht:
dec 232018
 

Ik had dit bericht eigenlijk al eerder deze week willen schrijven, maar niet alleen was het best een drukke week zo net voor de vakantie, ik was ook in afwachting van een reactie van een leverancier die ik wat informatie gevraagd had over een van zijn producten. Dat product, een draadloze schakelaar die op 433Mhz werkt, was namelijk de aanleiding van het geheel. Ik had die via Aliexpress besteld. De link in de vorige zin gaat naar wat zo mooi heet de “transaction screenshot”, het is de weergave van het product op het moment dat ik het bestelde (een tijdje geleden, op 23 november). Nou zijn de schakelaars zoals ik ze heb ontvangen niet precies hetzelfde zoals in de transaction screenshot. De leverancier nam na de bestelling, heel netjes, contact op. Het uiterlijk van de huidige batch van schakelaars was namelijk anders dan in de advertentie. Hij stuurde een paar foto’s mee van renders. Belangrijk ander verschil, een pluspunt wat mij betreft, was dat de schakelaar geen 12V batterij meer gebruikte maar een ‘gewone’ knoopcel batterij. Wat mij betreft geen enkel probleem, dus kreeg ik ze opgestuurd. Maar het lijkt er nu op alsof het een laatste batch is geweest, want bij deze leverancier kan ik ze niet meer vinden en navraag leert ook dat ze ze niet meer hebben.

Hoe dan ook, ze zien er zo uit (zie hiernaast). Er zit een klein schakelaartje in, vergelijkbaar met de schakelaartjes die vaak op een breadboard gebruikt worden en een led die oplicht als je op de knop drukt. Dat zie je alleen in de het donker goed.

Er worden twee kleine stickers meegeleverd zodat je de schakelaar ergens vast kunt plakken, maar je kunt hem ook gewoon als een soort simpele afstandbediening ergens op een tafel of kast leggen. Bijvoorbeeld voor je kerstboom als je ’s avond de lampjes uit wilt doen en geen zin hebt om tegen de Google Home Mini te praten, of je smartphone te pakken.

De schakelaars werken op een knoopcelbatterij en kostten ongeveer een euro of 3 per stuk (ik kreeg een relais erbij geleverd in een nette compacte case, het is even de vraag hoeveel euro je daarover van het totaalbedrag van 10 euro aftrekt). Maar zoals gezegd, de verkoper waar ik ze besteld had heeft ze niet meer, deze exemplaren zien er qua foto’s, specificaties en prijs hetzelfde uit. ik kan je niet naar een werkende link op Aliexpress sturen omdat de verkoper ze niet meer heeft.

Maar natuurlijk werkten de schakelaars niet zomaar, daar moest het een en ander voor gebeuren.

Lees verder….

Deel dit bericht:
okt 282018
 

De site/toepassing is niet nieuw, maar ik had simpelweg nog geen reden gehad om er eerder naar te kijken: MIT App Inventor.

Vandaag heb ik er voor het eerst mee geëxperimenteerd. De aanleiding is een wat groter project waarbij ik sensorwaarden die via een ESP32 worden verzameld direct op een mobiel apparaat wil kunnen ontvangen (dus niet via WiFi / MQTT etc). Het idee is om daar BLE (Bluetooth Low Energie) voor te gebruiken, de ESP32 heeft standaard WiFi en BLE ingebouwd. Maar de standaard apps die je voor BLE kunt downloaden hadden wat moeite met het verwerken en zeker met het netjes weergeven van de data die op deze manier binnen kwam. Zelf een app bouwen voor iOS of Android had ik in het verleden wel al eens geprobeerd, maar in beide gevallen was het installeren van de benodigde tools/software en het krijgen van een basisbegrip van hoe e.e.a. werkt al voldoende reden om daar niet teveel extra tijd in te steken.

Ik was dan ook een beetje sceptisch toen ik de verwijzing naar MIT APP Inventor tegenkwam. Maar, de eerste indruk na een paar uurtjes testen is heel positief. Goed, de eerste beperking voor nu is nog dat er nog geen ondersteuning is voor iOS. Dat was voor mij geen echt probleem, ik heb beide ter beschikking.
Heel prettig is wat mij betreft dat ik meteen in de online omgeving aan de slag kon. Ik kon met een Google account inloggen, naar keuze voor mij dan dus via @gmail.com of via @ixperium.nl omdat we Google Apps for Education gebruiken. Maar helemaal mooi werd het na het koppelen van mijn Android toestel via de MIT AI2 Companion App die ik via Google Play kon installeren. Na het scannen van een QR-code of het invoeren van een korte code werd mijn toestel gekoppeld aan het project waar ik mee bezig was. Dat betekende dat wijzigingen meteen werden doorgevoerd en te testen waren.

Het bouwen van een applicatie voelde heel vertrouwd, enerzijds heb je de ontwerpomgeving waar je knoppen, lijsten etc. op je scherm plaatst. Om er voor te zorgen dat die knoppen daadwerkelijk iets doen gebruik je de “Blocks” omgeving. Als je met Scratch kunt werken of met de Blocky achtige omgevingen zoals ook bij de Micro:bit gebruikt worden, dan kun je hiermee eenvoudig overweg.
En ook wijzigingen die je hier doorvoert worden meteen in de app op je smartphone doorgevoerd.

Heb je app helemaal klaar, dan kun je een .apk bestand downloaden op je smartphone. Dat is dus een “echte” app die gewoon zelfstandig werkt, los van de online omgeving. Nou staan de meeste smartphone tegenwoordig zo ingesteld dat ze niet zomaar apps installeren die niet in Google Play staan. Maar als het goed is, dan is dat één vinkje dat je moet aanzetten. Ik heb nog niet uitgezocht hoeveel werk de optie is om je app via Google Play te delen via App Inventor, want dat is voor mijn doel niet nodig.

Conclusie
Voorlopige conclusie is dat deze omgeving voldoende flexibiliteit biedt voor wat ik nodig heb.  De app is nog niet klaar dus nog geen filmpje etc. van het eindresultaat. Dat wordt nog vervolgd.

Deel dit bericht:
apr 082018
 

Ik realiseer me dat de titel van dit bericht weer eens absoluut geen click-bait is. Als je toch verder leest: leuk! 🙂

Voor wie denkt: waar heeft hij het nou weer over, eerst even kort wat uitleg. Zoals je wellicht weet zijn er naast Arduino en Micro:bit tal van andere interessante oplossingen op het gebied van microprocessoren, kleine uitbreidingskaartjes met een chip er op die net als Arduino en Micro:bit gebruikt kunnen worden om sensoren te lezen, randapparaten aan te sturen, maar die vaak een fractie van het geld kosten. Bekendste op dit gebied was ongetwijfeld de ESP8266, als je de link volgt kom je bij een aantal berichten op dit blog daarover. De ESP8266 heeft inmiddels een opvolger, de ESP32. Het heeft even geduurd voordat ook de firmware en ondersteuning voor de chip op orde was, maar inmiddels zijn ontwikkelbordjes met de ESP32 goed en goedkoop te krijgen (zeker via online shops zoals AliExpress). Ook over de ESP32 heb je hier al meer kunnen lezen, de LoPy van Pycom was de eerste ESP32 die ik hier in huis haalde naar aanleiding van de Kickstarter in augustus 2016 alweer. Dat was ook mijn eerste kennismaking met MicroPython. Een programmeertaal die voor mij helemaal niet zo vanzelfsprekend was omdat ik (toen) nog niet eerder met Python geprogrammeerd had.

Sindsdien gebruikte ik MicroPython uitsluitend op de LoPy’s. Want pogingen om het op een ESP8266 handig aan het werken te krijgen waren op niets uitgelopen. Het was simpelweg teveel gedoe om de code te wijzigen.

Bij toeval kwam ik echter op YouTube deze serie instructiefilmpjes tegen:

Ik bekeek hem en was onder de indruk van het gemak waarmee, met dank aan rshell het nu mogelijk was om bestanden te uploaden en wijzigen op de ESP32. Overschakelen naar de REPL, weer terug naar de shell, het ging allemaal heel soepel. En ik had toevallig nog een ESP32 liggen die niks lag te doen.
Ik had hem aangeschaft al node voor LoRaWAN / TTN, maar helaas had ik bij het bestellen niet goed opgelet en een versie op 433Mhz besteld in plaats van op 868Mhz. Je kunt hem hier vinden (even opletten dus!). Je hebt helemaal gelijk als je zegt “maar voor 16 euro kan ik ook een Micro:bit kopen”. Klopt. Maar dat komt door de LoRa-module en het kleine LCD-schermpje. Wil je een gewone ESP32 zonder LoRa-module en zonder LCD, dan kun je er hier al eentje voor minder van 4 euro (incl. verzenden) vinden. En dan heb je dus een microprocessor mét WiFi en BLE en batterij-aansluiting.

Goed, ik ging het proberen. Maar ik wilde het niet op een Raspberry Pi doen, maar in het Linux Subsystem dat ik op Windows 10 heb draaien. Waarom? Omdat ik wilde weten of het nu eindelijk een volwaardig alternatief geworden is. Spoiler: ja, dat is het, maar je moet er wel even wat voor doen.

Lees verder….

Deel dit bericht:
jan 212018
 

Ik heb vandaag de Sonoff Pow voor het eerst echt getest. En de resultaten zijn heel interessant wat mij betreft. Onze wasmachine draait heel wat was per week en het blijken dan ook ideale momenten om de vermogensmeter uit te proberen. Hierboven zie je de resultaten van vandaag (tot nu toe). De grafiek komt uit Grafana, die de data ophaalt uit InfluxDB waar de data terecht komt via OpenHab en MQTT. De gele lijnen heb ik later toegevoegd.

Van links naar rechts zie je achtereenvolgens een bonte was programma op 30 graden, gekenmerkt door een snelle stijging van het gebruikte vermogen naar zo’n 2kW en daarna geleidelijke daling met 3 kleine verhogingen bij het centrifugeren.
De tweede trommel was beddengoed op 60 graden. Daar zie je dat het vermogen veel langer op die 2kW blijft en ook hier kleine verhogingen voor het centrifugeren.
Het beddengoed ging de droger in, het verbruik daarvan kent niet zo’n grote piek (zie blokje 3) maar blijft heel lang op zo’n 400W.
Het vierde blok moet je nu al kunnen herkennen: een tweede trommel op 60 graden (beddengoed van de kinderen), daarna heb ik de droger weer van de meter afgehaald en de T-shirts van het hockeyteam van de jongste gewassen. Een kort programma (30 minuten) op 40 graden, te zien in het vijfde blokje.
En op het moment loopt een laatste bonte was voor vandaag bijna ten einde.

Inmiddels heb ik tellers toegevoegd die respectievelijk de gebruikte energie tijdens een geselecteerde tijdsduur, daarvan afgeleid het aantal kWh (delen door 36.000) en de kosten (vermenigvuldigen met 18 eurocent per kWh) laat zien. Daaraan kan ik zien dat een trommel witte was met 18 eurocent zo’n 2,5x zo duur is als een trommel bonte was (7 eurocent) en de T-shirts van het hockeyteam verbruiken, ondanks het kortere programma, door de hogere temperatuur bijna net zoveel stroom als een gewoon bonte was programma. Geen manier om geld te besparen dus. Ook de droger is niet heel goedkoop in gebruik, net zo duur als een trommel witte was. De waslijn waar het kan blijft dus het devies.

p.s. ik vind zulke metingen, de data, de info die het oplevert super interessant. Betekent niet dat ik voortaan geen apparaat meer aan durf te zetten uit angst voor het bijbehorend verbruik. Verspilling tegen gaan is prima, maar het moet wel leefbaar blijven.

Deel dit bericht: