制御の試し
参考資料1そのまま。
/* * Relay Shield - Blink * Turns on the relay for two seconds, then off for two seconds, repeatedly. * * Relay Shield transistor closes relay when D1 is HIGH */ const int relayPin = D1; const long interval = 2000; // pause for two seconds void setup() { pinMode(relayPin, OUTPUT); } void loop() { digitalWrite(relayPin, HIGH); // turn on relay with voltage HIGH delay(interval); // pause digitalWrite(relayPin, LOW); // turn off relay with voltage LOW delay(interval); // pause }
firebaseから制御
FAN_Onエントリーをみて、リレーを制御。
#include "Firebase_ESP_Client.h" #include <ESP8266WiFi.h> #define relayPin D1 #define FIREBASE_HOST "test2-***.firebaseio.com" // Enter the Firebase Database URL Without Https and backslash #define API_KEY "AIzaSyDfl-s-7-**********" FirebaseData fbdo; FirebaseAuth auth; FirebaseConfig config; FirebaseJson json; #define WIFI_SSID "SSID003" // Change the name of your WIFI #define WIFI_PASSWORD "12345" // Change the password of your WIFI #define USER_EMAIL "xxx@yyy.net" #define USER_PASSWORD "12345" void setup() { pinMode(relayPin, OUTPUT); Serial.begin(115200); Serial.println("Relay for FAN Test"); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println (""); Serial.println ("WiFi Connected!"); /* Assign the project host and api key (required) */ config.host = FIREBASE_HOST; config.api_key = API_KEY; /* Assign the user sign in credentials */ auth.user.email = USER_EMAIL; auth.user.password = USER_PASSWORD; Firebase.begin(&config, &auth); Firebase.reconnectWiFi(true); } void loop() { String target; // if (Firebase.RTDB.getBool(&fbdo, "Thermostat/FAN_On")) { // target = fbdo.boolData(); if (Firebase.RTDB.getString(&fbdo, "Thermostat/FAN_On")) { target = fbdo.stringData(); Serial.println(target); Serial.println(fbdo.dataType()); digitalWrite(relayPin, target.equals("true")); } else { Serial.println("FAILED"); Serial.println("REASON: " + fbdo.errorReason()); Serial.println("------------------------------------"); Serial.println(); } delay(500); }