/**************************************** * Include Libraries ****************************************/ #include <LiquidCrystal_PCF8574.h> #include <Wire.h> #include <OneWire.h> #include <DallasTemperature.h> #include "Ubidots.h" LiquidCrystal_PCF8574 lcd(0x27); // set the LCD address to 0x27 for a 16 chars and 2 line display // DS18B20 data wire #define ONE_WIRE_BUS 0 // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs) OneWire oneWire(ONE_WIRE_BUS); // Pass our oneWire reference to Dallas Temperature. DallasTemperature sensors(&oneWire); const char* UBIDOTS_TOKEN = "your-ubidots_token"; // Put here your Ubidots TOKEN const char* WIFI_SSID = "your-ssid"; // Put here your Wi-Fi SSID const char* WIFI_PASS = "your-password"; // Put here your Wi-Fi password Ubidots ubidots(UBIDOTS_TOKEN, UBI_HTTP); // Ubidots ubidots(UBIDOTS_TOKEN, UBI_TCP); // Uncomment to use TCP // Ubidots ubidots(UBIDOTS_TOKEN, UBI_UDP); // Uncomment to use UDP int sensor; // Variable para almacenar el valor leído por el sensor float tempC; #define PIN_I0 16 #define PIN_I1 14 #define PIN_I2 12 #define I0 digitalRead(PIN_I0) #define I1 digitalRead(PIN_I1) #define I2 digitalRead(PIN_I2) #define Q0 2 #define Q1 15 #define Q2 13 byte alto[] = {0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,}; byte bajo[] = {0x00,0x1F,0x11,0x11,0x11,0x11,0x1F,0x00,}; void estados() { if (WiFi.status() == WL_CONNECTED) { lcd.setCursor(0,0); lcd.print("Conectado a Ubidots "); lcd.setCursor(0,1); lcd.print("I: "); lcd.write(I0); lcd.write(I1); lcd.write(I2); lcd.setCursor(0,2); lcd.print(" 012"); lcd.setCursor(0,3); lcd.print("Q: "); lcd.write(digitalRead(Q0)); lcd.write(digitalRead(Q1)); lcd.write(digitalRead(Q2)); lcd.setCursor(12,1); lcd.print("A0: "); lcd.setCursor(15,1); lcd.print(sensor); lcd.setCursor(12,2); lcd.print("T"); lcd.print((char)223); lcd.print(": "); lcd.setCursor(15,2); if (tempC == -127) lcd.print("Error"); else lcd.print(tempC,1); } else { lcd.clear(); delay(1000); lcd.print("Conectando a Ubidots"); delay(1000); } } void setup() { // put your setup code here, to run once: pinMode(PIN_I0, INPUT); pinMode(PIN_I1, INPUT); pinMode(PIN_I2, INPUT); pinMode(Q0, OUTPUT); pinMode(Q1, OUTPUT); pinMode(Q2, OUTPUT); sensors.begin(); Serial.begin(115200); lcd.begin(20, 4); // initialize the lcd lcd.createChar(0, bajo); lcd.createChar(1, alto); delay(200); lcd.setBacklight(255); estados(); while (!ubidots.wifiConnect(WIFI_SSID, WIFI_PASS)) { delay(500); } ubidots.setDebug(true); // Uncomment this line for printing debug messages } void loop() { // put your main code here, to run repeatedly: sensor = analogRead(A0); sensors.requestTemperatures(); // Send the command to get temperatures tempC = sensors.getTempCByIndex(0); estados(); ubidots.add("sensor", sensor); // Change for your variable name ubidots.add("temperatura", tempC); ubidots.add("i0", I0); ubidots.add("i1", I1); ubidots.add("i2", I2); bool bufferSent = false; bufferSent = ubidots.send(); // Will send data to a device label that matches the device Id if (bufferSent) { // Do something if values were sent properly Serial.println("Values sent by the device"); } digitalWrite(Q0, ubidots.get("your-device_label", "q0")); digitalWrite(Q1, ubidots.get("your-device_label", "q1")); digitalWrite(Q2, ubidots.get("your-device_label", "q2")); delay(1000); }