Спасибо! Очень помогло.Вот такая команда в сетапе должна востановить все пины на устройстве:
Blynk.syncAll(); //синхронизация кнопок
Спасибо! Очень помогло.Вот такая команда в сетапе должна востановить все пины на устройстве:
Blynk.syncAll(); //синхронизация кнопок
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#define Sigaon 12
char auth[] = "xxxx";
char ssid[] = "xxxxx";
char pass[] = "xxxxx";
void setup() {
Serial.begin(9600);
Blynk.begin(auth, ssid, pass, IPAddress(xxx.xxx.xxx.xxx), 8080);
pinMode(Sigaon, OUTPUT);
digitalWrite(Sigaon, LOW);
}
void loop()
{
Blynk.run();
}
надо внимательно выполнить все процедуры запуска. Сосредоточьтесь только на одном конкретном устройстве.Вот, что-то не получается у меня его запуститm, ни на UNO , ни на ESP
надо внимательно выполнить все процедуры запуска. Сосредоточьтесь только на одном конкретном устройстве.Вот, что-то не получается у меня его запуститm, ни на UNO , ни на ESP
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include "BlynkSimpleEsp8266.h"
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include "EmonLib.h" // Include Emon Library
#define SEALEVELPRESSURE_HPA (1013.25)
EnergyMonitor emon1; // Create an instance
//Setup connection of the sensor
Adafruit_BME280 bme; // I2C
const char* ssid = "TP-LINK_BCD82df";
const char* password = "12321";
const char* blynkToken = "Fdp12HFhZmexlTN72tOTsbyVqXwdzk3Ov";
bool isWiFiConnected = false;
int numTimerReconnect = 0;
WiFiEventHandler gotIpEventHandler;
WiFiEventHandler disconnectedEventHandler;
BlynkTimer timer;
float pressure; //To store the barometric pressure (Pa)
float temperature; //To store the temperature (oC)
int altimeter; //To store the humidity (%) (you can also use it as a float variable)
int oldBrightV0 = 0, newBrightV0 = 0, oldBrightV5 = 0, newBrightV5 = 0;
void WiFiStationConnected(const WiFiEventStationModeGotIP& event);
void WiFiStationDisconnected(const WiFiEventStationModeDisconnected& event);
void ReconnectBlynk(void);
void BlynkRun(void);
BLYNK_WRITE(V0)
{
int pinValue = param.asInt();
pinValue = map(pinValue, 0, 100, 0, 1023);
newBrightV0 = pinValue;
}
BLYNK_WRITE(V5)
{
int pinValue = param.asInt();
pinValue = map(pinValue, 0, 100, 0, 1023);
newBrightV5 = pinValue;
}
BLYNK_CONNECTED()
{
Blynk.syncAll();
}
void setup()
{
bme.begin(0x76); //Begin the sensor
Serial.begin(115200);
emon1.voltage(A0, 873, 1.7); // Voltage: input pin, calibration, phase_shift
pinMode(LED_BUILTIN, OUTPUT);
pinMode(D7, OUTPUT);
pinMode(D8, OUTPUT);
gotIpEventHandler = WiFi.onStationModeGotIP(&WiFiStationConnected);
disconnectedEventHandler = WiFi.onStationModeDisconnected(&WiFiStationDisconnected);
WiFi.begin(ssid, password);
Blynk.config(blynkToken, "blynk-cloud.com", 8080);
if (Blynk.connect())
{
Serial.printf("[%8lu] setup: Blynk connected\r\n", millis());
}
else
{
Serial.printf("[%8lu] setup: Blynk no connected\r\n", millis());
}
Serial.printf("[%8lu] Setup: Start timer reconnected\r\n", millis());
numTimerReconnect = timer.setInterval(30000, ReconnectBlynk);
timer.setInterval(2000L, ReadSensors); // read sensor every 2s
timer.setInterval(60L, setBrightSlowD7); // set bright LED on D7 every 0.06s
timer.setInterval(60L, setBrightSlowD8); // set bright LED on D8 every 0.06s
}
void setBrightSlowD7()
{
if (newBrightV0 != oldBrightV0) {
if (abs(newBrightV0 - oldBrightV0) >= 35) {
if (newBrightV0 >= oldBrightV0) {
oldBrightV0 = oldBrightV0 + 35;
}
else {
oldBrightV0 = oldBrightV0 - 35;
}
}
else {
oldBrightV0 = newBrightV0;
}
analogWrite(D7, oldBrightV0);
}
}
void setBrightSlowD8()
{
if (newBrightV5 != oldBrightV5) {
if (abs(newBrightV5 - oldBrightV5) >= 35) {
if (newBrightV5 >= oldBrightV5) {
oldBrightV5 = oldBrightV5 + 35;
}
else {
oldBrightV5 = oldBrightV5 - 35;
}
}
else {
oldBrightV5 = newBrightV5;
}
analogWrite(D8, oldBrightV5);
}
}
void ReadSensors() {
//Read values from the sensor:
digitalWrite(LED_BUILTIN, LOW);
pressure = bme.readPressure();
temperature = bme.readTemperature();
altimeter = bme.readHumidity ();
Blynk.virtualWrite(V10, millis()/1000/60);
emon1.calcVI(20, 2000); // Calculate all. No.of half wavelengths (crossings), time-out
float Vrms = (emon1.Vrms - 3);
Blynk.virtualWrite(V1, pressure / 133.33); // write pressure to V1 value display widget
Blynk.virtualWrite(V3, temperature); // write temperature to V3 value display widget
Blynk.virtualWrite(V2, altimeter); // write altimeter to V2 value display widget
Blynk.virtualWrite(V4, Vrms); // write voltage to V4 value display widget
//Print values to serial monitor:
Serial.print(F("Pressure: "));
Serial.print(pressure / 133.33);
Serial.print(" mmHg");
Serial.print("\t");
Serial.print(("Temp: "));
Serial.print(temperature);
Serial.print(" °C");
Serial.print("\t");
Serial.print("Humidity: ");
Serial.print(altimeter); // this should be adjusted to your local forcase
Serial.println(" %");
digitalWrite(LED_BUILTIN, HIGH);
}
void loop()
{
BlynkRun();
timer.run();
}
void WiFiStationConnected(const WiFiEventStationModeGotIP& event)
{
isWiFiConnected = true;
Serial.printf("[%8lu] Interrupt: Connected to AP, Ip: ", millis());
Serial.println(WiFi.localIP());
}
void WiFiStationDisconnected(const WiFiEventStationModeDisconnected& event)
{
isWiFiConnected = false;
Serial.printf("[%8lu] Interrupt: Disconnected to AP!\r\n", millis());
}
void BlynkRun(void)
{
if (isWiFiConnected)
{
if (Blynk.connected())
{
if (timer.isEnabled(numTimerReconnect))
{
timer.disable(numTimerReconnect);
Serial.printf("[%8lu] BlynkRun: Stop timer reconnected\r\n", millis());
}
Blynk.run();
}
else
{
if (!timer.isEnabled(numTimerReconnect))
{
timer.enable(numTimerReconnect);
Serial.printf("[%8lu] BlynkRun: Start timer reconnected\r\n", millis());
}
}
}
}
void ReconnectBlynk(void)
{
if (!Blynk.connected())
{
if (Blynk.connect())
{
Serial.printf("[%8lu] ReconnectBlynk: Blynk reconnected\r\n", millis());
}
else
{
Serial.printf("[%8lu] ReconnectBlynk: Blynk not reconnected\r\n", millis());
}
}
else
{
Serial.printf("[%8lu] ReconnectBlynk: Blynk connected\r\n", millis());
}
}
Редактирование доступно в течении 5 минут после написания.Так и не понял как редактировать сообщение...
Перепробовал все, что нашел на ESP для диммера, реакция та же. А переписать мне знаний не хватит, могу много чего, но программирование не моепоискать другие библиотеки или переписать их так
Тогда разбивайте на несколько устройств, которые будут отвечать каждый за свою часть. Или обратитесь в тему https://esp8266.ru/forum/forums/custom-projects/Перепробовал все, что нашел на ESP для диммера, реакция та же. А переписать мне знаний не хватит, могу много чего, но программирование не мое
У меня несколько лет в таком режиме работает управление шторами. Каждое окно на отдельном дивайсе, а интерфейс один.Приветствую!
Такой вопрос. Имеется два девайса ESP8266 для разных целей и задач, находятся в разных сетях, но вообще сети объедены через VPN. Так вот на обоих я использовал один и тот же ID (идентификатор). Пока всё вроде работает. Чем то это чревато?
/*************************************************************
/* ----------------ПИНЫ------------
* D1- датчики температуры DS18B20
* D2- "сухой контакт"
* А0- АС_220 датчик уведомления
* V0- RELE_3
* V1- TEMP_1
* V2- TEMP_2
* V3- seconds время работы
* V4- RELE_4
* V5- RELE_1
* V6- RELE_2
* V7 -_~220
* V8 - сухой контакт
*************************************************************/
#define BLYNK_TEMPLATE_ID " "
#define BLYNK_DEVICE_NAME "Prototip 2"
#define BLYNK_AUTH_TOKEN "Ix50 Jfp "
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "NERI";
char pass[] = "VA w u";
#define RELE_1 D5
#define RELE_2 D6
#define RELE_3 D0
#define RELE_4 D7
//#define AC A0 //контроль наличия ~220v
//int val = 0;
////температурные пороги для регулятора T:
//int m =25;
//int n =22;
//const int btnPin = D2;//вход контроля контакта
//WidgetLED LED(V8);
// Подключение DS18B20
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS D1
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
BlynkTimer timer;//мониторинг времени
void myTimerEvent() //каждую секунду отправляет время безотказной
//работы Arduino на виртуальный вывод V3
{
Blynk.virtualWrite(V3, millis() / 1000 );
}
BLYNK_CONNECTED()
{
Blynk.syncVirtual(V5,V6,V0,V4);
}
BLYNK_WRITE(V5)
{
int value = param.asInt();
if(param.asInt() == 1)
{
digitalWrite(RELE_1,LOW);
}
else
{
digitalWrite(RELE_1,HIGH);
}
}
BLYNK_WRITE(V6)
{
int value = param.asInt();
if(param.asInt() == 1)
{
digitalWrite(RELE_2,LOW);
}
else
{
digitalWrite(RELE_2,HIGH);
}
}
BLYNK_WRITE(V0)
{
int value = param.asInt();
if(param.asInt() == 1)
{
digitalWrite(RELE_3,LOW);
}
else
{
digitalWrite(RELE_3,HIGH);
}}
BLYNK_WRITE(V4)
{
int value = param.asInt();
if(param.asInt() == 1)
{
digitalWrite(RELE_4,LOW);
}
else
{
digitalWrite(RELE_4,HIGH);
}
}
void sendTemps()
{
sensors.requestTemperatures();
float temp = sensors.getTempCByIndex(0);
float temp1 = sensors.getTempCByIndex(1);
Blynk.virtualWrite(V1, temp );
delay(100);
Blynk.virtualWrite(V2, temp1);
delay(100);
Serial.println (temp );
}
void setup()
{
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
sensors.begin(); //DS
pinMode (RELE_1,OUTPUT);
digitalWrite (RELE_1, HIGH);
pinMode (RELE_2,OUTPUT);
digitalWrite (RELE_2, HIGH);
pinMode (RELE_3,OUTPUT);
digitalWrite (RELE_3, HIGH);
pinMode (RELE_4 ,OUTPUT);
digitalWrite(RELE_4,HIGH);
/****************MAIL*****************************/
timer.setInterval(2000L, mail);
}
void mail(){
static bool mailSent = false;
float sent=sensors.getTempCByIndex(0);
if (sent >= 25 && !mailSent) {
Blynk.email("vgokh@mail.ru", "ВНИМАНИЕ перегрев!");
//отправка майла при приходе сигнала
mailSent = true;
}
else if (sent < 25) mailSent = false;
}
/****************MAIL*****************************/
void loop()
{
Blynk.run();
sendTemps();
mail();
timer.run();// Initiates SimpleTimer
}