Was sagt Google Trend zu diesem Vergleich: Cubieboard vs. Raspberry Pi
Der Sieger, ganz eindeutig der Raspberry Pi!
mit Java, Raspberry Pi, SDR, Linux, Arduino, Sicherheit, Blender, KI, Statistik, Krypto und Blockchain
Was sagt Google Trend zu diesem Vergleich: Cubieboard vs. Raspberry Pi
Der Sieger, ganz eindeutig der Raspberry Pi!
Wie können Temperatur, LaCrosse und andere Sensoren mit JeeLink abgefragt und mit Node-RED weiter verarbeitet werden. Den JeeLink mit diesem LaCrosseITPlusReader Sketch flashen:
Dann noch für Node-RED den Node serial installieren. Den serialport Node wie folgt installieren:
1 |
npm install node-red-node-serialport |
Hier der ganze Flow, der die Daten auf der Debug-Konsole ausgibt:
Diese Einstellungen sind für den Node nötig: „Raspberry Pi: Wie können Daten mit JeeLink mit Node-RED eingelesen werden?“ weiterlesen
Quicktest des 5 Euro Router:
Erst mal checken ob ein Zugang per Telnet geht. Dazu den Router mit Strom über den kleinen USB-Port (weißes Kabel) versorgen und den Netzwerkanschluss anklemmen. Es leuchtet nun die blaue LED.
Auf dem Gerät sind die default Zugangsdaten angebracht:
Ok, dann mal los, „Quicktest: 5 Euro Router – A5-V11 3G/4G Router“ weiterlesen
Soeben ist mein Router mit Kabel für 5 Euro aus der Bucht (China) inkl. Versand eingetroffen. Hat zwar ein paar Wochen gedauert, aber bei dem Preis kann man auch ein paar Wochen warten. Es ist auch eine Anleitung in chinesisch und englisch dabei.
Hier ein paar Daten des SoC – Mediatek/Ralink RT5350F MIPS processor @ 360MHz mit System Memory 32MB RAM (W9825G6EH-75), 4MB NAND flash (Pm25LQ032) „3G/4G Router (A5-V11 3G/4G Router) für 5 Euro inkl. Versand aus der Bucht“ weiterlesen
Habe nun mal ein anders Netzteil verwendet, aber auch nach 3 Tagen ist der Cubi wieder abgestürzt. An der Stromversogung kann es also wohl nicht liegen!
Dann habe ich mir mal den Speicherverbrauch angeschaut, da ich die Vermutung hab, das der Apache2 oder die Mysql den Speicher vollaufen lassen und es zu einem Speicherüberlauf mit Absturz kommt.
Ich habe nun mal Testweise einen CRON Job angelegt, der einmal am Tag ein Reboot durchführt, in der Hoffnung das er dann länger als 3 Tage läuft. Das behebt zwar nicht die Ursache, aber wenn es läuft ist das mal ein Workaround (siehe Bild mit der Telefonzelle) … 😉
Der Cron-Job kann wie folgt angelegt werden und zwar mit root Zugang:
1 |
crontab -e |
und in der letzten Zeile folgenden Eintrag ergänzen. „Auf der Suche, warum der Cubieboard mit Debian Jessie nach ein paar Tagen abstürzt. Teil 3: Workaround tägliches rebooten“ weiterlesen
[bpmn url=“http://blog.wenzlaff.de/wp-content/uploads/2016/08/raspberry-pi-update.bpmn“]
Will man schnell und einfach HTML-Dateien parsen bzw. auswerten, geht das mit der schönen JSoup-Api. Hier gibt es eine Mindmap für den schnellen Überblick.
Es sind dann nur zwei Zeilen nötig um z.B. den Titel einer Webseite einzulesen:
1 2 |
Document doc = Jsoup.connect("http://reise.wenzlaff.de/reisetabelle/").get(); System.out.println("Der Titel der Website: " + doc.title()); |
Hier mal ein Zitat aus der Orginal Api-Beschreibung:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
jsoup is a Java library for working with real-world HTML. It provides a very convenient API for extracting and manipulating data, using the best of DOM, CSS, and jquery-like methods. jsoup implements the WHATWG HTML specification, and parses HTML to the same DOM as modern browsers do. parse HTML from a URL, file, or string find and extract data, using DOM traversal or CSS selectors manipulate the HTML elements, attributes, and text clean user-submitted content against a safe white-list, to prevent XSS output tidy HTML jsoup is designed to deal with all varieties of HTML found in the wild; from pristine and validating, to invalid tag-soup; j soup will create a sensible parse tree. |
Das sind doch Gründe!
Es braucht in der pom.xml des Maven Projekte nur diese eine Abhängigkeit angegeben zu werden: „Java: Parsen von HTML-Dateien mit JSoup 1.9.2 in zwei Java Zeilen“ weiterlesen
Dazu gibt es ein kleines WordPress Plugin mit Namen bpmn.io.
Die Anleitung zu dem bpmn.io Plugin ist hier zu finden.
Hier ein Beispiel meiner aktuellen Urlaubsplanung als BPMN 2.0. Man kann mit der Maus in das Bild klicken und über das Mausrad größer und kleiner scrollen.
[bpmn url=“http://blog.wenzlaff.de/wp-content/uploads/2016/08/transpazifik-kreuzfahr-2016.bpmn“ height=“250px“]
Habe ich was vergessen?
Wie können Flugdaten von MQTT Servern empfangen und in openHAB angezeigt werden? Hier ein Beispiel, wie von einem öffentlichen Testserver (test.mosquitto.org) die Anzahl von Flugzeuge in Hannover per MQTT empfangen, und alle 5 Minuten in realtime in openHAB angezeigt wird.
Das geht ganz einfach mit dem MQTT-Binding das in das addon Verzeichnis kopiert werden muss ( Datei: org.openhab.binding.mqtt-1.8.3.jar ). Dann den MQTT-Broker in der openhab.cfg eintragen: „Wie können Flugdaten von MQTT Servern empfangen und in openHAB angezeigt werden?“ weiterlesen
Auf dem Raspberry Pi läuft openHAB. Einmal am Tag bekomme ich per Pushover eine Nachricht mit dem Systemstatus auf das Handy gesandt:
Ups, da ist ja die Systemtemperatur nach dem Komma etwas lang.
Obwohl der Eintrag in der items Datei wie folgt lautet:
1 2 |
// Über ein Script die Systemtemperatur des Raspberry Pis auslesen Number systemTempPi "System Temperatur [%.1f °C]" (System) { exec="<[./configurations/scripts/getSystemTemp.sh:600000:REGEX((.*?))]" } |
Damit man die OpenHAB Konfigurationsdateien einfach bearbeiten kann, gibt es den openHAB Designer (aktuelle Version 1.8.3). Der kann von dieser Seite für den Mac, Linux oder Windows kostenlos geladen werden. Diese Datei dann installieren.
Tip: Erscheint bei der Installation bei Mac OS X eine Fehlermeldung: „… das Archive bzw. das Programm ist defekt und soll in den Papierkorb verschoben werden…“
liegt es daran, das das Archive nicht signiert ist. Dann wählen Sie „Apple“ > „Systemeinstellungen“
und klicken Sie auf „Sicherheit“ und danach auf „Allgemein“ für die App zulassen.
Dann noch einmal versuchen, und es müsste laufen. Die Einstellung kann dann wieder zurück gesetzt werden, wenn der Designer einmal erfolgreich gestartet wurde.
Den openHAB Designer nun starten, es erscheint eine schöne auf Eclipse basierende GUI.
Da der openHAB Server auf einem Raspberry Pi läuft, muss das OpenHAB Konfigurationsverzeichnis /etc/openhab/configurations noch Freigegeben werden um vom Mac aus darauch zuzugreifen. Zu dem openHAB Designer erst mal eine Mindmap
„Wie wird der openHAB Designer 1.8.3 für einen Mac optimal installiert mit Freigaben für einen Raspberry Pi?“ weiterlesen
Manche SDKarten die im Raspberry Pi laufen, hinterlassen den Eindruck, das sie defekt sind. Das kann man aber auch mit einem Mac überprüfen. Nachdem die SDKarte in den Kartenleser gesteckt wird, kann für den ersten Test, erst einmal die Karte gelöscht werden.
Dazu das Festplattendienstprogramm aufrufen. Dann links, unter den Punkt APPLE SD Card Reder die darunter liegende SDKarte selektieren und oben in der Menüleiste auf Löschen klicken.
Dann als Format „MS-Dos-Dateisystem (FAT) “ wählen und auf den Button „Sicherheitsoptionen“ klicken.
Hier können jetzt die Anzahl der Löschversuche eingestellt werden. Hier für einen ausführlichen Test, den Schieber ganz nach links schieben. Das heißt es wird 7 Mal gelöscht.
Auf OK, klicken und dann auf „Löschen„. Das kann dann für eine 16 GB SDKarte schon mal 3 Stunden dauern.
Während des löschen, kann auch parallel dazu die Aktivitätsanzeige gestartet werden. Wenn keine anderen aufwendigen Schreib/Lese Aktivitäten laufen, kann die Geschwindigkeit der Karte abgelesen werden:
Hier bei mir zw. 9-11,4 MB/s das ist für eine Class 10 Karte ok.
Wen das alles ohne Fehler läuft, ist der erste Test der Karte schon mal ok. Hier mal das Ergebniss:
Dann gibt es noch ein kostenloses externes Programm mit GUI für den Mac, welches alle Sektoren der Karte beschreibt und wieder einließt. Das f3x Programm:
Da kann einfach die SDKarte ausgewählt werden und auf „Start Test“ geklick werden. Der Download des Programmes geht hier.
Wenn alles OK ist, gibt das Programm diesen Dialog aus:
Ich bevorzuge aber das Kommandozeilen Programm f3 da bekommt man dann eine schöne Logdatei bei dem Aufruf:
./log-f3wr 16-GB-SDKarte-.log /Volumes/SDKARTE/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
Free space: 14.97 GB Creating file 1.h2w ... OK! Creating file 2.h2w ... OK! Creating file 3.h2w ... OK! Creating file 4.h2w ... OK! Creating file 5.h2w ... OK! Creating file 6.h2w ... OK! Creating file 7.h2w ... OK! Creating file 8.h2w ... OK! Creating file 9.h2w ... OK! Creating file 10.h2w ... OK! Creating file 11.h2w ... OK! Creating file 12.h2w ... OK! Creating file 13.h2w ... OK! Creating file 14.h2w ... OK! Creating file 15.h2w ... OK! Free space: 0.00 Byte Average writing speed: 9.83 MB/s SECTORS ok/corrupted/changed/overwritten Validating file 1.h2w ... 2097152/ 0/ 0/ 0 Validating file 2.h2w ... 2097152/ 0/ 0/ 0 Validating file 3.h2w ... 2097152/ 0/ 0/ 0 Validating file 4.h2w ... 2097152/ 0/ 0/ 0 Validating file 5.h2w ... 2097152/ 0/ 0/ 0 Validating file 6.h2w ... 2097152/ 0/ 0/ 0 Validating file 7.h2w ... 2097152/ 0/ 0/ 0 Validating file 8.h2w ... 2097152/ 0/ 0/ 0 Validating file 9.h2w ... 2097152/ 0/ 0/ 0 Validating file 10.h2w ... 2097152/ 0/ 0/ 0 Validating file 11.h2w ... 2097152/ 0/ 0/ 0 Validating file 12.h2w ... 2097152/ 0/ 0/ 0 Validating file 13.h2w ... 2097152/ 0/ 0/ 0 Validating file 14.h2w ... 2097152/ 0/ 0/ 0 Validating file 15.h2w ... 2041216/ 0/ 0/ 0 Data OK: 14.97 GB (31401344 sectors) Data LOST: 0.00 Byte (0 sectors) Corrupted: 0.00 Byte (0 sectors) Slightly changed: 0.00 Byte (0 sectors) Overwritten: 0.00 Byte (0 sectors) Average reading speed: 18.45 MB/s |
Immer noch auf der Suche, warum der Cubi nach ein paar Tagen abstürzt, wie hier schon im Teil 1 beschrieben.
Dann erscheint im /var/log/syslog jede Stunde noch dieser Eintrag:
1 |
ntpd[549]: frequency file /var/lib/ntp/ntp.drift.TEMP: Permission denied |
Der ntp Client läuft unter dem User ntp wie htop zeigt.
Ein
1 |
service ntp status |
gibt die Meldungen auch aus:
1 2 3 4 5 6 7 8 9 |
● ntp.service - LSB: Start NTP daemon Loaded: loaded (/etc/init.d/ntp) Active: active (running) since Fri 2016-07-22 15:03:19 CEST; 18h ago Process: 508 ExecStop=/etc/init.d/ntp stop (code=exited, status=0/SUCCESS) Process: 529 ExecStart=/etc/init.d/ntp start (code=exited, status=0/SUCCESS) CGroup: /system.slice/ntp.service └─549 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -c /var/lib/ntp/ntp.conf.dhcp -u 104:110 Jul 22 21:03:43 server ntpd[549]: frequency file /var/lib/ntp/ntp.drift.TEMP: Permission denied |
Ok, dann kurzerhand NTP entfernen „Auf der Suche, warum der Cubieboard mit Debian Jessie nach ein paar Tagen abstürzt. Teil 2: Fix NTP: frequency file /var/lib/ntp/ntp.drift.TEMP: Permission denied“ weiterlesen
Wer z.B. nicht alle Kategorien (post_category) ua. eines WordPress Blogs per Hand eingeben möchte, kann auch eine CSV-Datei importieren, die muss folgenden Aufbau haben:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
"post_category" "China " "Deutschland " "Dominikanische Republik " "England " "Frankreich " "Griechenland " "Indonesien " "Israel " "Italien " "Italien Sizilien " "Malediven " "Niederland " "Polen " |
„Wie können CSV Dateien in einen WordPress Blog importiert werden?“ weiterlesen
Java Objekte können leicht nach Json serialisiert und deserialisiert werden mit Gson.
Es braucht nur eine Abhängigkeit in der pom.xml ergänzt zu werden.
Das Beispiel: „Java to Json Beispiel mit Gson“ weiterlesen
Eclipse Neon hat nun einen eingebauten Json Editor, es braucht nun kein anderes Json Plugin installiert werden.
Meistens erzeugt man Objekte in Java mit new. Es gibt aber noch ein paar andere Möglichkeiten.
Wir haben diese Farbe Testklasse:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
package de.wenzlaff.mqtt.client; import java.io.Serializable; /** * Farben Klasse. * * @author Thomas Wenzlaff * */ public class Farbe implements Cloneable, Serializable { private static final long serialVersionUID = 8660877851154300583L; private String farbe = "rot"; public Farbe() { System.out.println("Konstruktor aufruf"); } public String getFarbe() { return farbe; } public void setFarbe(String farbe) { this.farbe = farbe; } @Override public String toString() { return "Farbe: " + farbe + " mit HashCode=" + hashCode() + "\n"; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((farbe == null) ? 0 : farbe.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Farbe other = (Farbe) obj; if (farbe == null) { if (other.farbe != null) return false; } else if (!farbe.equals(other.farbe)) return false; return true; } @Override protected Object clone() throws CloneNotSupportedException { return super.clone(); } } |
und haben diese Möglichkeiten Objekte zu erzeugen. „Welche Möglichkeiten der Java Objekt-Erzeugung gibt es?“ weiterlesen
Es muss nicht immer MQTT.fx sein um MQTT Daten zu empfangen. Der Java-Client Mqtt-Spy hat viel mehr Optionen. Es braucht nur das JAR von Github geladen zu werden und dann ein doppelklick auf das JAR, und schon läuft der MQTT-Client unter Mac, Windows, Linux …
Es braucht nur der Server test.mosquitto.org und als Topic /Anzahl/Flugzeuge/Hannover eingegeben zu werden und schon werden meine Flug-Daten die von einem Raspberry Pi empfangen werden alle 5 Minuten aktualisiert.
„Flugdaten aus Hannover von einem Raspberry Pi per MQTT mit Mqtt-Spy empfangen“ weiterlesen
Fussball? Wie kann man per Java einen MQTT Client mit Paho schreiben, der z.B. die Anzahl Flugzeuge in Hannover anzeigt? Und das innerhalb der ersten Halbzeit, da nur 2 Klassen benötigt werden.
Mein Raspberry Pi sendet an den öffentlichen Testserver test.mosquitto.org unter den Topic /Anzahl/Flugzeuge/Hannover alle 5 Minuten die aktuelle Anzahl, so das dieses Beispiel jeder nachvollziehen kann.
Hier die Architektur:
Wir brauchen zuerst ein Eclipse Maven Projekt mit Java 1.8 mit dieser pom.xml und einen Eintrag des Paho Repo, da es in Maven Central nicht vorhanden ist: „Besser als Fussball: MQTT Java Client mit Paho“ weiterlesen