Bonjour,
Je désire dans un premier temps enregistrer les températures dans ma maison. A cause du WAF je ne peut pas passer de câble partout...
Apres étude je pense installé 2 ESP8266 D1 WiFI qui relèverais chacun un nombre de sonde DS18B20 et de DHT22.
Les 2 ESP8266 enverrais les données à intervalle fixe (ou sur demande...) à un Arduino UNO équipé d'un W5100 qui inscrirais lui même à intervalles défini les valeurs reçu sur la SD + ses valeurs relevés à lui.
Je pense récupéré les valeurs physiquement ou les récupéré via une page web si c'est possible.
Je cherche une piste pour la communication entre les 2 ESP8266 et l'arduino, je pensais via une page web ? en HTTP. ou alors les ESP8266 enverrais les donnés comme ça sur l'IP de l'UNO. si vous avez de meilleurs idée (j'en suis sûr) je suis preneur.
J'ai déjà commencer a voir du coté d'une réponse à une requête en HTTP ( si c'est la bonne voie), mais ça coince entre l'ESP8266 et le Onewire :
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
ESP8266WebServer server(80);
#include <OneWire.h>
#include <DallasTemperature.h>
#ifndef STASSID
#define STASSID "Livebox-****"
#define STAPSK "*****************"
#endif
#define ONE_WIRE_BUS 8
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(& oneWire);
DeviceAddress sonde0 =
{
0x28, 0xAA, 0x89, 0x92, 0x3C, 0x14, 0x01, 0xBF
};
DeviceAddress sonde1 =
{
0x28, 0xAA, 0x79, 0x8E, 0x3C, 0x14, 0x01, 0x33
};
DeviceAddress sonde2 =
{
0x28, 0xAA, 0xE5, 0xA8, 0x3C, 0x14, 0x01, 0xDC
};
const char * ssid = STASSID;
const char * password = STAPSK;
float s1, s2, s3;
void setup()
{
Serial.begin(9600);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.println(".");
}
Serial.println(WiFi.localIP());
server.on("/", handleRoot);
server.begin();
sensors.begin();
sensors.setResolution(sonde0, 12);
sensors.setResolution(sonde1, 12);
sensors.setResolution(sonde2, 12);
}
void loop()
{
s1 = sensors.getTempC(sonde0);
s2 = sensors.getTempC(sonde1);
s3 = sensors.getTempC(sonde2);
server.handleClient();
delay(10000);
}
String getPage()
{
String page = "<html lang=fr-FR><head><meta http-equiv='refresh' content='10'/>";
page += "s1";
page += s1;
page += ",";
page += "s2";
page += s2;
page += ",";
page += "s3";
page += s3;
page += "</body></html>";
return page;
}
void handleRoot()
{
server.send(200, "text/html", getPage());
}
le terminal me renvoi une série de signe érratique et la page web ne s'affiche plus
0dn,⸮`llE⸮lb8Y⸮⸮?)⸮5!⸮⸮D⸮!⸮?)⸮⸮⸮t⸮DH⸮⸮)⸮⸮⸮⸮⸮DH
Si je commente tout se qui est lié à OneWire et DallasTemperature la page s'affiche sans soucis.
Merci pour vos lumières.