Przy pracy korzystałem z poradnika Ubidots: Smart Switch Tutorial – Ubidots IoT platform
Biblioteki:
PubSubClient
UbidotsESPMQTT
Z tej drugiej wybieramy skecz subscribe.ino
Należy go lekko zmodyfikować, bo w oryginale nie ma zdefiniowanego MQTTCLIENTNAME i części umożliwiającej włączenie diody na D0 (pin16)
Niestety nie wiem jak uruchomić więcej diód.
/**************************************** * Include Libraries ****************************************/ #include "UbidotsESPMQTT.h" /**************************************** * Define Constants ****************************************/ #define TOKEN "xxxxxxxxxxxxxxx" // Twój Ubidots TOKEN #define WIFINAME "xxxx" // Identyfikator Twojej sieci WiFi (SSID) #define WIFIPASS "xxxx" // Hasło dostępu do sieci #define MQTTCLIENTNAME "xxxxxx" // Twoja nazwa klienta. Sami ją tworzymy i wpisujemy, powinna być trudna do odgadnięcia Ubidots client(TOKEN, MQTTCLIENTNAME); /**************************************** * Auxiliar Functions ****************************************/ void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); for (int i=0;i<length;i++) { Serial.print((char)payload[i]); } Serial.println(); if((char)payload[0] == '1'){ digitalWrite(16, HIGH); } else{ digitalWrite(16, LOW); } } /**************************************** * Main Functions ****************************************/ void setup() { // put your setup code here, to run once: Serial.begin(115200); client.setDebug(true); // Pass a true or false bool value to activate debug messages client.wifiConnection(WIFINAME, WIFIPASS); client.begin(callback); pinMode(16, OUTPUT); client.ubidotsSubscribe("switch","my-switch"); //Insert the dataSource and Variable's Labels } void loop() { // put your main code here, to run repeatedly: if(!client.connected()){ client.reconnect(); client.ubidotsSubscribe("switch","my-switch"); //Insert the dataSource and Variable's Labels } client.loop(); }
Dodatkowe informacje:
SSID (ang. service set identifier) – identyfikator sieci składający się maksymalnie z 32 znaków, dodawany do nagłówków pakietów wysyłanych przez bezprzewodową sieć lokalną. Pełni on rolę loginu przy próbie nawiązywania połączeń z punktami dostępowymi.