From eedde73db3737e32c67278c93e7b09c9d7ebcdc0 Mon Sep 17 00:00:00 2001 From: Julien Cabillot Date: Wed, 26 Apr 2017 00:01:11 +0200 Subject: [PATCH] =?UTF-8?q?WIP:=20=C3=A0=20tester=20ota=20+=20remotedebug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- arduino/mqttfastledmenu/mqttfastledmenu.cpp | 81 ++++++++++++++++--- .../mqttfastledmenu/mqttfastledmenu.example.h | 7 ++ 2 files changed, 76 insertions(+), 12 deletions(-) diff --git a/arduino/mqttfastledmenu/mqttfastledmenu.cpp b/arduino/mqttfastledmenu/mqttfastledmenu.cpp index 003e596..fb82a30 100644 --- a/arduino/mqttfastledmenu/mqttfastledmenu.cpp +++ b/arduino/mqttfastledmenu/mqttfastledmenu.cpp @@ -1,12 +1,25 @@ #include +// LED // TODO : essayer, devrait limiter le flikering //#define FASTLED_ALLOW_INTERRUPTS 0 #define FASTLED_ESP8266_NODEMCU_PIN_ORDER #include + +// WIFI #include + +// MQTT #include +// OTA +#include +#include +#include + +// RemoteDebug +#include + #include "mqttfastledmenu.h" // LED @@ -33,6 +46,12 @@ void setup() // WIFI setupWifi(); + // OTA + setupOTA(); + + // RemoteDebug + Debug.begin("chamber"); + // LED /* brightness = LED_BRIGHTNESS_DEFAULT; @@ -56,7 +75,7 @@ void setup() client.setCallback(callbackMQTT); testConnectMQTT(); - Serial.println("Ready"); + Debug.println("Ready"); /* MQTT * Il est important de faire un loop avant toute chose, @@ -69,7 +88,39 @@ void setup() client.loop(); } - Serial.println("End of setup"); + Debug.println("End of setup"); +} + +// OTA +void setupOTA() +{ + // TODO: on devrait ecrire ce genre d'info sur les deux sorties + ArduinoOTA.setHostname("alarmclock"); // on donne une petit nom a notre module + ArduinoOTA.setPassword(OTA_PASSWORD); + ArduinoOTA.onStart([]() { + Serial.println("OTA Starting"); + }); + ArduinoOTA.onEnd([]() { + Serial.println("\nOTA End"); + }); + ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) { + Serial.printf("OTA Progress: %u%%\r", (progress / (total / 100))); + }); + ArduinoOTA.onError([](ota_error_t error) { + Serial.printf("OTA Error[%u]: ", error); + if (error == OTA_AUTH_ERROR) { + Serial.println("Auth Failed"); + } else if (error == OTA_BEGIN_ERROR) { + Serial.println("Begin Failed"); + } else if (error == OTA_CONNECT_ERROR) { + Serial.println("Connect Failed"); + } else if (error == OTA_RECEIVE_ERROR) { + Serial.println("Receive Failed"); + } else if (error == OTA_END_ERROR) { + Serial.println("End Failed"); + } + }); + ArduinoOTA.begin(); } // WIFI @@ -93,27 +144,27 @@ void setupWifi() void testConnectMQTT() { while (!client.connected()) { - Serial.print("Connexion au serveur MQTT... "); + Debug.print("Connexion au serveur MQTT... "); if (client.connect("ESP8266Client", MQTT_USER, MQTT_PASS)) { - Serial.print("OK\nSend Current State"); + Debug.print("OK\nSend Current State"); mqttSendState(); mqttSendSpeedState(); mqttSendBrightnessState(); mqttSendEffectState(); mqttSendColorState(); - Serial.print("OK\nSubscribe"); + Debug.print("OK\nSubscribe"); client.subscribe(MQTT_LED_COMMAND); client.subscribe(MQTT_LED_EFFECT_COMMAND); client.subscribe(MQTT_LED_BRIGHTNESS_COMMAND); client.subscribe(MQTT_LED_SPEED_COMMAND); client.subscribe(MQTT_LED_COLOR_COMMAND); - Serial.println(" OK"); + Debug.println(" OK"); } else { - Serial.print("KO, erreur : "); - Serial.print(client.state()); - Serial.println(", on attend 5 secondes avant de recommencer"); + Debug.print("KO, erreur : "); + Debug.print(client.state()); + Debug.println(", on attend 5 secondes avant de recommencer"); delay(5000); } } @@ -131,8 +182,8 @@ void callbackMQTT(char* topic, byte* payload, unsigned int length) message_buff[i] = '\0'; String msgString = String(message_buff); - Serial.print("Received [" + stopic + "] : "); - Serial.println(msgString); + Debug.print("Received [" + stopic + "] : "); + Debug.println(msgString); if (stopic == MQTT_LED_COMMAND) { if (msgString == "ON") { @@ -332,7 +383,7 @@ void ledFullColor() // J'ai essayé de mapper breath sur 3;brightness pour ne pas eteindre les leds, // mais l'effet est plus saccadé - + fill_solid(leds, LED_NUM, color); FastLED.setBrightness(breath); FastLED.show(); @@ -508,6 +559,12 @@ void fire() //////////////////////// FastLED-3.1.5/examples/Fire202 /////////////////////// void loop() { + // OTA + ArduinoOTA.handle(); + + // RemoteDebug + Debug.handle(); + // MQTT testConnectMQTT(); client.loop(); diff --git a/arduino/mqttfastledmenu/mqttfastledmenu.example.h b/arduino/mqttfastledmenu/mqttfastledmenu.example.h index 8d2e88a..328ead6 100644 --- a/arduino/mqttfastledmenu/mqttfastledmenu.example.h +++ b/arduino/mqttfastledmenu/mqttfastledmenu.example.h @@ -1,5 +1,11 @@ #define SERIAL_SPEED 115200 +// OTA +#define OTA_PASSWORD "n87z21Tx5%P%EX&*" + +// DebugRemote +RemoteDebug Debug; + // LED #define LED_NUM 300 #define LED_PIN 5 // = D1 @@ -38,6 +44,7 @@ #define MQTT_LED_COLOR_STATE "strip1/color/status" +void setupOTA(); void setupWifi(); void testConnectMQTT(); void callbackMQTT(char* topic, byte* payload, unsigned int length);