Wetterstation mit SAMIIO, Arduino und Raspberry Pi

4 Schritt:Schritt 1: Erstellen Sie die Wetterstation Schritt 2: Legen Sie die Arduino und der Temperatursensor Schritt 3: Stellen Sie die Raspberry Pi Schritt 4: Fire it up und die Ergebnisse!

Wetterstation mit SAMIIO, Arduino und Raspberry Pi

Wetterstation mit SAMIIO, Arduino und Raspberry Pi

Dieser Artikel beschreibt, mit SAMI mit einfachen, off-the-shelf-Sensoren und Hardware. Genauer gesagt, werden wir sammeln Klimadaten von einem Low-Cost-Temperatursensor und die Weiterleitung dieser Daten in die Cloud über SAMI APIs. Von dort aus können wir unsere gesammelten Daten in Echtzeit oder historisch zu analysieren. Diese autonome Kombination von Hardware, Software und die Vernetzung wird jetzt als Internet der Dinge (Internet of Things) bezeichnet.
Dieser Artikel setzt voraus Sie Erfahrung Upload-Code haben zu einem Arduino Uno mit der IDE und den Betrieb eines Raspberry Pi .
Hardware-Komponenten werden wir in unserem Demo verwenden
Raspberry Pi mit einer Netzwerkverbindung Arduino Uno mit einem Steckbrett Temperaturfühler ( DHT11 ) USB und Netzkabel sowie Verkabelung für die Steckbrett
Software werden wir schreiben
A Node.js Skript auf auf dem Arduino dem Raspberry Pi A Sketch-Programm Laufen Laufen
Sie können die Codebeispiele hier herunterladen . Schritt 1: Erstellen Sie die Wetterstation




Eine Verbindung mit SAMI (es ist kostenlos, wirklich!)
    Melden Sie sich zunächst in die SAMI User Portal . Wenn Sie nicht über ein Samsung-Konto, können Sie in diesem Schritt erstellen. Klicken Sie, um ein Gerät zu verbinden. Wählen Sie die bereits definierte Gerätetyp "Temp Sensor". Nennen Sie Ihr Gerät mit Ihrem Namen (zB "Dan Temp Sensor"). Klicken Sie auf "Gerät verbinden ...". Sie sind wieder auf dem Armaturenbrett genommen. Klicken Sie auf den Namen des Geräts, die Sie gerade hinzugefügt. In dem Pop-up, klicken Sie auf "Generate Geräte Token ...". Kopieren Sie die Geräte-ID und Geräte Token auf diesem Bildschirm. Diese finden Sie im Code verwenden.
Schritt 2: Legen Sie die Arduino und der Temperatursensor

Wetterstation mit SAMIIO, Arduino und Raspberry Pi

Lassen Sie uns jetzt verbinden Sie den Sensor. Wir sind mit einem DHT11 hier. Sie sind nicht die genaueste, aber sie sind billig und einfach zu unserer einfachen Anwendungsfall zu verwenden sind.
Unter Verwendung der Arduino IDE, laden Sie die Arduino-Code (dht11.ino) an die Uno. Dieser Code liest die Temperaturdaten aus dem Sensor und sendet den Wert (in Fahrenheit) an die serielle Schnittstelle alle 2 Sekunden (Sie können diesen Parameter im Code später ändern, da SAMI begrenzt die Anzahl der Nachrichten pro Tag).
Hier ist der Code:
#include "DHT.h"
#define DHTPIN 2 // Datenstift
#define DHTTYPE DHT11
DHT DHT (DHTPIN, DHTTYPE);
Leere setup () {
Serial.begin (9600);
dht.begin ();
}
Leere Schleife () {
Verzögerung (60000); // 1 min
float f = dht.readTemperature (true);
if (isnan (f)) {
Serial.println ("200"); // Error
zurück;
}
Serial.println (f); 21
} Schritt 3: Einrichten der Raspberry Pi Set

Wetterstation mit SAMIIO, Arduino und Raspberry Pi

Verbinden Sie Ihren Raspberry Pi auf einen Monitor, Maus und Tastatur. Stellen Sie sicher, dass die Ethernet oder WiFi funktioniert, und sicherstellen, dass das Betriebssystem up-to-date:
$ Sudo apt-get update
$ Sudo apt-get upgrade
Falls noch nicht installiert ist, installieren Node.js für ARM, fügen Sie dann die Pakete "Serialport" und "node-rest-Clients via npm:
$ NPM installieren Serialport
$ Npm node-rest-Client installieren
Nun verbinden Sie die serielle Schnittstelle aus dem Arduino an den USB auf dem Raspberry Pi.
Schließlich, kopieren Sie den Code Node.js (weather.js) mit dem Raspberry Pi (Verwendung scp, um sie zu übertragen, oder einfach eine Datei und fügen Sie den Code). Legen Sie die Token-Gerät und Geräte-ID Sie von der Benutzer-Portal in die Platzhalter in den Code gesammelt.

Unten ist der Code:
var sami = "https://api.samsungsami.io/v1.1/messages";
var Inhaber = "Bearer INSERT_TOKEN_HERE";
var sdid = "INSERT_SOURCE_ID";
var Serialport = erfordern ("Serialport")
var Serialport = serialport.SerialPort;
var sp = new Serialport ("/ dev / ttyACM0" {
Baudrate: 9600,
Parser: serialport.parsers.readline ("\ n") 10});
var Client = erfordern ("node-rest-Client") Auftraggeber.
var c = new Client ();
Funktion build_args (temp, ts) {
var args = {
headers: {
"Content-Type": "application / json",
"Autorisierung": Inhaber-
}
Daten: {
"Sdid": sdid,
"Ts": ts,
"Type": "message",
"Daten": {
"Temperatur": temp
}
}
};
zurück args;
}
sp.on ("offen", function () {
sp.on ('Daten', function (data) {
var args = build_args (parseInt (Daten) .ToString (), new Date () valueOf ().);
c.post (sami, args, Funktion (Daten, Antwort) {
console.log (Daten);
});
});
}); Schritt 4: Fire it up und die Ergebnisse!

Wetterstation mit SAMIIO, Arduino und Raspberry Pi

Beginnen wir die Node.js Programm auf dem Raspberry Pi aus der Klemme:
$ Node weather.js
Sie sollten eine JSON-Ausgabe, die die Antwort von SAMI ist zu sehen. Melden Sie sich beim SAMI User Portal erneut.
Gerätedaten anzeigen, wie es durch Klicken auf das Vergrößerungsglas in der Gerätefeld erzeugt.
Wo kann man von hier aus?
Der Himmel ist das Limit. Der DHT11 zeichnet auch Feuchtigkeit, und Sie können Ihre eigenen Gerätetyp mit mehreren Feldern definieren, mit der SAMI Developer Portal . So könnte ein logischer nächster Schritt das Hinzufügen Feuchtigkeit der Mischung sein.

Außerdem wäre es nicht interessant zu wissen, wo Ihre Wetterstation liegt? Was ist mit Sammeln GPS-Koordinaten von ein zusätzlicher Sensor-oder sogar fest codierten, wenn die Wetterstation nicht verschoben werden? Das könnte sicherlich mit mehr Datenfelder hinzugefügt werden.
Es gibt auch andere Sensoren, Luftdruck und Windgeschwindigkeit zu ermitteln. Warum nicht eine vollständige Palette von Wetterdaten zu erfassen für Ihr spezielles Mikroklima, egal wo Sie sind?
Dan Gross
Regisseur
Samsung SSIC