#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include "RTClib.h"
#include <OneWire.h>
#include <DallasTemperature.h>
#include <WiFi.h>
#include <HTTPClient.h>
const char ssid[2][] = {"TP-Link_DD7F","EVEIL_WIFI"};
const char password[2][] = {"53562244","maison de jeunes cool"};
const int oneWireBus = 4;
// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(oneWireBus);
// Pass our oneWire reference to Dallas Temperature sensor
DallasTemperature sensors(&oneWire);
RTC_DS3231 rtc;
HTTPClient http;
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire, -1);
String HOST_NAME = "http://eveilsecure.myds.me/eveilcomestilab/php";
String PHP_FILE_NAME = "/addDatas.php";
String sonde = "s="; //identifiant de la sonde dans la base de données
String valeur = "&v="; //contiendra la valeur renvoyée par la sonde
String type = "&t=4"; //type de données ( 4. température 5. humidité )
String sondeID = "4";
String tempQuery = "?" + sonde + sondeInt + type + valeur ;
String dateRef = "";
int ref = 0;
int test = 0;
int wait = 3600;
void sendData(String server){
http.begin(server);
int httpCode = http.GET();
if(httpCode > 0) {
if(httpCode == HTTP_CODE_OK) {
String payload = http.getString();
Serial.println(payload);
} else {
Serial.printf("HTTP GET... code: %d\n", httpCode);
Serial.print(server);
}
} else {
Serial.printf("HTTP GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
}
http.end();
}
void setup() {
dht.begin();
dht2.begin();
Serial.begin(115200);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
if (! rtc.begin()) {
Serial.println("Could not find RTC! Check circuit.");
while (1);
}
WiFi.begin(ssid, password);
Serial.println("Connecting");
while(WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to WiFi network with IP Address: ");
Serial.println(WiFi.localIP());
rtc.adjust(DateTime(__DATE__, __TIME__));
display.clearDisplay();
display.setTextColor(WHITE);
}
void loop() {
DateTime now = rtc.now();
int envoi = 0;
float tInt = dht.readTemperature();
float tExt = dht2.readTemperature();
String dateTest = String(now.year())+String(now.month())+String(now.day());
if(!ref){
dateRef = dateTest;
ref = test = (now.hour()*3600)+(now.minute()*60);
envoi = 1;
}else{
test = (now.hour()*3600)+(now.minute()*60);
if(dateRef == dateTest){
if(test-ref>=wait){
envoi = 1;
ref = test;
}
}else{
int difference = ((24*3600)-ref)+(test);
if(difference>=wait){
envoi = 1;
ref = test;
dateRef = dateTest;
}
}
}
display.clearDisplay();
display.setTextSize(3);
display.setCursor(0, 0);
display.print(tInt,0);
display.setTextSize(1);
display.print(" o");
display.setTextSize(2);
display.print("C");
display.setTextSize(2);
display.print(" INT ");
display.setTextSize(4);
display.setCursor(0, 30);
display.print(tExt,0);
display.setTextSize(2);
display.print("o");
display.setTextSize(3);
display.print("C");
display.setTextSize(2);
display.print(" EXT ");
display.display();
if(envoi){
String server = HOST_NAME + PHP_FILE_NAME + tempQuery + tInt;
String server1 = HOST_NAME + PHP_FILE_NAME + tempQuery1 + tExt;
Serial.println(server);
Serial.println(server1);
sendData(server);
sendData(server1);
}
delay(2000);
}