restart each day to try bug fix, add delay for lost connexion wifi and mqtt
This commit is contained in:
parent
f0a0ccc395
commit
d886bce090
|
@ -23,7 +23,8 @@
|
||||||
#define SENSORS_NUMBER 5
|
#define SENSORS_NUMBER 5
|
||||||
#define DHT22 22
|
#define DHT22 22
|
||||||
//comment for the test part this is the good frequency
|
//comment for the test part this is the good frequency
|
||||||
#define TIME_TO_SLEEP 598
|
#define TIME_TO_SLEEP 598
|
||||||
|
//#define TIME_TO_SLEEP 28
|
||||||
#define US_TO_S_FACTOR 1000000
|
#define US_TO_S_FACTOR 1000000
|
||||||
#define R2 100
|
#define R2 100
|
||||||
#define R3 10
|
#define R3 10
|
||||||
|
|
53
src/main.cpp
53
src/main.cpp
|
@ -36,10 +36,18 @@ void setupWIFI(const char *wifi_name, const char *password)
|
||||||
Serial.print("Connecting to ");
|
Serial.print("Connecting to ");
|
||||||
Serial.print(wifi_name);
|
Serial.print(wifi_name);
|
||||||
|
|
||||||
|
int cpttry = 10;
|
||||||
while (WiFi.status() != WL_CONNECTED)
|
while (WiFi.status() != WL_CONNECTED)
|
||||||
{
|
{
|
||||||
delay(500);
|
delay(500);
|
||||||
Serial.print('.');
|
Serial.print('.');
|
||||||
|
|
||||||
|
/* stop trying wifi connexion */
|
||||||
|
cpttry--;
|
||||||
|
if(cpttry == 0){
|
||||||
|
Serial.print("wifi: 10 try go to sleep");
|
||||||
|
sleep();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Serial.println('\n');
|
Serial.println('\n');
|
||||||
Serial.println("Connection established!");
|
Serial.println("Connection established!");
|
||||||
|
@ -50,8 +58,16 @@ void setupWIFI(const char *wifi_name, const char *password)
|
||||||
void reconnect(void)
|
void reconnect(void)
|
||||||
{
|
{
|
||||||
Serial.println("Connecting to MQTT Broker...");
|
Serial.println("Connecting to MQTT Broker...");
|
||||||
|
int cpttry = 10;
|
||||||
while (!MqttClient.connected())
|
while (!MqttClient.connected())
|
||||||
{
|
{
|
||||||
|
/* stop trying mqtt connexion*/
|
||||||
|
cpttry--;
|
||||||
|
if(cpttry == 0){
|
||||||
|
Serial.print("Mqtt: 10 try go to sleep");
|
||||||
|
sleep();
|
||||||
|
}
|
||||||
|
|
||||||
Serial.print(".");
|
Serial.print(".");
|
||||||
if (MqttClient.connect(ESPNAME, MQTT_USER, MQTT_MDP)) // MQTT_MDP (mot de passe)
|
if (MqttClient.connect(ESPNAME, MQTT_USER, MQTT_MDP)) // MQTT_MDP (mot de passe)
|
||||||
{
|
{
|
||||||
|
@ -126,7 +142,8 @@ unsigned long getTime() {
|
||||||
void writeMessage(char *txt, float *temp, float *hum, int number)
|
void writeMessage(char *txt, float *temp, float *hum, int number)
|
||||||
{
|
{
|
||||||
int chargelvl = Battery.getBatteryChargeLevel();
|
int chargelvl = Battery.getBatteryChargeLevel();
|
||||||
time_t rawtime = TimeClient.getEpochTime();
|
//time_t rawtime = TimeClient.getEpochTime();
|
||||||
|
|
||||||
|
|
||||||
switch (number)
|
switch (number)
|
||||||
{
|
{
|
||||||
|
@ -154,16 +171,50 @@ void writeMessage(char *txt, float *temp, float *hum, int number)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-------------------- Condition --------------------//
|
||||||
|
|
||||||
|
bool ishour(int hours){
|
||||||
|
return hours <= (2 * TIME_TO_SLEEP) / 3600;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isminute(int minutes){
|
||||||
|
return minutes <= ((2 * TIME_TO_SLEEP) % 3600) / 60;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool issecond(int secondes){
|
||||||
|
return secondes <= ((2 * TIME_TO_SLEEP) - 1 ) % 60;
|
||||||
|
}
|
||||||
|
|
||||||
//-------------------- Initialisation --------------------//
|
//-------------------- Initialisation --------------------//
|
||||||
|
|
||||||
void setup()
|
void setup()
|
||||||
{
|
{
|
||||||
Serial.begin(9600);
|
Serial.begin(9600);
|
||||||
|
|
||||||
setupWIFI(SSID, PWD);
|
setupWIFI(SSID, PWD);
|
||||||
setupMQTT(MQTT_ADDRESS, MQTT_PORT);
|
setupMQTT(MQTT_ADDRESS, MQTT_PORT);
|
||||||
initSensors(sensors, SENSORS_NUMBER);
|
initSensors(sensors, SENSORS_NUMBER);
|
||||||
|
|
||||||
|
|
||||||
TimeClient.begin();
|
TimeClient.begin();
|
||||||
TimeClient.forceUpdate();
|
TimeClient.forceUpdate();
|
||||||
|
|
||||||
|
/* Reboot one time per day */
|
||||||
|
int rawtime = (TimeClient.getEpochTime()) % 86400; // 86400 = 60sec*60minutes*24heures
|
||||||
|
int hours = rawtime / 3600, minutes = (rawtime % 3600) / 60 , secondes = rawtime % 60;
|
||||||
|
|
||||||
|
if( ishour(hours) && isminute(minutes) && issecond(secondes)){
|
||||||
|
ESP.restart();
|
||||||
|
}
|
||||||
|
/* ######### test time part #########
|
||||||
|
Serial.println('\n');
|
||||||
|
Serial.println(hours,DEC);
|
||||||
|
Serial.println(':');
|
||||||
|
Serial.println(minutes,DEC);
|
||||||
|
Serial.println(':');
|
||||||
|
Serial.println(secondes,DEC);
|
||||||
|
Serial.println('\n');
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue