#include // Atom のヘッダファイルを準備 #include #include #include const char* url = "http://user:pass@hoge.orz/remocon/read.cgi"; // 現在時刻&設定内容の場所 const char* ssid = "WiFi_ssid"; // SSID const char* password = "WiFi_pass"; // パスワード const uint16_t kIrLed = 12; // 赤外線 LED 送信用のポート番号 IRSenderBitBang irSender(kIrLed); // 赤外線LEDが接続されているピン番号 HeatpumpIR *airCon = new MitsubishiFDHeatpumpIR(); // 三菱エアコンのインスタンス // FastLED ライブラリの設定(CRGB構造体) CRGB dispColor(uint8_t r, uint8_t g, uint8_t b) { return (CRGB)((r << 16) | (g << 8) | b); } WiFiMulti WiFiMulti; // Wi-Fi を使いたい void setup() { Serial.begin(115200); Serial.println(""); M5.begin(true, false, true); // 本体初期化(UART有効, I2C無効, LED有効) M5.dis.drawpix(0, dispColor(0, 0, 0)); // LED全消灯(赤, 緑, 青) WiFiMulti.addAP(ssid, password); // 「SSID」と「パスワード」を設定しておく Serial.print("Fi-Fi Connecting."); } void loop() { while (WiFiMulti.run() != WL_CONNECTED) { Serial.print("."); M5.dis.drawpix(0, dispColor(255, 0, 0)); //LED(赤) delay(500); } Serial.print("ADDR: "); Serial.println(WiFi.localIP()); M5.dis.drawpix(0, dispColor(20, 20, 20)); // LED(白) HTTPClient http; http.begin(url); Serial.print("GET: "); int httpCode = http.GET(); // GET メソッドでファイルを取得 Serial.println(httpCode); // Serial.println(http.errorToString(httpCode)); if (httpCode > 0) { String htdoc = http.getString(); // 取得したファイルの内容 Serial.println(htdoc); // YYYY/MM/DD HH:YY:MM(WDAY)\ts?,HH:MM e?,HH:MM m? // 現在年/月/日 時:分:秒(曜日)\t開始フラグ,時:分 終了フラグ,時:分 モード String now_hour = htdoc.substring(11, 13); // 現在時を取得 String now_min = htdoc.substring(14, 16); // 現在分を取得 String st = htdoc.substring(25, 27); // 開始フラグを取得 String ed = htdoc.substring(34, 36); // 終了フラグを取得 String st_hour = htdoc.substring(28, 30); // 開始時 String st_min = htdoc.substring(31, 33); // 開始分 String ed_hour = htdoc.substring(37, 39); // 終了時 String ed_min = htdoc.substring(40, 42); // 終了分 String md = htdoc.substring(43, 45); // モードを取得 if (st == "s1" && now_hour == st_hour && now_min == st_min) { if (md == "m1") { Serial.println("Cool"); M5.dis.drawpix(0, dispColor(0, 0, 255)); //LED(青) airCon->send(irSender, POWER_ON, MODE_COOL, FAN_1, 28, VDIR_DOWN, HDIR_AUTO); // 冷房 } else if (md == "m2") { Serial.println("Hot"); M5.dis.drawpix(0, dispColor(255, 255, 0)); //LED(黄) airCon->send(irSender, POWER_ON, MODE_HEAT, FAN_1, 16, VDIR_DOWN, HDIR_AUTO); // 暖房 } else { Serial.println("Dry"); M5.dis.drawpix(0, dispColor(0, 255, 0)); //LED(緑) airCon->send(irSender, POWER_ON, MODE_DRY, FAN_1, 28, VDIR_DOWN, HDIR_AUTO); // 除湿 } } if (ed == "e1" && now_hour == ed_hour && now_min == ed_min) { Serial.println("--- Stop ---"); M5.dis.drawpix(0, dispColor(255, 0, 255)); //LED(紫) airCon->send(irSender, POWER_OFF, MODE_COOL, FAN_1, 28, VDIR_DOWN, HDIR_AUTO); // 電源 Off } } else { // ファイルの取得に失敗している Serial.println("Error"); } delay(30000); } // // airCon->send( irSender, POWER_**, MODE_**, FAN1, 16, VDIR_** , HDIR_** ); // 設定項目 ※温度設定は「整数値」で // /Arduino/libraries/HeatpumpIR/HeatpumpIR.h // // ・POWER (電源) // POWER_ON (on) // POWER_OFF (off) // ・MODE (モード) // MODE_AUTO (自動) // MODE_COOL (冷房) // MODE_HEAT (暖房) // MODE_DRY (除湿) // MODE_ON (不明) // MODE_OFF (不明) // ・FAN (風量) // FAN_1 // FAN_2 // FAN_3 // FAN_4 // FAN_5 // FAN_AUTO // ・VDIR (風向高さ) // VDIR_AUTO // VDIR_UP // VDIR_MUP // VDIR_MIDDLE // VDIR_MDOWN // VDIR_DOWN // ・HDIR (風向左右) // HDIR_AUTO // HDIR_LEFT // HDIR_MLEFT // HDIR_MIDDLE // HDIR_MRIGHT // HDIR_RIGHT //