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:
jan 162016
 

20160116_153712_NormalAls zaterdagmiddagproject vandaag weer eens iets waarvan de titel vast geen duizenden views gaat trekken. Ik had afgelopen week een klein LCD-schermpje binnen gekregen. Het is 1.44 inch groot en heeft een resolutie van 128×128 pixel. Een resolutie van 2x niks zou je zeggen, maar ja het schermpje kost dan ook €2,98 incl. verzendkosten. En als je een ESP8266 gebruikt en alleen maar even wat statusinformatie wilt laten tonen, dan heb je helemaal niet veel nodig.

De uitdaging bij dit soort schermpjes is altijd het vinden van de juiste aansluitingen voor de vaak vele pins die zo’n scherm heeft, deze heeft er 8 én het vinden van de juiste library voor Arduino / ESP8266. Ik noem die laatste twee overigens wel in één adem, maar ook hier is het zo dat er nét een beetje verschil zat tussen hoe je e.e.a. zou moeten doen op een “echte” Arduino versus een ESP8266.

Op de foto hier bij het bericht zie je het eindresultaat met naast het LC scherm en de ESP8266 aan de rechterkant een DHT11 die luchtvochtigheid en temperatuur meet.

Als library heb ik gebruik gemaakt van deze library van “sumotoy” (Max MC Costa uit Milaan, Italië) . Belangrijk daarbij is dat het hier dan gaat om de “Pre-Release-1.0r4” (mogelijk werkt 1.0r5 ook, maar die heb ik niet getest). De “master” branch heeft namelijk nog geen ondersteuning voor de ESP8266.

De 8 aansluitingen stonden daar ook netjes aangegeven:

TFT kant   -------- ESP8266  
- Vcc       -->     +3V3V(!!!!)
- Gnd       -->     Gnd
- CS        -->     D0
- RST       -->     D2
- A0        -->     D1
- SDA       -->     Mosi (D7)
- SCK       -->     Sclk (D5)
- LED       -->     +3V3V

Ik heb voor mijn scherm geen weerstand aangesloten al zou een regelbare weerstand hier helemaal niet verkeerd zijn geweest omdat het scherm nu nog ernstig last heeft van licht “bleed” om de randen heen. You get what you pay for zullen we maar zeggen al ga ik er even vanuit dat dat weg valt als je het schermpje in een enclosure opneemt.
De library heeft een groot aantal voorbeelden aan boord, daarbij moet je even opletten dat bij de ESP8266 de 3 #define statements voor de poorten in de scripts moet zijn:

#define __CS 16
#define __DC 5
#define __RST 4

Dat is niet in alle voorbeelden meteen zo, dus dat moet je dan even aanpassen.
Daarnaast kreeg ik eerst boven in het venstertje een balk met ruis te zien. Ik gok dat het ongeveer 32 pixels hoog was. De library is namelijk geschikt voor verschillende schermpjes en Sumotoy heeft zelf blijkbaar een aantal schermpjes die 128×160 pixels zijn. De oplossing was eenvoudig. In de library map zit ook een map genaamd “_settings” met daarin een bestand genaamd “TFT_ILI9163C_settings.h”. In dat bestand staan bovenin een aantal #define statements. Je moet hier de voor jou juiste kiezen. Standaard is “#define __144_RED_PCB__//128×128” gekozen en omdat ik een rode PCB had zou dat moeten kloppen. Maar het bleek dat in mijn geval “#define __144_BLACK_PCB__//128×128” het gewenste effect gaf.

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: , ,