Trochę było męczarni ale działa
Kod:
#include <OneWire.h>
#include <DallasTemperature.h>
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <LiquidCrystal_I2C.h>
#include <Timers.h>
#define treconnect 30 //czasy wywoływania Blynk.run przy braku łączności w sek
int liczreconnect = 10;
LiquidCrystal_I2C lcd(0x27, 16, 2);
Timers <3> akcja;
#define ONE_WIRE_BUS 5
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
BlynkTimer timer;
float SALON=0; //temperatura zbiornika
float BALKON=0; //temp bufora
float KUCHNIA=0; // temperatura 10p
float LAZIENKA=0; // temp głowicy
int stanLED_ok=0;
int LED; // wskaźnik działania procesora
char auth[] = "xxxxxxx"; //kod autoryzacji blynk
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "xxxxxxxx";// nazwa sieci
char pass[] = "xxxxxxxxx"; // hasło do wifi
void setup()
{
akcja.attach(0, 1000, testconnect); // timer 1 sek
WiFi.begin(ssid, pass);
Blynk.config(auth, "blynk-cloud.com", 8442); // dla serwera lokalnego
// Blynk.config(auth); /// dla Cloud server
// You can also specify server:
//Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 8442);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8442);
//WiFi.begin(auth,ssid, pass);
Blynk.connect();
if (Blynk.connected()) Blynk.run(); else Blynk.connect();
// Debug console
Serial.begin(9600);
lcd.backlight();
lcd.begin(16,2);
lcd.init();
Serial.println(LED);
sensors.begin();
sensors.requestTemperatures();
timer.setInterval(1000L, temp);
// The begin call takes the width and height. This
// Should match the number provided to the constructor.
}
void temp()
{
SALON = sensors.getTempCByIndex(0);
BALKON = sensors.getTempCByIndex(1);
KUCHNIA = sensors.getTempCByIndex(2);
LAZIENKA = sensors.getTempCByIndex(3);
sensors.requestTemperatures();
Blynk.virtualWrite(0,SALON);
Blynk.virtualWrite(1,BALKON);
Blynk.virtualWrite(2,KUCHNIA);
Blynk.virtualWrite(3,LAZIENKA);
stanLED_ok = !stanLED_ok;
if (stanLED_ok == 0) {
Blynk.virtualWrite(10,255);Blynk.setProperty(V10,"color","#D3435C");
}
else {
Blynk.virtualWrite(10,255);Blynk.setProperty(V10,"color","#04C0F8");
}
//Blynk.syncAll();
}
void loop()
{
sensors.requestTemperatures();
lcd.setCursor(0, 0);
lcd.print("1:");
lcd.setCursor(2, 0);
lcd.print(SALON);
lcd.setCursor(7,0);
lcd.print(" 2:");
lcd.setCursor(11,0);
lcd.print(BALKON);
lcd.setCursor(0, 1);
lcd.print("3:");
lcd.print(KUCHNIA);
lcd.setCursor(7,1);
lcd.print(" 4:");
lcd.setCursor(11,1);
lcd.print(LAZIENKA);
akcja.process(); // timer Timers.h
if (Blynk.connected()) {
Blynk.run();
}
timer.run();
}
void testconnect() //procedura wywoływana co 1 sek
{
if (Blynk.connected()) {
liczreconnect = treconnect;
} else {
liczreconnect--;
if (liczreconnect==0) {
Blynk.connect();
liczreconnect = treconnect;
}
}
}
@es2 z tego jak ja to rozumiem to tymi sposobami przypisany konkretną sonde do numerów.
Ja chce mieć sondy odpinane. Chce żeby np pierwsze gniazdo z od prawej strony miało w programie numer jeden i bez znaczenia jaką sonde tam podepne żeby przypisywał ją do numeru w programie 1. Drugie gniazdo do 2. itd...