Merge branch 'OTA' into 'master'

Ota

See merge request !2
This commit is contained in:
Julien Cabillot 2017-04-24 18:22:26 +02:00
commit 25f0e28e09
3 changed files with 54 additions and 1 deletions

View File

@ -37,7 +37,6 @@ Avancement
WIP. WIP.
Le partie arduino fonctionne, mais pour le moment il n'y a pas d'arret automatique de l'alarme. Le partie arduino fonctionne, mais pour le moment il n'y a pas d'arret automatique de l'alarme.
La partie home-assistant fonctionne, le reveil configuré est bien envoyé à l'arduino. La partie home-assistant fonctionne, le reveil configuré est bien envoyé à l'arduino.
TODO: Utiliser ArduinoOTA pour gérer les mises à jours sans fil.
TODO: gitlab-ci : on peut checker la syntax en lancant un docker home-assistant !!! TODO: gitlab-ci : on peut checker la syntax en lancant un docker home-assistant !!!
TODO: HA Il faut des scenes pour retrouver les couleurs classiques TODO: HA Il faut des scenes pour retrouver les couleurs classiques
TODO: Ard pas d'arret une fois le reveil lancé TODO: Ard pas d'arret une fois le reveil lancé

View File

@ -1,10 +1,20 @@
#include <Arduino.h> #include <Arduino.h>
// LED
#define FASTLED_ESP8266_NODEMCU_PIN_ORDER #define FASTLED_ESP8266_NODEMCU_PIN_ORDER
#include <FastLED.h> #include <FastLED.h>
// WIFI
#include <ESP8266WiFi.h> #include <ESP8266WiFi.h>
// MQTT
#include <PubSubClient.h> #include <PubSubClient.h>
// OTA
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
#include "alarmclock.h" #include "alarmclock.h"
void setup() void setup()
@ -15,6 +25,9 @@ void setup()
// WIFI // WIFI
setupWifi(); setupWifi();
// OTA
setupOTA();
// LED // LED
maxBrightness = LED_MAXBRIGHTNESS_DEFAULT; maxBrightness = LED_MAXBRIGHTNESS_DEFAULT;
curbrightness = LED_BRIGHTNESS_DEFAULT; curbrightness = LED_BRIGHTNESS_DEFAULT;
@ -43,9 +56,43 @@ void setup()
client.loop(); client.loop();
} }
// OTA
Serial.println("End of setup"); Serial.println("End of setup");
} }
// OTA
void setupOTA()
{
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 // WIFI
void setupWifi() void setupWifi()
{ {
@ -226,6 +273,9 @@ void loop() {
} }
} }
// OTA
ArduinoOTA.handle();
// MQTT // MQTT
testConnectMQTT(); testConnectMQTT();
client.loop(); client.loop();

View File

@ -3,6 +3,9 @@
#define SHOW_FPS 1 #define SHOW_FPS 1
int fps; int fps;
// OTA
#define OTA_PASSWORD "XXX"
// LED // LED
#define LED_NUM 30 #define LED_NUM 30
#define LED_PIN 5 // = D1 #define LED_PIN 5 // = D1
@ -43,6 +46,7 @@ char message_buff[100];
PubSubClient client(espClient); PubSubClient client(espClient);
void setupOTA();
void setupWifi(); void setupWifi();
void testConnectMQTT(); void testConnectMQTT();
void callbackMQTT(char* topic, byte* payload, unsigned int length); void callbackMQTT(char* topic, byte* payload, unsigned int length);