Jedes Mal, wenn wir einen neuen Kunden gewinnen, gewinnt Mario Bros. eine Münze
Wie jedes Startup freuen wir uns jedes Mal, wenn sich unsere Kennzahlen positiv entwickeln, und manchmal freuen wir uns sogar noch mehr, wenn wir jedes Mal, wenn wir einen neuen Kunden gewinnen, eine Mario's Coin erhalten... Wahrscheinlich fragen Sie sich jetzt, wie das möglich ist, richtig?
Ubidots eine leistungsstarke Monitoring-Plattform , haben wir uns sofort für sie entschieden, um mit dem Monitoring von Kennzahlen in unseren eigenen dashboards . Was wir aber eigentlich wollten, war ein System zu schaffen, das alle unsere Teammitglieder jedes Mal benachrichtigt, wenn wir einen neuen Kunden gewinnen, damit wir uns freuen und feiern können.
Eine der ersten Fragen war: Wie können wir unser gesamtes Team täglich motivieren, indem wir über neue Kunden informiert werden? Die Antwort war schnell gefunden: Wir kauften Polizeisirenen. Die eigentliche Herausforderung bestand jedoch darin, die gängigen, günstigen Polizeisirenen in Ubidotszu integrieren. Ein Vorteil der Ubidots -Teammitglieder ist, dass wir alle Vollzeit-Hacker sind und daher in dieser Angelegenheit sehr kreativ werden konnten.
Um die Sirenen zu integrieren, entschieden wir uns für zwei kundenspezifische ESP8266-Entwicklungsboards. Diese ermöglichen uns die Ansteuerung eines Relais, um den Status der Sirenen zu regeln. Da wir das Team warnen wollten, der Klang einer Polizeisirene aber etwas störend sein könnte, entschieden wir uns, die Geräusche von Mario Bros. zu verwenden, um das Ganze spannender und weniger aufdringlich zu gestalten.
Am Ende erhielten wir folgendes Ergebnis:
Das Hauptziel dieses Beitrags ist es, alle technischen Details des Projekts mit unserer Ubidots-Community zu teilen, damit ihr es nachbauen und in Echtzeit über alles Messbare informiert bleiben könnt. (Wenn ihr einen YouTube-Kanal startet, könnte dies ein passendes Projekt für euch sein ;) )
Lasst uns mit dem Hacken beginnen!
Schritt für Schritt
- Projektübersicht
- Ubidots -Einrichtung
- Programmierung
- Verdrahtung
- Zusammenfassung
Anforderungen
- (1) Ubidots -Konto
- (2) ESP8266 - 1-Kanal-Relaismodul
- (1) WTV020-SD-16P Mini-SD-Karten-MP3-Soundmodul
- (1) Metalllautsprecher mit Kabeln – 8 Ohm, 0,5 W
- Elektrische Kabel
- (1) Rotierendes Polizeilicht – Grün
- (1) Rotierendes Polizeilicht
1. Projektübersicht
Wie bereits erwähnt, haben wir uns für den Kauf zweier Polizeisirenen entschieden, um bei jedem Neukunden oder Kundenverlust benachrichtigt zu werden. Die Sirenen unterscheiden sich durch ihre Farben: Ertönt die grüne Sirene, haben wir einen Neukunden gewonnen. Ertönt die rote Sirene, haben wir einen Kunden verloren.
Um die Sirenen abhängig vom Client-Status steuern zu können, haben wir Ubidots Kernmetriken mithilfe einer UbiFunction Ubidots UbiFunction wird in dieser Anleitung nicht beschrieben. Weitere Informationen finden Sie in dieser Anleitung .
Nachdem die Kundendaten bereits in ein Ubidots Konto , nahmen wir einige Konfigurationen auf der Plattform vor, um Variablen einzurichten. Anschließend mussten wir ein Abonnement für die Variablen über MQTT , um das jeweilige Relais, die grüne oder rote Sirene, auszulösen. Und hier geschieht die Magie: Mario gewinnt eine Münze oder verliert ein Leben … Wir müssen realistisch bleiben!
2. Ubidots -Einrichtung
Die Variablen, die für die Statusmeldung der Clients zuständig sind, werden nach der Einrichtung der UbiFunction . Zu Testzwecken erstellen wir ein neues Gerät mit den gewünschten Variablen.
YouTube-Kanal , Twitter , Instagram oder allgemein Kennzahlen im Arbeitsalltag erfassen möchten UbiFunction . Anschließend können Sie die Kennzahlen abrufen und direkt in Ihrem Ubidots Konto veröffentlichen.
Da es nichts weiter zu sagen gibt, gehen wir nun ins Detail, wie man ein Ubidots -Event einrichtet, um Fehlalarme zu vermeiden. Wir wollen ja nicht, dass unser Team umsonst feiert.
1) Gehen Sie in Ubidots Gerät “ und erstellen Sie ein neues Gerät mit dem Namen „ Kunde “. Klicken Sie dazu auf das blaue Pluszeichen oben rechts auf dem Bildschirm. Wählen Sie anschließend „ Leere Geräte“ aus und vergeben Sie den gewünschten Namen.
2) Gehen Sie zum zuvor erstellten Gerät und fügen Sie zwei neue Rohvariablen . Um die Variablen zu erstellen, gehen Sie zum Gerätebereich, klicken Sie auf „ Variable hinzufügen > Roh “ und vergeben Sie einen Namen für die zu erstellende Variable. In diesem Projekt haben wir die Variablen wie folgt benannt:
- Abwanderung: Variable, die jedes Mal ein positives Flag (1) empfängt, wenn ein Kunde abwandert.
- new-client: Variable, die jedes Mal ein positives Flag (1) empfängt, wenn wir einen neuen Client erhalten.
Da die Variablen bereits Daten empfangen, ist es nun an der Zeit, ein paar Tricks anzuwenden, um Fehlalarme zu vermeiden, falls unsere Geräte die Verbindung verlieren.
3) Die installierten Module arbeiten mit dem MQTT-Kommunikationsprotokoll. Falls Sie damit nicht vertraut sind, empfehlen wir Ihnen dringend, die offizielle Dokumentation .
Dieses Protokoll verfügt über eine besondere Eigenschaft namens „ Beibehaltene Nachricht “. Im Wesentlichen ermöglicht es dem Broker, die letzte Nachricht eines bestimmten Themas zu speichern, indem er das entsprechende Flag setzt. Immer wenn ein Gerät ein Abonnement für dieses Thema einrichtet, sendet der Broker automatisch die zuletzt gespeicherte Nachricht zurück.
Ubidots -Event eingerichtet , das die Variablen „ churn “ und „ new-client “ direkt nach dem Empfang des positiven Flags (1) auf 0 setzt. Damit wollen wir Fehlalarme vermeiden, falls die Sirenen die Internetverbindung verlieren.
Stellen Sie sich vor, die grüne Sirene wird aktiviert und plötzlich verliert das WLAN-Modul die Verbindung. Was könnte die Ursache sein? Sobald das WLAN-Modul die Verbindung wiederherstellt, wird auch das Abonnement der Sirene mit der Variable „new-client“ neu eingerichtet. War der letzte Wert das positive Flag -1, wird die Sirene automatisch wieder aktiviert, sobald die Benachrichtigung für diesen Client eine ältere ist.
Um ein Ubidots in Ihrem Ubidots auf „ Daten > Ereignisse . Erstellen Sie anschließend ein neues Ereignis, indem Sie „ + Ereignis hinzufügen “ auswählen. Wählen Sie in den Ereigniseinstellungen das Gerät und die Variable , mit denen Sie die Bedingungen für Ihr Ereignis konfigurieren möchten. In unserem Fall ist das Gerät „ Kunde “ und die Variablen sind „ Kundenabwanderung “ und „ Neukunde “.
HINWEIS : Dieses Ereignis muss für beide Variablen unabhängig voneinander erstellt werden.
Nachdem die Variable ausgewählt wurde, stellen Sie sicher, dass der Auslöser des Ereignisses wie folgt konfiguriert ist:
- " new-client " (Variable) - Wert -> ist gleich - 1 für 0 Minuten.
Um mit der Aktionskonfiguration fortzufahren, klicken Sie auf den Pfeil nach rechts unten rechts auf der Seite. Wählen Sie als Aktion Variable festlegen dieselbe Variable wie beim Auslöser und weisen Sie ihr den Wert 0
Zum Abschluss speichern Sie die Änderungen mit den Pfeiltasten nach rechts.
Sobald das Ereignis erfolgreich erstellt wurde, wiederholen Sie den gleichen Vorgang, um ein zweites Ereignis für die fehlende Variable zu erstellen.
Nach der Einrichtung der Ereignisse ist das erwartete Verhalten, dass jedes Mal, wenn die Variable ein positives Signal empfängt, ein Wert von 1 automatisch auf 0 gesetzt wird. Zur besseren Veranschaulichung siehe die Abbildung unten:
4. Wie Sie wahrscheinlich bereits bemerkt haben, aktualisieren die Variablen für „ Neukunden “ und „ Abwanderungen “ lediglich ein positives Flag, sobald Ubidots synthetische Variable einrichten, die die empfangenen Flags über einen definierten Zeitraum summiert.
Um die synthetische Variable zu erstellen, wählen Sie im Gerätebereich „ Kunde die Option „+Variable hinzufügen > Synthetisch . Wenden Sie anschließend die folgende Formel an:
sum(x, data_range) : Gibt die Summe der dots im angegebenen Datenbereich data_range zurück.
Wo:
- X: ist die gewünschte Variable
- Data_range: der Zeitraum, für den die Summe berechnet werden soll.
Die endgültige Formel für jede Variable sollte lauten:
- sum(“new-client”, “1M”)
- sum(“churn”, “1M”)
Um die Variablenerstellung abzuschließen, wählen Sie „Akzeptieren“ und vergeben Sie einen beliebigen Namen.
An dieser Stelle können Sie die Gesamtzahl der Neukunden bzw. der Kundenabwanderungen im Laufe eines Monats einsehen.
5. Nachdem Ihr Ubidots -Konto nun eingerichtet ist, können Sie Ihrer Kreativität freien Lauf lassen und ein individuelles dashboard , um all Ihre Daten übersichtlich darzustellen. In dieser Anleitung Ubidots einrichten können .
3. Programmierung
3.1. Sirenensteuerung
Das Modul zur Statussteuerung der Sirenen ist der ESP8266 mit einem Kanalrelais. Der Basiscode für beide Sirenen ist identisch; die einzige Änderung betrifft die Variablenbezeichnung. Weisen Sie der Variablenbezeichnung diejenige zu, mit der das ESP8266-Modul die Verbindung herstellen soll, um die richtige Sirene zu aktivieren.
ESP8266 nutzen zu können , müssen Sie diese mithilfe des vorkonfigurierten Arduino Board Managers installieren. Falls Sie mit dem Hinzufügen eines Boards in der Arduino IDE nicht vertraut sind, finden Sie in diesem Artikel weitere Informationen .
2. Nachdem die ESP8266-Plattform installiert ist, wählen Sie das ESP8266-Gerät aus, mit dem Sie arbeiten. In diesem Fall verwenden wir ein „ Generisches ESP8266-Modul “. Um Ihr Board in der Arduino IDE auszuwählen, wählen Sie „Werkzeuge“ > „Board“ und dann „Generisches ESP8266-Modul“ .
Ubidots MQTTESP8266 herunter und installieren Sie sie . Eine detaillierte Anleitung zur Installation von Bibliotheken mit der Arduino IDE finden Sie in diesem Leitfaden .
4. Mit den folgenden Beispielcodes können Sie nun die Variablen abonnieren, die die Werte ausgeben.
Nachdem Sie den Code eingegeben haben, müssen Sie Ihr eindeutiges Ubidots Token , die SSID (den WLAN-Namen) und das Passwort des verfügbaren Netzwerks zuweisen. Falls Ihre Variablen und Ihr Gerät andere Bezeichnungen verwenden als die in dieser Anleitung, stellen Sie sicher, dass Sie die richtigen zuweisen.
- Beispielcode für die rote Sirene:
/**************************************** * Bibliotheken einbinden ****************************************/ #include "UbidotsESPMQTT.h" /**************************************** * Konstanten definieren ****************************************/ #define TOKEN "***" // Ihr Ubidots Token #define WIFINAME "***" // Ihre SSID #define WIFIPASS "***" // Ihr WLAN-Passwort #define DEVICE_LABEL "customers" // Hier die Bezeichnung Ihres Ubidots -Geräts einfügen #define VARIABLE_LABEL "churn" // Hier die Bezeichnung Ihrer Ubidots Variable einfügen Ubidots client(TOKEN); byte relayOn[] = {0xA0, 0x01, 0x01, 0xA2}; //0xA00101A2 byte relayOff[] = {0xA0, 0x01, 0x00, 0xA1}; //0xA00100A1 /**************************************** * Hilfsfunktionen ****************************************/ void callback(char* topic, byte* payload, unsigned int length) { if ((char)payload[0]=='1') // Relay ein { Serial.write(relayOn, sizeof(relayOn)); delay(10000); Serial.write(relayOff, sizeof(relayOff)); } } /**************************************** * Hauptfunktionen ****************************************/ void setup() { // Hier Ihren Setup-Code einfügen, der einmalig ausgeführt wird:ubidotsSetBroker("ubidots"); // Broker für das Geschäftskonto korrekt konfigurieren client.setDebug(false); // Debug-Meldungen aktivieren (true oder false) client.wifiConnection(WIFINAME, WIFIPASS); client.begin(callback);ubidotsSubscribe(DEVICE_LABEL, VARIABLE_LABEL); // Datenquelle und Variablenbezeichnungen einfügen Serial.begin(9600); } void loop() { if(!client.connected()) { client.reconnect();ubidotsSubscribe(DEVICE_LABEL, VARIABLE_LABEL); // Datenquelle und Variablenbezeichnungen einfügen } client.loop(); }
- Beispielcode für die grüne Sirene:
/**************************************** * Bibliotheken einbinden ****************************************/ #include "UbidotsESPMQTT.h" /**************************************** * Konstanten definieren ****************************************/ #define TOKEN "***" // Ihr Ubidots -Token #define WIFINAME "***" // Ihre SSID #define WIFIPASS "***" // Ihr WLAN-Passwort #define DEVICE_LABEL "customers" // Hier die Bezeichnung Ihres Ubidots -Geräts einfügen #define VARIABLE_LABEL "new-customer" // Hier die Bezeichnung Ihrer Ubidots Variable einfügen Ubidots client(TOKEN); byte relayOn[] = {0xA0, 0x01, 0x01, 0xA2}; //0xA00101A2 byte relayOff[] = {0xA0, 0x01, 0x00, 0xA1}; //0xA00100A1 /**************************************** * Hilfsfunktionen ****************************************/ void callback(char* topic, byte* payload, unsigned int length) { if ((char)payload[0]=='1') // Relay ein { Serial.write(relayOn, sizeof(relayOn)); delay(10000); Serial.write(relayOff, sizeof(relayOff)); } } /**************************************** * Hauptfunktionen ****************************************/ void setup() { // Hier Ihren Setup-Code einfügen, der einmalig ausgeführt wird:ubidotsSetBroker("ubidots"); // Broker für das Geschäftskonto korrekt konfigurieren client.setDebug(false); // Debug-Meldungen aktivieren (true oder false) client.wifiConnection(WIFINAME, WIFIPASS); client.begin(callback);ubidotsSubscribe(DEVICE_LABEL, VARIABLE_LABEL); // Datenquelle und Variablenbezeichnungen einfügen Serial.begin(9600); } void loop() { if(!client.connected()) { client.reconnect();ubidotsSubscribe(DEVICE_LABEL, VARIABLE_LABEL); // Datenquelle und Variablenbezeichnungen einfügen } client.loop(); }
5. Überprüfen Sie Ihren Code in der Arduino IDE. Klicken Sie dazu in der oberen linken Ecke der Arduino IDE auf das Häkchen- Symbol, um Ihren Code zu überprüfen.
6. Laden Sie den Code in Ihr „Generisches ESP8266-Modul“ . Wählen Sie dazu das Symbol mit dem „ Pfeil nach rechts“ neben dem „Häkchen“-Symbol aus.
7. Um die Konnektivität des Geräts und die gesendeten Daten zu überprüfen, öffnen Sie den seriellen Monitor , indem Sie das Lupensymbol in der oberen rechten Ecke der Arduino IDE auswählen, um die Verbindungsprotokolle logs .
3.2. Geräuschsteuerung
Das für die MP3-Steuerung zuständige Modul ist das WEMOS D1. Im Prinzip richtet der Code das Abonnement mit denselben Variablen ein, die für jede Sirene konfiguriert sind, aber dadurch werden auch die Geräusche von Mario Bros. wiedergegeben. Hinweis:
- Wenn die grüne Sirene ertönt, gibt der Lautsprecher den Ton von Mario Bros wieder, wenn er eine Münze gewinnt – Ubidots gewinnt einen neuen Kunden.
- Wenn die rote Sirene ertönt, gibt der Lautsprecher das Geräusch wieder, als würde Mario Bros ein Leben verlieren – Ubidots verliert einen neuen Kunden.
1. Nachdem die ESP8266-Plattform installiert ist, wählen Sie das ESP8266-Gerät aus, mit dem Sie arbeiten. In diesem Fall verwenden wir ein „ WeMos D1 “. Um Ihr Board in der Arduino IDE auszuwählen, wählen Sie „Werkzeuge“ > „Board „WeMos D1““ .
2. Falls Sie dies im vorherigen Schritt nicht getan haben, laden Sie die Ubidots MQTTESP8266 -Bibliothek herunter und installieren Sie sie. Eine detaillierte Anleitung zur Installation von Bibliotheken mit der Arduino IDE finden Sie in diesem Leitfaden .
3. Fügen Sie den folgenden Code in Ihre Arduino IDE ein. Nachdem Sie den Code eingefügt haben, stellen Sie sicher, dass Sie Ihr eindeutiges Ubidots Token , die SSID (den WLAN-Namen) und das Passwort des verfügbaren Netzwerks zuweisen.
/**************************************** * Bibliotheken einbinden ****************************************/ #include "UbidotsESPMQTT.h" /**************************************** * Konstanten definieren ****************************************/ #define TOKEN "***" // Ihr Ubidots Token #define WIFINAME "***" // Ihre SSID #define WIFIPASS "***" // Ihr WLAN-Passwort #define DEVICE_LABEL "customers" // Hier die Bezeichnung Ihres Ubidots -Geräts einfügen #define RED_SIREN "churn" // Hier die Bezeichnung Ihrer Ubidots Variable einfügen #define GREEN_SIREN "new-customer" // Hier die Bezeichnung Ihrer Ubidots Variable einfügen #define RESET D5 #define NEXT D6 #define PLAY D7 Ubidots client(TOKEN); /**************************************** * Hilfsfunktionen ****************************************/ void activate(int pin) { digitalWrite(pin, LOW); delay(500); digitalWrite(pin, HIGH); } void callback(char* topic, byte* payload, unsigned int length) { char val = payload[0]; //Serial.println(topic); if (strstr(topic,"new-customer") && val == '1') { activate(RESET); activate(PLAY); delay(2000); } else if (strstr(topic,"churn") && val == '1') { activate(RESET); activate(NEXT); delay(2000); } } /**************************************** * Hauptfunktionen ****************************************/ void setup() { pinMode(RESET, OUTPUT); pinMode(NEXT, OUTPUT); pinMode(PLAY, OUTPUT); digitalWrite(RESET, HIGH); digitalWrite(NEXT, HIGH); digitalWrite(PLAY, HIGH); // Hier Ihren Setup-Code einfügen, der einmalig ausgeführt wird:ubidotsSetBroker("ubidots"); // Broker für das Geschäftskonto korrekt konfigurieren client.setDebug(false); // Debug-Meldungen aktivieren (true oder false) client.wifiConnection(WIFINAME, WIFIPASS); client.begin(callback);ubidotsSubscribe(DEVICE_LABEL, GREEN_SIREN); // Datenquelle und Variablenbezeichnungen einfügenubidotsSubscribe(DEVICE_LABEL, RED_SIREN); Serial.begin(9600); } void loop() { if(!client.connected()) { client.reconnect(); client.ubidotsSubscribe(DEVICE_LABEL, GREEN_SIREN); //Fügt die Datenquelle und die Variablenbezeichnungen ein.ubidotsSubscribe(DEVICE_LABEL, RED_SIREN); } client.loop(); }
4. Überprüfen Sie Ihren Code in der Arduino IDE. Klicken Sie dazu in der oberen linken Ecke der Arduino IDE auf das Häkchen- Symbol, um Ihren Code zu überprüfen.
5. Laden Sie den Code in Ihr „WeMos D1“ . Wählen Sie dazu das Symbol mit dem Pfeil nach rechts neben dem Häkchen-Symbol aus.
diesen Leitfaden anzusehen – er ist einer der besten für den Einstieg.
Aus unserer Erfahrung heraus sollten Sie sicherstellen, dass Sie das richtige Format sowohl für die SD-Karte als auch für die abzuspielenden Lieder verwenden.
- Größe der Micro-SD-Karte: maximal 1 oder 2 GB.
- Micro-SD-Format: FAT - Wir empfehlen Ihnen, Ihre SD-Karte mit dem SD Card Formatter .
- Musikformat: AD4 - Wir empfehlen die Verwendung von AD4Converter .
Um Ihnen ein paar Minuten Arbeit zu ersparen, finden Sie in diesem Ordner die für das Projekt verwendeten Mario Bros.-Sounds.
Gemäß der im Code verwendeten Logik gibt das erste Lied, das auf der Micro-SD-Karte als „0000“ identifiziert ist, den Sound von Mario Bros wieder, wenn er eine Münze gewinnt, und das zweite Lied, das als „0001“ identifiziert ist, gibt den Sound von Mario Bros wieder, wenn er ein Leben verliert.
4. Verkabelung
WICHTIGER HINWEIS: Bevor Sie alle Verbindungen herstellen, stellen Sie sicher, dass der Beispielcode bereits auf den Boards hochgeladen ist. Prüfen Sie außerdem, ob diese ordnungsgemäß mit Ihrem Ubidots Konto funktionieren.
Um die Verkabelung verständlicher zu gestalten, habe ich den Vorgang in verschiedene Schritte unterteilt. Folgen Sie dem untenstehenden Schaltplan und der Verdrahtungstabelle, um die korrekten Verbindungen herzustellen.
- MP3-Modulsteuerung
Um das ESP8266 + 1-Kanal-Relaismodul in die Sirenen zu integrieren, mussten wir einige Änderungen an der Originalverkabelung jeder Sirene vornehmen. Im Wesentlichen haben wir den manuellen Schalter jeder Sirene entfernt und durch das Relaismodul ersetzt.
Um jedes ESP8266 + 1-Kanal-Relaismodul mit Strom versorgen zu können, verwendeten wir ein Handy-Ladegerät, um die Eingangsspannung von 110 V auf 5 V zu regeln.
Bitte beachten Sie das untenstehende Diagramm als Referenz dafür, wie die Modifikation an der ursprünglichen Verkabelung der Sirenen vorgenommen wird und wie die ESP8266-Module mit Strom versorgt werden.
- MP3-Modulsteuerung
Das MP3-Modul verfügt über verschiedene Konfigurationen . Basierend auf den Anforderungen dieses Projekts haben wir uns für die Verwendung der „MP3-Modus-Anwendungsschaltung“ entschieden.
Die korrekten Konfigurationen entnehmen Sie bitte der untenstehenden Verdrahtungstabelle und dem Schaltplan:
- Alle Systeme
Zum Schluss schalten Sie die WEMOS-Platine mit dem 5V-Ausgang des verwendeten Reglers ein:
Nachdem die Kabelverbindungen hergestellt sind, werden alle Komponenten in die Sirenen eingesetzt und die Installation fortgesetzt. Wir haben uns entschieden, die Sirenen an der Hauptwand unseres Büros anzubringen.
5. Zusammenfassung
Wir hatten viel Spaß beim Hacken, als wir die Funktionalität der Polizeisirenen nachbauten, um das gesamte Team in Echtzeit über den Status der Kunden zu informieren, aber auf eine lustige Art und Weise unter Verwendung von Mario Bros.-Sounds.
Uns ist bewusst, dass es sich um ein internes Projekt handelt, das möglicherweise nicht für jeden gleichermaßen nützlich ist. Wir halten es jedoch für relevant für all diejenigen, die ihren YouTube-Kanal oderlogs starten oder auch in einem Unternehmen arbeiten und Kennzahlen auf benutzerfreundliche Weise und in Echtzeit erfassen möchten, wann immer sie einen neuen Abonnenten, Besucher oder Kunden gewinnen.
Wenn Sie, genau wie wir, ein leidenschaftlicher Bastler sind und dieses Projekt nachbauen möchten, teilen Sie es gerne. Vergessen Sie dabei aber nicht, uns über unsere Social-Media-Kanäle ( Facebook , LinkedIn , Twitter , Instagram ubidots . Wir freuen uns, es mit Ubidots -Community zu teilen.
Weitere nützliche IoT Projekte: