Bonjour,
j'ai déjà réalisé la partie prog pure, le programme tourne en ce moment sur un arduino uno.
Ce qui m'intéresse réellement c'est la partie WIFI et MQTT car là je nage dans la choucroute.
Introduction :
Je vais commencer par expliquer ce que j'ai fait et ce que je veux.
Je me suis mis à installer Domoticz et à tout domotiser dans la maison à base de 8266, et aussi un peu la gateway xiaomi. J'ai testé un peu le RfLink mais je n'ai pas été satisfait des performances, certainement à cause de mes mauvaises antennes mais ça c'est un autre sujet.
Le petit montage que je me suis fait utilise 2 sondes 18db20, une plongée dans la piscine, une gainée de noir en plein soleil juste à coté de mes panneaux solaires. toutes les X secondes, si la T° Panneaux > (T° piscine +2) j'utilise Rcswitch pour piloter une prise 433mhz acheté dans le commerce.
Ce que je voudrais c'est renvoyer les 2 sondes de température dans domoticz et aussi l'activation, désactivation de la prise via un switch virtuel.
si ça intéresse quelqu'un c'est ce qui fonctionne déjà :
#include <RCSwitch.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
#define TEMPERATURE_PRECISION 9
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress T_piscine, T_soleil;
int Temps=0;
RCSwitch mySwitch = RCSwitch();
//Pour memoire Touche 3 de la télécommande de l'aquarium...
unsigned long MoteurPiscine_OFF = 7191916;
unsigned long MoteurPiscine_ON = 7191917;
void setup()
{
Serial.begin(9600);
sensors.begin();
sensors.getDeviceCount();
sensors.isParasitePowerMode();
sensors.getAddress(T_soleil, 0);
sensors.getAddress(T_piscine, 1);
sensors.setResolution(T_piscine, TEMPERATURE_PRECISION);
sensors.setResolution(T_soleil, TEMPERATURE_PRECISION);
// Emetteur connecté au pin #10 de l'Arduino
mySwitch.enableTransmit(10);
Serial.println("init ");
Active();
delay(2000);
Active();
delay(2000);
Active();
delay(2000);
Desactive();
}
void Active()
{
Serial.println("allume ");
mySwitch.send(MoteurPiscine_ON, 24);
delay(100);
mySwitch.send(MoteurPiscine_ON, 24);
delay(100);
mySwitch.send(MoteurPiscine_ON, 24);
delay(100);
mySwitch.send(MoteurPiscine_ON, 24);
delay(100);
mySwitch.send(MoteurPiscine_ON, 24);
}
void Desactive()
{
Serial.println("eteint ");
mySwitch.send(MoteurPiscine_OFF, 24);
delay(50);
mySwitch.send(MoteurPiscine_OFF, 24);
delay(50);
mySwitch.send(MoteurPiscine_OFF, 24);
delay(50);
mySwitch.send(MoteurPiscine_OFF, 24);
delay(50);
mySwitch.send(MoteurPiscine_OFF, 24);
}
void loop()
{
delay(30000);
sensors.requestTemperatures();
float piscine = sensors.getTempC(T_piscine);
float soleil = sensors.getTempC(T_soleil);
Serial.print("T_piscine : ");
Serial.print(piscine);
Serial.print(" T_soleil : ");
Serial.print(soleil);
if ( piscine < 32 )
{
if (soleil > (piscine + 2))
{
Active();
Temps++;
Serial.print(" Temps : ");
Serial.print(Temps);
}
else
{
Desactive();
}
}
else
{
Desactive();
}
Niveau matos à ma disposition :
Mon montage existant avec un arduino uno, deux sondes 18db20, un éméteur 433mhz.
Pour ce qui m'intéresse, j'ai des esp01 et des modules adaptateur pour esp01, sur ces modules j'ai quatre pin : Rx,Tx,Vcc,Gnd donc je pense qu'ils sont utilisables qu'en série, ce qui est sensé m'être utile.
J'ai aussi un ftdi pour les flasher.
Ce que j'ai besoin :
J'avais déjà essayé de flasher espeasy sur mes esp01 donc il me faudrait le prog de base à injecter dans l'esp01.
Puis j'aimerai déjà savoir sur quelle bibliothèque me lancer car j'en ai essayé plusieurs sans réel succès. Ce qui m'aiderai aussi c'est la partie câblage et comment tester si ça fonctionne. Bref si quelqu'un a un super tuto qui n'est pas obsolète.
PS: pour info j'ai déjà fait pas mal de recherches et testes hier.
Merci d'avance pour vos futures réponses et à bientôt.