Schlagwort-Archive: Blynk Server

Einen lokalen Blynkserver beim Booten der Raspberry PI Starten

In diesem Beitrag wird am Beispiel eines lokalen Blynk Servers gezeigt, wie auf einer Raspberry PI eine Java File beim Starten und Herunterfahren der PI automatisch gestartet und heruntergefahren werden kann.

  1. Zuerst wird ein Startscript und ein Stopscript erstellt, die später die Applikation mir Rootrechten startet und stoppt. Hier für wechseln wir mit sudo bash unsere Benutzerrechte auf Root.In unserem Beispiel speichern wir die Scripte im Verzeichnis /usr/local/bin/…
  • Start Script: /usr/local/bin/startBlynk.sh
  • Stop Script: /usr/local/bin/stoppBlynk.sh

Nach dem erstellen der Scripte müssen noch deren Attribute auf ausführbar gesetzt werden. Dies geschieht mit dem Befehl chmod +x NAME

Zu Starten des BlynkServers kann der Inhalt des Scripts startBlynk.sh im einfachsten Fall so aussehen:

#!/bin/bash
/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/bin/java -jar /home/pi/Blynk/server-0.39.10.jar -dataFolder /home/pi/Blynk &

Zu Stoppen des BlynkServers kann der Inhalt des Scripts stoppBlynk.sh im einfachsten Fall so aussehen:

#!/bin/bash
#sucht und beendet die Java Applikation
ps auxf |grep ’server-0.xx.x.jar ‚|`awk ‚{ print „kill “ $2 }’`

Als nächstes benötigen wir noch das folgendes Script (localBlynk) , wir speichere es in das Verzeichnis /etc/init.d/localBlynk

  • sudo nano /etc/init.d/localBlynk
  • Inhalt der Date:#! /bin/sh
    ### BEGIN INIT INFO
    # Provides:        localBlynk
    # Required-Start:
    # Required-Stop:
    # Default-Start:        2 3 4 5
    # Default-Stop:         0 1 6
    # Short-Description:    Stars & Stops BlynkServer
    # Description:          Stars & Stops BlynkServer
    ### END INIT INFO

 

# Start Stop Blynk local Blynk Server

case $1 in
start)
/bin/bash /usr/local/bin/startBlynk.sh
;;
stop)
/bin/bash /usr/local/bin/stopBlynk.sh
;;
restart)
/bin/bash /usr/local/bin/stopBlynk.sh
/bin/bash /usr/local/bin/startBlynk.sh
;;
esac
exit 0

  • Um das Script zum Systemstart hinzu zu fügen, führen wir nun noch  folgende Kommandos aus:cd /etc/init.d/
    sudo chmod 755 localBlynk
    sudo update-rc.d localBlynkdefaults

 

Einen eigenen lokalen Blynk Server auf dem Raspberry PI installieren

Logen Sie sich auf ihrer Raspberry z.B. per ssh ein.

Nun wird die aktuelle Java Version (Java 8) installiert :

sudo apt-get install oracle-java8-jdk

Stellen Sie sicher, dass nun die aktuelle Java Version installiert wurde.

java -version
Output: java version "1.8.0_40"

Download des Blynkserver jar Files in das „/home/pi/Blynk Verzeichnis.
Sollte das Verzeichnis noch nicht existiert muss es zuerst angelegt werden.

Alle folgenden „sudo“ Anweisungen kann man sich sparen, wenn man gleich in den „sudo bash“ wechselt, dies ist vergleichbar mit dem „su“ bei anderen Linux Distributionen.

pwd
/home/pi/
sudo mkdir Blynk
cd Blynk
sudo wget "https://github.com/blynkkk/blynk-server/releases/download/v0.39.10/server-0.39.10.jar"

Es ist auch möglich,  die Server Datei manuell via ssh oder scp herunter zuladen und in das entsprechende Verzeichnis hinein zu kopieren .

Um den Mailversand zu aktivieren, muss im Verzeichnis /home/pi/Blynk eine Datei mit dem Namen mail.properties angelegt werden.

Der Inhalt dieser Datei hat folgendes Format.

mail.smtp.auth=true
mail.smtp.starttls.enable=true
mail.smtp.host=smtp.gmail.com
mail.smtp.port=587
mail.smtp.username=Anmeldename
mail.smtp.password=Kennwort

Die aktuelle Blynk Server Version ist unter:
https://github.com/blynkkk/blynk-server/releases
zu finden.

  • Server mit den default Einstellungen starten (Hardware Port 9443 SSL)
    sudo java -jar server-0.39.10.jar -dataFolder /home/pi/Blynk        
    
  • Als Rückmeldung des Servers erscheint eine Meldung wie diese :
    Blynk Server successfully started.
    All server output is stored in current folder in 'logs/blynk.log' file.
    

Aktiviere automatischen Server Neustart

Um diese Option zu aktivieren, suchen Sie das Verzeichnis:
/etc/init.d/rc.local
öffnen sie die Datei mit dem vi Editor und fügen sie die folgende Zeile hinzu:

sudo vi rc.local
java -jar /home/pi/Blynk/server-0.39.10.jar -dataFolder /home/pi/Blynk &

Sollte dieser Ansatz nicht funktionieren, versuche Sie bitte folgendes:

sudo crontab -e

und fügen sie die folgenden Zeilen hinzu

    @reboot java -jar /home/pi/server-0.39.10.jar -dataFolder /home/pi/Blynk &

anschließend speichern und beenden.

Der Administrationsbereich kann anschließend bei laufendem Blynk Server mit folgender URL im Browser geöffnet werden.

https://your_ip|(127.0.0.1):9443/admin

Um den Blynkserver im Lokalen Netzwerk auch über das Internet erreichen zu können wird der Einsatz einer DynDNS Adresse empfohlen. Diese kann dann z.B. in einer Fritzbox hinterlegt werden, ändert sich die IP-Adresse der Fritzbox (alle 24 Stunden veranlaßt durch den Provider), wird automatisch die DynDNS Adresse informiert und der Server ist somit immer mit einem Pseudo Domain Name erreichbar.
In lokalen Router müssen außerdem noch ein paar Portfreigaben definiert werden. EIn Auszug der wichtigsten Einstellungen ist hier zu sehen.

 

Viele weitere Informationen zur Konfiguration der Blynk Servers.

ESP8266 mit der Arduiono IDE Programieren

Ich hab mich in den letzten Tagen mal etwas intensiver mit dem Thema Datashet ESP8266 beschäftigt. Dieses Modul geistert in letzte Zeit immer häufiger durch die Fachpresse und das zu Recht. Es handelt sich hierbei um ein kleines WIFI – Modul, dass recht einfach seriell an jeden beliebigen Mikrocontroller Type angeschlossen werden kann.Der Datenaustausch erfolgt über AT-Komandos ähnlich wie man sie von anderen seriellen Kommunikationen kennt.

Das interessante bei diesem Modul ist jedoch, dass man im Prinzip auf einen zusätzlichen Mikrocontroller verzichten kann, denn der ESP8266 verfügt selbst über bis zu 4 MB Flash und 11 GPIO’s bei 80 MHz.

Das Modul ist in verschiedenen Board-Typen erhältlich, hierbei sind meist unterschiedlich viele der GPIO Pins herausgeführt. Auf allen Breakouts sind jedoch minimal 4 (Rx (GPIO 3) und Tx (GPIO 1) , VCC und VSS).

Die Programmierung des ESP kann sehr einfach mit der Arduino IDE erfolgen

Hierbei stehen mehrere Möglichkeiten zur Verfügung:

Auf GitHub steht eine eigenständige Version der Arduiono IDE ESP8266 zum download zur Verfügung , die bereits über alle nötigen Librarys verfügt, jedoch nicht immer auf dem aktuellsten Stand ist.

Die zweite Alternative besteht darin,  eine bereits vorhandene (installierte) original Arduiono IDE um die Hardware Library zu erweitern. Diese steht ebenfalls auf GitHub zur Verfügung.

Die dritte und einfachste Möglichkeit, einfach in den Voreinstellungen der Arduiono IDE Zusätzliche Boardverwalter den folgenden Link eintragen:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Anschließend wird unter Werkzeuge – Board – Board Verwalter… das Paket „ESP8266 Comunity“ ausgewählt und installiert. Um eine neue Version zu installieren kann dann die Updatefunktion des Pakets verwendet werden.

Soll das Package von Hand eingebunden werden, muss vorher die ZIP-Datei herunter geladen und entpackt werden.Im entpackten Ordner befindet sich neben den Git-Dateien auch der Ordner esp8266com. Dieser wird nun einfach in den Arduino-Ordner ../Dokumente/Arduino/hardware verschoben, dort befinden sich unter anderem dann auch zusätzliche neu Sketche Dateien, wie z.B.

  • ESP8266WebServer
    Ein einfaches Hello World Programm für die Serverfunktion
  • ESP8266mDNS
    Server mit mDNS (gerätename.local)
  • ESP8266WiFi
    Verschiedene Sketche: Scanner, Server, Clients sowie ein NTP-Client (Zeitsynchronisation über das Internet).

Nach dem starten der Arduiono IDE müssen nun noch ein paar Voreinstellungen getroffen werden. In der Boardauswahl befindet sich nun eine neue Kategorie, in der nun auch das Generic ESP8266 board zu finden ist, diese muss ausgewählt werden um z.B. ein ESP-01 Modul zu programmieren.Verwenden Sie für einen ersten Test z.B. aus den Beispielen den Hello Server-Sketch. Die Syntax ist Arduinokonform und die Programmierung sehr einfach, da alles eigene Librarys hat und die Kommunikation intern und nicht von einem Arduino nur mit AT-Kommandos über die serielle Schnittstelle geschieht.

Zum Programmieren mit dem ESP – Tool muss man das ESP-Modul wie folgt anschließen:
Achtung, keines der ESP Signale ist 5V tolerant!
  • SC_PD/CHIP_EN auf VCC
  • Tx und Rx über Kreuz an ein USB-Serial Modul.
  • VCC an 3,3V
  • GND mit der Masse verbunden.
  • GPIO0 zum Programmieren auf Masse.
  • RST kann offen bleiben oder ein PullUp (10k) eingebaut werden.
Das ESP Modul kann direkt vom USB Seriell Adapter versorgt werden, sofern dieser eine Ausgangsspannung von 3,3V unterstützt.
Einige Adapter bieten die Möglichkeit die Betriebsspannung zwischen 5V und 3V3  aus zu wählen. Hierbei ist dringend darauf zu achten, dass diese Einstellung nicht nur die VCC sondern auch die Datenpegel betrifft.

Programmierung

Nach dem erfolgreichen Kompilieren des Codes kann der Upload in das ESP – Modul erfolgen. In älteren IDE Versionen musst für den Upload in das Modul das „esptool“ aus der Liste der Programmer aus ausgewählt werden. Dies ist in den neueren Versionen nicht mehr vorhanden, da der Upload nun eine Uploadmethode ausgewählt wird. Nach dem die Übertragungsparameter im Menü Werkzeuge eingestellt wurden, kann der Upload anschließend im Menüpunkt Sketch Upload initiiert werden.
Sollte der Upload abbrechen,  ist der ESP vermutlich nicht im Standard Bootloader Modus. Hierfür muss der GP0 auf LOW gelegt sein und ein Reset ausgeführt werden. Nach dem erfolgreichen Programmieren startet das Programm anschließend unabhängig vom Pegel an GP0.

Firmware Update

Bei der Programmierung des ESP Moduls mit der Arduino IDE, wird die auf dem Modul vorhandenen Firmware automatisch überschrieben.

Soll das ESP – Modul nach dem Arbeiten mit der Arduino IDE wieder mit der original Firmware des Herstellers programmiert werden, kann hierfür das ESP Flash Tool verwendet werden, dass die Firma Espressif zur Verfügung stellt.Nach dem starten der Applikation ist folgendes Fenster zu sehen.

esp01 Firmware

 

Espressif stellt auf seinen Seiten ebenfalls die aktuellen Firmware zum Download zur Verfügung.
Für den Download drücken sie auf SDKs Downloads und dann wählen Sie das letzte Release aus.

Der Hersteller hat eine optionale Funktion in das Modul integriert, das ein automatisches Update direkt vom Hersteller erlaubt. Standardmäßig ist diese Funktion jedoch abgeschaltet.