first commit
This commit is contained in:
269
ESP8266_DOMOTICZ_DIMMER_THERMISTANCE/Domoticz.cpp
Normal file
269
ESP8266_DOMOTICZ_DIMMER_THERMISTANCE/Domoticz.cpp
Normal file
@@ -0,0 +1,269 @@
|
||||
#include "Domoticz.h"
|
||||
|
||||
Domoticz::Domoticz(String domoticz, String port, const char* ssid, const char* pass)
|
||||
{
|
||||
_domoticz = domoticz;
|
||||
_port = port;
|
||||
_ssid = ssid;
|
||||
_pass = pass;
|
||||
|
||||
// // Domo
|
||||
// _domoc[_domoticz.length() + 1];
|
||||
// _domoticz.toCharArray(_domoc, _domoticz.length() + 1);
|
||||
//
|
||||
// // Port
|
||||
// char portc[_port.length() + 1];
|
||||
// _port.toCharArray(portc, _port.length() + 1);
|
||||
// _iport = atoi(portc);
|
||||
|
||||
}
|
||||
|
||||
boolean Domoticz::connect()
|
||||
{
|
||||
|
||||
// Domo
|
||||
char _domoc[_domoticz.length() + 1];
|
||||
_domoticz.toCharArray(_domoc, _domoticz.length() + 1);
|
||||
|
||||
// Port
|
||||
char portc[_port.length() + 1];
|
||||
_port.toCharArray(portc, _port.length() + 1);
|
||||
int _iport = atoi(portc);
|
||||
|
||||
boolean connected = _client.connect(_domoc, _iport);
|
||||
Serial.print(_domoc);
|
||||
Serial.print(" ");
|
||||
Serial.print(_iport);
|
||||
Serial.print(" ");
|
||||
Serial.print(" connected ");
|
||||
Serial.println(connected);
|
||||
|
||||
return connected;
|
||||
}
|
||||
|
||||
void Domoticz::close()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Domoticz::initWifi()
|
||||
{
|
||||
WiFi.mode(WIFI_AP);
|
||||
WiFi.begin(_ssid, _pass); //Connect to local Wifi
|
||||
|
||||
Serial.println();
|
||||
Serial.print("Connecting to WiFi");
|
||||
while (WiFi.status() != WL_CONNECTED)
|
||||
{
|
||||
Serial.print(".");
|
||||
delay(500);
|
||||
}
|
||||
Serial.println("WiFi Connected!");
|
||||
Serial.print("Connexion au reseau ");
|
||||
Serial.println(WiFi.localIP());
|
||||
}
|
||||
|
||||
void Domoticz::initWifiStatic(
|
||||
IPAddress ip,
|
||||
IPAddress gateway,
|
||||
IPAddress subnet,
|
||||
IPAddress DNS)
|
||||
{
|
||||
WiFi.config(ip, gateway, subnet, DNS);
|
||||
delay(100);
|
||||
WiFi.mode(WIFI_STA);
|
||||
|
||||
WiFi.begin(_ssid, _pass);
|
||||
Serial.print("Connecting");
|
||||
while (WiFi.status() != WL_CONNECTED) {
|
||||
Serial.print(".");
|
||||
delay(200);
|
||||
}
|
||||
while (WiFi.waitForConnectResult() != WL_CONNECTED) {
|
||||
Serial.println();
|
||||
Serial.println("Fail connecting");
|
||||
delay(5000);
|
||||
ESP.restart();
|
||||
}
|
||||
Serial.print(" static OK ");
|
||||
Serial.print("Module IP: ");
|
||||
Serial.println(WiFi.localIP());
|
||||
}
|
||||
|
||||
|
||||
String Domoticz::generateKey()
|
||||
{
|
||||
// WiFi.mode(WIFI_AP);
|
||||
|
||||
// Do a little work to get a unique-ish name. Append the
|
||||
// last two bytes of the MAC (HEX'd) to "Thing-":
|
||||
uint8_t mac[WL_MAC_ADDR_LENGTH];
|
||||
WiFi.softAPmacAddress(mac);
|
||||
String macID = String(mac[WL_MAC_ADDR_LENGTH - 2], HEX) + String(mac[WL_MAC_ADDR_LENGTH - 1], HEX);
|
||||
macID.toUpperCase();
|
||||
String AP_NameString = "ESP8266 Thing " + macID;
|
||||
|
||||
char AP_NameChar[AP_NameString.length() + 1];
|
||||
memset(AP_NameChar, 0, AP_NameString.length() + 1);
|
||||
|
||||
for (int i = 0; i < AP_NameString.length(); i++)
|
||||
{
|
||||
AP_NameChar[i] = AP_NameString.charAt(i);
|
||||
}
|
||||
|
||||
// WiFi.softAP(AP_NameChar, WiFiAPPSK);
|
||||
|
||||
Serial.println("macID=" + macID);
|
||||
|
||||
return macID;
|
||||
}
|
||||
|
||||
IPAddress Domoticz::getIP(String macId)
|
||||
{
|
||||
IPAddress ip; //(192, 168, 1, 222);
|
||||
|
||||
String fst = macId.substring(0, 2);
|
||||
String sec = macId.substring(2);
|
||||
|
||||
char fstc[fst.length() + 1];
|
||||
fst.toCharArray(fstc, fst.length() + 1);
|
||||
|
||||
char secc[sec.length() + 1];
|
||||
sec.toCharArray(secc, fst.length() + 1);
|
||||
|
||||
return IPAddress(192, 168, strtol(fstc, 0, 16), strtol(secc, 0, 16));
|
||||
|
||||
}
|
||||
|
||||
void Domoticz::executeJson(String json, String svalue, String nvalue)
|
||||
{
|
||||
|
||||
// Domo
|
||||
char _domoc[_domoticz.length() + 1];
|
||||
_domoticz.toCharArray(_domoc, _domoticz.length() + 1);
|
||||
|
||||
// Port
|
||||
char portc[_port.length() + 1];
|
||||
_port.toCharArray(portc, _port.length() + 1);
|
||||
int _iport = atoi(portc);
|
||||
|
||||
_client.print("GET " + json); //"GET /json.htm?type=command¶m=getuservariables");
|
||||
|
||||
if (svalue != "") {
|
||||
_client.print("&svalue=" + svalue);
|
||||
}
|
||||
if (nvalue != "") {
|
||||
_client.print("&nvalue=" + nvalue);
|
||||
}
|
||||
Serial.println(json + "&svalue=" + svalue + "&nvalue=" + nvalue);
|
||||
|
||||
_client.println(" HTTP/1.1");
|
||||
_client.print("Host: ");
|
||||
_client.print(_domoc);
|
||||
_client.print(":");
|
||||
_client.println(_iport);
|
||||
_client.println("User-Agent: Arduino-ethernet");
|
||||
_client.println("Connection: close");
|
||||
_client.println();
|
||||
}
|
||||
|
||||
void Domoticz::readResponse()
|
||||
{
|
||||
int x = 0; // variable for looping
|
||||
char dataStr[16]; //array to store the response
|
||||
char c;
|
||||
|
||||
while(_client.available()) { //_client.connected() || _client.available()) {
|
||||
String req = readLine();
|
||||
Serial.println(req);
|
||||
if (req == "") {
|
||||
break;
|
||||
}
|
||||
// c = _client.read(); //read first character
|
||||
// while (c!= '<') { //while < character is not coming yet, keep reading character
|
||||
// c = _client.read();
|
||||
// }
|
||||
// c = _client.read(); //read the '<' character, but not storing in array
|
||||
// while (c != '>') { //while > character is not coming yet,
|
||||
// dataStr[x] = c; //Store character in array
|
||||
// x++; //incrementing index array
|
||||
// }
|
||||
// for (x=0; x<12; x++) {
|
||||
// Serial.print(dataStr[x]);
|
||||
// }
|
||||
}
|
||||
Serial.println("Fin réponse");
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
// Read current supply voltage
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
String Domoticz::readVcc() {
|
||||
// most exact output
|
||||
uint16_t v = ESP.getVcc();
|
||||
float_t v_cal = ((float) v / 1024.0f);
|
||||
char v_str[10];
|
||||
dtostrf(v_cal, 5, 3, v_str);
|
||||
sprintf(v_str, "%s", v_str);
|
||||
Serial.print("Tension lue ");
|
||||
Serial.println(String(v_str));
|
||||
|
||||
return String(v_str); //ESP.getVcc() / 1024.0f; // Vcc in millivolts
|
||||
}
|
||||
|
||||
String Domoticz::getIndexOfString(String data, String separator, int index)
|
||||
{
|
||||
int found = 0;
|
||||
int strIndex[] = { 0, -1 };
|
||||
int maxIndex = data.length() - 1;
|
||||
|
||||
for (int i = 0; i <= maxIndex && found <= index; i++) {
|
||||
if (data.charAt(i) == separator.charAt(0) || i == maxIndex) {
|
||||
found++;
|
||||
strIndex[0] = strIndex[1] + 1;
|
||||
strIndex[1] = (i == maxIndex) ? i + 1 : i;
|
||||
}
|
||||
}
|
||||
return found > index ? data.substring(strIndex[0], strIndex[1]) : "";
|
||||
}
|
||||
|
||||
String Domoticz::readLine()
|
||||
{
|
||||
return _client.readStringUntil('\n');
|
||||
}
|
||||
|
||||
void Domoticz::readTempDayValues(String idx)
|
||||
{
|
||||
String json = "/json.htm?type=graph&sensor=temp&idx=" + idx + "&range=day";
|
||||
int nb = 0;
|
||||
int nbVal = 0;
|
||||
Serial.println("readTempDayValues " + idx);
|
||||
connect();
|
||||
executeJson(json, "", "");
|
||||
while (1)
|
||||
{
|
||||
String line = readLine();
|
||||
|
||||
if (line == "") {
|
||||
break;
|
||||
}
|
||||
|
||||
if (line.indexOf("\"te\"") != -1) {
|
||||
//Serial.print(line + " ");
|
||||
nbVal++;
|
||||
if (nbVal % 10) {
|
||||
String val = line.substring(line.indexOf(":") + 2, line.length());
|
||||
// Serial.println(val);
|
||||
}
|
||||
}
|
||||
nb++;
|
||||
}
|
||||
Serial.print("Nombre de lignes ");
|
||||
Serial.println(nb);
|
||||
close();
|
||||
}
|
||||
|
||||
int Domoticz::strToHex(char str[])
|
||||
{
|
||||
return (int) strtol(str, 0, 16);
|
||||
}
|
||||
40
ESP8266_DOMOTICZ_DIMMER_THERMISTANCE/Domoticz.h
Normal file
40
ESP8266_DOMOTICZ_DIMMER_THERMISTANCE/Domoticz.h
Normal file
@@ -0,0 +1,40 @@
|
||||
#ifndef Domoticz_h
|
||||
#define Domoticz_h
|
||||
|
||||
#include <ESP8266WiFi.h>
|
||||
|
||||
//IPAddress ip(192, 168, 1, 222);
|
||||
|
||||
class Domoticz
|
||||
{
|
||||
public:
|
||||
Domoticz(String domoticz, String port, const char* ssid, const char* pass);
|
||||
boolean connect();
|
||||
void close();
|
||||
void initWifi();
|
||||
void initWifiStatic(IPAddress ip, IPAddress gateway, IPAddress subnet, IPAddress DNS);
|
||||
void executeJson(String json, String svalue, String nvalue);
|
||||
String generateKey();
|
||||
IPAddress getIP(String macId);
|
||||
String readLine();
|
||||
void readResponse();
|
||||
String readVcc();
|
||||
void readTempDayValues(String idx);
|
||||
void getIdFromDomoticz(String macID);
|
||||
int strToHex(char str[]);
|
||||
|
||||
static String getIndexOfString(String data, String separator, int index);
|
||||
private:
|
||||
|
||||
const char* _ssid;
|
||||
const char* _pass;
|
||||
public:
|
||||
WiFiClient _client;
|
||||
int _iport;
|
||||
String _domoticz;
|
||||
String _port;
|
||||
char _domoc[];
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,391 @@
|
||||
|
||||
/////////////////////
|
||||
// Domoticz Classe
|
||||
/////////////////////
|
||||
|
||||
#include "Domoticz.h"
|
||||
#include <ESP8266WebServer.h>
|
||||
#include <Ticker.h>
|
||||
|
||||
#define NO_THERMISTANCE true
|
||||
void handleRoot(void);
|
||||
int getValueFromParam();
|
||||
void setPwm(int pwm);
|
||||
|
||||
|
||||
Ticker flipper;
|
||||
Domoticz domo("192.168.1.3", "81", "Livebox-37cc", "8A6060920A8A86896F770F2C47");
|
||||
|
||||
IPAddress gateway(192, 168, 1, 1);
|
||||
IPAddress subnet(255, 255, 0, 0);
|
||||
IPAddress DNS(192, 168, 1, 1);
|
||||
|
||||
// https://learn.adafruit.com/thermistor/using-a-thermistor
|
||||
|
||||
#ifndef NO_THERMISTANCE
|
||||
// which analog pin to connect
|
||||
#define THERMISTORPIN A0
|
||||
// resistance at 25 degrees C
|
||||
#define THERMISTORNOMINAL 11200
|
||||
// temp. for nominal resistance (almost always 25 C)
|
||||
#define TEMPERATURENOMINAL 20
|
||||
// how many samples to take and average, more takes longer
|
||||
// but is more 'smooth'
|
||||
#define NUMSAMPLES 5
|
||||
// The beta coefficient of the thermistor (usually 3000-4000)
|
||||
#define BCOEFFICIENT 3950
|
||||
// the value of the 'other' resistor
|
||||
#define SERIESRESISTOR 6700
|
||||
|
||||
#define DOMOTICZ_DEVICE_ID 1154
|
||||
uint16_t samples[NUMSAMPLES];
|
||||
#endif
|
||||
|
||||
// DIMMER
|
||||
ESP8266WebServer server(80);
|
||||
|
||||
void ICACHE_RAM_ATTR handleInterrupt();
|
||||
|
||||
// Dimmer
|
||||
#include <RBDdimmer.h>//
|
||||
|
||||
#define LEDn 15
|
||||
#define outputPin 13
|
||||
#define zerocross 12 // for boards with CHANGEBLE input pins
|
||||
#define pas 5
|
||||
|
||||
dimmerLamp dimmer(outputPin, zerocross); //initialase port for dimmer for ESP8266, ESP32, Arduino due boards
|
||||
//dimmerLamp dimmer(outputPin); //initialase port for dimmer for MEGA, Leonardo, UNO, Arduino M0, Arduino Zero
|
||||
|
||||
int outVal = 0;
|
||||
|
||||
String webpage = R"=(
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
.btn {
|
||||
border: 1px black;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="LEDn" style="background:#C0C0C0; width:128px; height:64px">
|
||||
<div class="btn" style="background:#C0C0C0; width:100%; height:10%">
|
||||
<h2 align="center">ON</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div id="pwmplus" style="background:#C0C0C0; width:128px; height:64px">
|
||||
<div class="btn" style="background:#C0C0C0; width:100%; height:10%">
|
||||
<h2 align="center">PWM plus</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div id="pwmminus" style="background:#C0C0C0; width:128px; height:64px">
|
||||
<div class="btn" style="background:#C0C0C0; width:100%; height:10%">
|
||||
<h2 align="center">PWM minus</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div id="pwmstop" style="background:#C0C0C0; width:128px; height:64px">
|
||||
<div class="btn" style="background:#C0C0C0; width:100%; height:10%">
|
||||
<h2 align="center">PWM stop</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div id="pwmexact" style="background:#C0C0C0; width:128px; height:64px">
|
||||
<div class="btn" style="background:#C0C0C0; width:100%; height:10%">
|
||||
<h2 align="center">PWM exact</h2>
|
||||
</div>
|
||||
</div>
|
||||
<p>@@pwmCount@@</p>
|
||||
</body>
|
||||
<script>
|
||||
window.addEventListener('load', function(){
|
||||
var n = document.getElementById('LEDn')
|
||||
var exact = document.getElementById('pwmexact')
|
||||
var minus = document.getElementById('pwmminus')
|
||||
var plus = document.getElementById('pwmplus')
|
||||
var stop = document.getElementById('pwmstop')
|
||||
|
||||
var xhr = new XMLHttpRequest();
|
||||
|
||||
n.onmousedown = function(){
|
||||
xhr.open("GET", "LEDon", true);
|
||||
xhr.send();
|
||||
setTimeout('location.reload(true)', 1000);
|
||||
}
|
||||
n.addEventListener('touchstart', function(e){
|
||||
xhr.open("GET", "LEDon", true);
|
||||
xhr.send();
|
||||
setTimeout('location.reload(true)', 1000);
|
||||
}, false)
|
||||
plus.onmousedown = function(){
|
||||
xhr.open("GET", "plus", true);
|
||||
xhr.send();
|
||||
setTimeout('location.reload(true)', 1000);
|
||||
}
|
||||
stop.onmousedown = function(){
|
||||
xhr.open("GET", "stop", true);
|
||||
xhr.send();
|
||||
setTimeout('location.reload(true)', 1000);
|
||||
}
|
||||
|
||||
plus.addEventListener('touchstart', function(e){
|
||||
xhr.open("GET", "plus", true);
|
||||
xhr.send();
|
||||
setTimeout('location.reload(true)', 1000);
|
||||
}, false)
|
||||
minus.onmousedown = function(){
|
||||
xhr.open("GET", "minus", true);
|
||||
xhr.send();
|
||||
setTimeout('location.reload(true)', 1000);
|
||||
}
|
||||
minus.addEventListener('touchstart', function(e){
|
||||
xhr.open("GET", "minus", true);
|
||||
xhr.send();
|
||||
setTimeout('location.reload(true)', 1000);
|
||||
}, false)
|
||||
exact.onmousedown = function(){
|
||||
xhr.open("GET", "exact", true);
|
||||
xhr.send();
|
||||
setTimeout('location.reload(true)', 1000);
|
||||
}
|
||||
exact.addEventListener('touchstart', function(e){
|
||||
xhr.open("GET", "exact", true);
|
||||
xhr.send();
|
||||
setTimeout('location.reload(true)', 1000);
|
||||
}, false)
|
||||
},false)
|
||||
</script>
|
||||
</html>
|
||||
)=";
|
||||
|
||||
bool led;
|
||||
int pwm;
|
||||
int pwmCount;
|
||||
|
||||
void ledON(){
|
||||
led=1;
|
||||
digitalWrite(LEDn, led);
|
||||
handleRoot();
|
||||
|
||||
}
|
||||
|
||||
void ledOFF(){
|
||||
led=0;
|
||||
digitalWrite(LEDn, led);
|
||||
handleRoot();
|
||||
}
|
||||
//pwm functions - if pwm is set to 1/-1 it will in-/decrease pwmCounter in loop()
|
||||
void exact(){
|
||||
int value_to_set = getValueFromParam();
|
||||
|
||||
pwm=value_to_set;
|
||||
pwmCount = pwm;
|
||||
if (pwmCount>100) pwmCount = 100;
|
||||
if (pwmCount < 0) {
|
||||
pwmCount = 0;
|
||||
ledOFF();
|
||||
}
|
||||
else {
|
||||
ledON();
|
||||
}
|
||||
|
||||
Serial.println(pwmCount);
|
||||
dimmer.setPower(pwmCount);
|
||||
handleRoot();
|
||||
}
|
||||
void plus(){
|
||||
int value_to_set = getValueFromParam();
|
||||
|
||||
pwm=value_to_set;
|
||||
setPwm(pwm);
|
||||
handleRoot();
|
||||
}
|
||||
|
||||
void minus(){
|
||||
int value_to_set = getValueFromParam();
|
||||
pwm=-value_to_set;
|
||||
|
||||
setPwm(pwm);
|
||||
handleRoot();
|
||||
}
|
||||
|
||||
void stopPWM(){
|
||||
pwm=-pwmCount;
|
||||
setPwm(pwm);
|
||||
ledOFF();
|
||||
handleRoot();
|
||||
}
|
||||
|
||||
void setPwm(int pwm)
|
||||
{
|
||||
pwmCount += pwm;
|
||||
if (pwmCount>100) pwmCount = 100;
|
||||
if (pwmCount < 0) {
|
||||
pwmCount = 0;
|
||||
ledOFF();
|
||||
}
|
||||
else {
|
||||
ledON();
|
||||
}
|
||||
|
||||
Serial.println(pwmCount);
|
||||
dimmer.setPower(pwmCount);
|
||||
}
|
||||
//----------------------------------------------------------------------------------
|
||||
void handleRoot(void){
|
||||
String page = webpage;
|
||||
page.replace("@@pwmCount@@", String(pwmCount));
|
||||
//Serial.println(page);
|
||||
server.send(200, "text/html", page);
|
||||
}
|
||||
|
||||
int getValueFromParam()
|
||||
{
|
||||
String message = "Number of args received:";
|
||||
|
||||
message += server.args();
|
||||
|
||||
for (int i = 0; i < server.args(); i++) {
|
||||
message = message + ("Arg nº" + String(i) + " –> ");
|
||||
message = message + (server.argName(i) + ": ");
|
||||
message = message + (server.arg(i) + "\n");
|
||||
if (server.argName(i) == "value") {
|
||||
return String(server.arg(i)).toInt();
|
||||
}
|
||||
}
|
||||
Serial.println(message);
|
||||
return pas;
|
||||
}
|
||||
|
||||
|
||||
void setup()
|
||||
{
|
||||
|
||||
Serial.begin(115200);
|
||||
//delay(200);
|
||||
String macId = domo.generateKey();
|
||||
IPAddress ip = domo.getIP(macId);
|
||||
|
||||
// Conversion d'objet en pointeur
|
||||
domo.initWifiStatic(ip, gateway, subnet, DNS);
|
||||
|
||||
|
||||
//Server________________________________
|
||||
server.begin();
|
||||
server.on("/", handleRoot);
|
||||
server.on("/LEDon", ledON);
|
||||
server.on("/LEDoff", ledOFF);
|
||||
server.on("/minus", minus);
|
||||
server.on("/plus", plus);
|
||||
server.on("/exact", exact);
|
||||
server.on("/stop", stopPWM);
|
||||
//initialize variables__________________
|
||||
pwm = 0;
|
||||
pwmCount= 0;
|
||||
led = 0;
|
||||
Serial.print("Module IP: ");
|
||||
Serial.println(WiFi.softAPIP());
|
||||
|
||||
// Dimmer
|
||||
Serial.println("Dimmer Program is starting...");
|
||||
delay(1000);
|
||||
dimmer.begin(NORMAL_MODE, ON); //dimmer initialisation: name.begin(MODE, STATE)
|
||||
Serial.println("Set value");
|
||||
dimmer.setPower(pwmCount); // setPower(0-100%);
|
||||
|
||||
// send temperature every 30s
|
||||
// flipper.attach(30, flip);
|
||||
}
|
||||
|
||||
#ifndef NO_THERMISTANCE
|
||||
void flip() {
|
||||
uint8_t i;
|
||||
float average;
|
||||
|
||||
// take N samples in a row, with a slight delay
|
||||
for (i=0; i< NUMSAMPLES; i++) {
|
||||
samples[i] = analogRead(THERMISTORPIN);
|
||||
delay(10);
|
||||
}
|
||||
|
||||
// average all the samples out
|
||||
average = 0;
|
||||
for (i=0; i< NUMSAMPLES; i++) {
|
||||
average += samples[i];
|
||||
}
|
||||
average /= NUMSAMPLES;
|
||||
|
||||
Serial.print("Average analog reading ");
|
||||
Serial.println(average);
|
||||
|
||||
// convert the value to resistance
|
||||
average = 1023 / average - 1;
|
||||
average = SERIESRESISTOR / average;
|
||||
Serial.print("Thermistor resistance ");
|
||||
Serial.println(average);
|
||||
|
||||
float steinhart;
|
||||
steinhart = average / THERMISTORNOMINAL; // (R/Ro)
|
||||
steinhart = log(steinhart); // ln(R/Ro)
|
||||
steinhart /= BCOEFFICIENT; // 1/B * ln(R/Ro)
|
||||
steinhart += 1.0 / (TEMPERATURENOMINAL + 273.15); // + (1/To)
|
||||
steinhart = 1.0 / steinhart; // Invert
|
||||
steinhart -= 273.15; // convert to C
|
||||
|
||||
Serial.print("Temperature ");
|
||||
Serial.print(steinhart * 1.25);
|
||||
Serial.println(" *C");
|
||||
|
||||
printInfo(steinhart * 1.25);
|
||||
}
|
||||
#endif
|
||||
|
||||
long temps = 0;
|
||||
void loop()
|
||||
{
|
||||
server.handleClient();
|
||||
|
||||
#ifndef NO_THERMISTANCE
|
||||
if (millis() > temps + 30000) {
|
||||
flip();
|
||||
temps = millis();
|
||||
}
|
||||
#endif
|
||||
// sleep(300);
|
||||
|
||||
// delay(5000);
|
||||
}
|
||||
|
||||
//void sleep(int sleepTime)
|
||||
//{
|
||||
// Serial.print("Go to sleep ");
|
||||
// Serial.println(sleepTime);
|
||||
// delay(20);
|
||||
//
|
||||
// ESP.deepSleep(sleepTime * 1000000L);
|
||||
//
|
||||
// //sleepWifi();
|
||||
// delay(200);
|
||||
//}
|
||||
|
||||
#ifndef NO_THERMISTANCE
|
||||
void printInfo(double temperature)
|
||||
{
|
||||
// Domoticz format /json.htm?type=command¶m=udevice&idx=IDX&nvalue=0&svalue=TEMP;HUM;HUM_STAT;BAR;BAR_FOR
|
||||
|
||||
boolean connected = domo.connect();
|
||||
|
||||
if (connected) {
|
||||
Serial.println("Dans set temperature");
|
||||
String svalue = String(temperature) ;
|
||||
Serial.println(svalue);
|
||||
domo.executeJson("/json.htm?type=command¶m=udevice&idx=1154", svalue, "0");
|
||||
domo._client.stop();
|
||||
delay(200);
|
||||
}
|
||||
|
||||
Serial.print("Time = ");
|
||||
Serial.println(millis());
|
||||
|
||||
delay(200);
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user