Compare commits
17 commits
master
...
site_carre
Author | SHA1 | Date | |
---|---|---|---|
6deb0299e9 | |||
dcb41c70c2 | |||
adee2411eb | |||
bc99f15ffa | |||
5acfec4292 | |||
ce862ccc0d | |||
e1180bef4e | |||
70e5ca43ad | |||
33af2705ab | |||
a0f058150e | |||
9f2baac7fa | |||
45b659f593 | |||
e9434729b1 | |||
7e6739f146 | |||
899550cfe7 | |||
33a8b91668 | |||
d9ca365483 |
10
.vscode/extensions.json
vendored
Normal file
10
.vscode/extensions.json
vendored
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
// See http://go.microsoft.com/fwlink/?LinkId=827846
|
||||||
|
// for the documentation about the extensions.json format
|
||||||
|
"recommendations": [
|
||||||
|
"platformio.platformio-ide"
|
||||||
|
],
|
||||||
|
"unwantedRecommendations": [
|
||||||
|
"ms-vscode.cpptools-extension-pack"
|
||||||
|
]
|
||||||
|
}
|
|
@ -1,2 +1,5 @@
|
||||||
# code-grappe
|
# code-grappe
|
||||||
|
## branche carreire
|
||||||
|
|
||||||
|
mots de passe dans include/secret.h
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
/**
|
/**
|
||||||
* @file main.h
|
* @file main.h
|
||||||
* @brief projet thermo-bibli, Équiper la réserve de l'UB de capteurs de température et hygrométrie autonomes et connectés
|
* @brief projet thermo-bibli, Équiper la réserve de l'UB de capteurs de température et hygrométrie autonomes et connectés
|
||||||
* @author Bastien Boineau, Lucas Pallaro, Loris Galland
|
* @author Bastien Boineau, Lucas Pallaro, Loris Galland, pgp
|
||||||
* @version 1.0
|
* @version 1.0.1
|
||||||
* @date 28/06/2021
|
* @date 08/11/2021
|
||||||
*/
|
*/
|
||||||
#ifndef HEADER_H
|
#ifndef HEADER_H
|
||||||
#define HEADER_H
|
#define HEADER_H
|
||||||
|
@ -14,16 +14,17 @@
|
||||||
#include <PubSubClient.h>
|
#include <PubSubClient.h>
|
||||||
#include <Pangodream_18650_CL.h>
|
#include <Pangodream_18650_CL.h>
|
||||||
#include <secret.h>
|
#include <secret.h>
|
||||||
|
#include <RTClib.h>
|
||||||
|
|
||||||
#define TOPIC "test1"
|
#define TOPIC "test1"
|
||||||
#define MQTT_ADDRESS "192.168.0.242"
|
#define MQTT_ADDRESS "185.233.103.24"
|
||||||
#define MQTT_PORT 1883
|
#define MQTT_PORT 1883
|
||||||
#define ESPNAME "esp32-bastien"
|
#define ESPNAME "esp32-bastien"
|
||||||
#define CLUSTER "grappe1"
|
#define CLUSTER "grappe1"
|
||||||
#define SENSORS_NUMBER 5
|
#define SENSORS_NUMBER 5
|
||||||
#define DHT22 22
|
#define DHT22 22
|
||||||
#define TIME_TO_SLEEP 598
|
#define TIME_TO_SLEEP 3600 // l'ESp32 est rallumé à plein régime pour prendre une mesure toutes les 3600 secondes (soit 1 fois/heure)
|
||||||
#define US_TO_S_FACTOR 1000000
|
#define US_TO_S_FACTOR 1000000 //1000000 => 1 mesure par 10 min
|
||||||
#define R2 100
|
#define R2 100
|
||||||
#define R3 10
|
#define R3 10
|
||||||
#define VOLTAGE_OUT(Vin) (((Vin)*R3) / (R2 + R3))
|
#define VOLTAGE_OUT(Vin) (((Vin)*R3) / (R2 + R3))
|
||||||
|
@ -45,6 +46,7 @@ void readSensors(DHT sensors[], float temp[], float hum[], int number);
|
||||||
void sleep();
|
void sleep();
|
||||||
std::tuple<int, int, int> getDate();
|
std::tuple<int, int, int> getDate();
|
||||||
void writeMsg(char *txt, float *temp, float *hum, int number);
|
void writeMsg(char *txt, float *temp, float *hum, int number);
|
||||||
|
void wakeup();
|
||||||
|
|
||||||
//timeClient.getEpochTime().toCharArray(date, 50); = convertir un string en char
|
//timeClient.getEpochTime().toCharArray(date, 50); = convertir un string en char
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#define MQTT_USER "NomUtilisateurMQTT"
|
#define MQTT_USER "capteurs"
|
||||||
#define MQTT_MDP "MotDePasseMQTT"
|
#define MQTT_MDP "Fablab"
|
||||||
#define SSID "NomDuWifi"
|
#define SSID "Thermo-Bibli"
|
||||||
#define PWD "MotDePasseWifi"
|
#define SSID_PWD "17413278"
|
||||||
|
|
||||||
|
|
|
@ -19,3 +19,4 @@ lib_deps =
|
||||||
ottowinter/ESPAsyncWebServer-esphome@^1.2.7
|
ottowinter/ESPAsyncWebServer-esphome@^1.2.7
|
||||||
ottowinter/AsyncTCP-esphome@^1.2.1
|
ottowinter/AsyncTCP-esphome@^1.2.1
|
||||||
arduino-libraries/NTPClient@^3.1.0
|
arduino-libraries/NTPClient@^3.1.0
|
||||||
|
adafruit/RTClib@^2.0.2
|
||||||
|
|
71
src/main.cpp
71
src/main.cpp
|
@ -1,8 +1,11 @@
|
||||||
|
// psswd's into include/secret.h
|
||||||
|
// others settings in main.h
|
||||||
|
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
DHT sensors[SENSORS_NUMBER] = {DHT(23, DHT22), DHT(22, DHT22), DHT(21, DHT22), DHT(17, DHT22), DHT(2, DHT22)};
|
DHT sensors[SENSORS_NUMBER] = {DHT(4, DHT22), DHT(5, DHT22), DHT(18, DHT22), DHT(19, DHT22), DHT(03, DHT22)};
|
||||||
float temp[SENSORS_NUMBER];
|
float temp[SENSORS_NUMBER];
|
||||||
float hum[SENSORS_NUMBER];
|
float hum[SENSORS_NUMBER];
|
||||||
|
|
||||||
|
@ -12,6 +15,10 @@ WiFiUDP NtpUDP;
|
||||||
NTPClient TimeClient(NtpUDP, "europe.pool.ntp.org", 0, 60000);
|
NTPClient TimeClient(NtpUDP, "europe.pool.ntp.org", 0, 60000);
|
||||||
Pangodream_18650_CL Battery(ADC_PIN, CONV_FACTOR, READS);
|
Pangodream_18650_CL Battery(ADC_PIN, CONV_FACTOR, READS);
|
||||||
|
|
||||||
|
RTC_DS3231 rtc;
|
||||||
|
//---------------- Réveil --------------------//
|
||||||
|
int mesure_freq = 600; // temps entre deux réveils en secondes
|
||||||
|
|
||||||
//-------------------- FONCTIONS --------------------//
|
//-------------------- FONCTIONS --------------------//
|
||||||
|
|
||||||
//-------------- Connexion MQTT --------------//
|
//-------------- Connexion MQTT --------------//
|
||||||
|
@ -29,8 +36,9 @@ 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);
|
||||||
|
|
||||||
while (WiFi.status() != WL_CONNECTED)
|
while ((WiFi.status() != WL_CONNECTED) && (millis() <= 60000))
|
||||||
{
|
{
|
||||||
|
Serial.println("Nouvelle tentative de connexion...");
|
||||||
delay(500);
|
delay(500);
|
||||||
Serial.print('.');
|
Serial.print('.');
|
||||||
}
|
}
|
||||||
|
@ -46,7 +54,7 @@ void reconnect(void)
|
||||||
while (!MqttClient.connected())
|
while (!MqttClient.connected())
|
||||||
{
|
{
|
||||||
Serial.print(".");
|
Serial.print(".");
|
||||||
if (MqttClient.connect(ESPNAME, MQTT_USER, MQTT_PWD))
|
if (MqttClient.connect(ESPNAME, MQTT_USER, MQTT_MDP))
|
||||||
{
|
{
|
||||||
Serial.println("Connected.");
|
Serial.println("Connected.");
|
||||||
}
|
}
|
||||||
|
@ -75,7 +83,7 @@ void readSensors(DHT sensors[], float temp[], float hum[], int number)
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------- Sleep de l'ESP --------------------//
|
//-------------------- Sleep de l'ESP --------------------//
|
||||||
|
/*
|
||||||
void sleep()
|
void sleep()
|
||||||
{
|
{
|
||||||
esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * US_TO_S_FACTOR);
|
esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * US_TO_S_FACTOR);
|
||||||
|
@ -94,6 +102,50 @@ std::tuple<int, int, int> getDate()
|
||||||
|
|
||||||
return std::make_tuple(year, month, day);
|
return std::make_tuple(year, month, day);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
//-------------------- Programmation du réveil de l'alimentation --------------------//
|
||||||
|
|
||||||
|
void wakeup(){
|
||||||
|
// initializing the rtc
|
||||||
|
if(!rtc.begin()) {
|
||||||
|
Serial.println("Couldn't find RTC!");
|
||||||
|
Serial.flush();
|
||||||
|
while (1) delay(10);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(rtc.lostPower()) {
|
||||||
|
// this will adjust to the date and time at compilation
|
||||||
|
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
|
||||||
|
}
|
||||||
|
|
||||||
|
//we don't need the 32K Pin, so disable it
|
||||||
|
rtc.disable32K();
|
||||||
|
|
||||||
|
// set alarm 1, 2 flag to false (so alarm 1, 2 didn't happen so far)
|
||||||
|
// if not done, this easily leads to problems, as both register aren't reset on reboot/recompile
|
||||||
|
rtc.clearAlarm(1);
|
||||||
|
rtc.clearAlarm(2);
|
||||||
|
|
||||||
|
// stop oscillating signals at SQW Pin
|
||||||
|
// otherwise setAlarm1 will fail
|
||||||
|
rtc.writeSqwPinMode(DS3231_OFF);
|
||||||
|
|
||||||
|
// turn off alarm 2 (in case it isn't off already)
|
||||||
|
// again, this isn't done at reboot, so a previously set alarm could easily go overlooked
|
||||||
|
rtc.disableAlarm(2);
|
||||||
|
|
||||||
|
// schedule an alarm 10 seconds in the future
|
||||||
|
if(!rtc.setAlarm1(
|
||||||
|
rtc.now() + TimeSpan(mesure_freq),
|
||||||
|
DS3231_A1_Second // this mode triggers the alarm when the seconds match. See Doxygen for other options
|
||||||
|
)) {
|
||||||
|
Serial.println("Error, alarm wasn't set!");
|
||||||
|
}else {
|
||||||
|
Serial.println("Alarm will happen in 10 seconds!");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
//-------------------- Création de trames --------------------//
|
//-------------------- Création de trames --------------------//
|
||||||
|
|
||||||
|
@ -131,13 +183,14 @@ void writeMessage(char *txt, float *temp, float *hum, int number)
|
||||||
void setup()
|
void setup()
|
||||||
{
|
{
|
||||||
Serial.begin(9600);
|
Serial.begin(9600);
|
||||||
setupWIFI(SSID, PWD);
|
setupWIFI(SSID, SSID_PWD);
|
||||||
setupMQTT(MQTT_ADDRESS, MQTT_PORT);
|
setupMQTT(MQTT_ADDRESS, MQTT_PORT);
|
||||||
initSensors(sensors, SENSORS_NUMBER);
|
initSensors(sensors, SENSORS_NUMBER);
|
||||||
TimeClient.begin();
|
TimeClient.begin();
|
||||||
|
delay(2000);
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------- Boucle pricipale --------------------//
|
//-------------------- Boucle pringicipale --------------------//
|
||||||
|
|
||||||
void loop()
|
void loop()
|
||||||
{
|
{
|
||||||
|
@ -156,6 +209,9 @@ void loop()
|
||||||
readSensors(sensors, temp, hum, SENSORS_NUMBER);
|
readSensors(sensors, temp, hum, SENSORS_NUMBER);
|
||||||
writeMessage(msg, temp, hum, SENSORS_NUMBER);
|
writeMessage(msg, temp, hum, SENSORS_NUMBER);
|
||||||
|
|
||||||
|
Serial.print("une trame de data : ");
|
||||||
|
Serial.println(msg);
|
||||||
|
|
||||||
TimeClient.update();
|
TimeClient.update();
|
||||||
TimeClient.getFormattedTime().toCharArray(time, 30);
|
TimeClient.getFormattedTime().toCharArray(time, 30);
|
||||||
|
|
||||||
|
@ -166,6 +222,7 @@ void loop()
|
||||||
MqttClient.publish(TOPIC, date);
|
MqttClient.publish(TOPIC, date);
|
||||||
|
|
||||||
delay(2000);
|
delay(2000);
|
||||||
|
Serial.println("Extinction de l'ESP ! ");
|
||||||
|
wakeup();
|
||||||
|
|
||||||
sleep();
|
|
||||||
}
|
}
|
Loading…
Reference in a new issue