Вячеслав1982
New member
Добрый день, уважаемые форумчане! Начал делать управление теплицей на основе есп 8266, датчика DHT11, фоторезистора, крана с электроприводом штока, четырехканального реле, управление через Блунк. Но к сожалению имею весьма скромные познания в программировании вообще и С++ в частности. Поэтому скетч составляю из примеров Ардуино ИДЕ. Сначало в пример ЕСП8266_Standalone, который вместо мигания светодиодом приспособил под включение крана с блунк, добавил отображение температуры и в цикл loop добавил включение выключение реле освещения от значений фоторезитора. Все это прекрасно работало, но затем я решил добавить обратную связь от ЕСП 8266, для того чтобы быть уверенным что кран действительно открылся и закрылся, потому что от сбоев в инете никто не застрахован. Обратную связь решил сделать через виджет Блунк "Терминал" и соответствующий скетч из примеров, с такой логикой: если на пине D6(управляет краном) High, то посылать сообщение "Кран включен", иначе "Кран выключен". Но когда добавил пример "Терминал" в предыдущий скетч, то вышла ошибка связаная с каким то "конфликтом библиотек" (я так думаю):
Несколько библиотек найдено для "Ethernet.h"
Используется: C:\Users\Вячеслав\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0\libraries\Ethernet
Не используется: C:\Program Files (x86)\Arduino\libraries\Ethernet
exit status 1
invalid conversion from 'char*' to 'uint16_t {aka short unsigned int}' [-fpermissive]
Как сделать, чтобы если на пине Д6 был высокий сигнал, в терминал шло сообщение "Кран открыт". И как убрать "конфликт библиотек".Скетч прилагаю, надеюсь на помощь.
#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>
#include <Adafruit_Sensor.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DHT.h>
/*************************************************************
Download latest Blynk library here:
https://github.com/blynkkk/blynk-library/releases/latest
Blynk is a platform with iOS and Android apps to control
Arduino, Raspberry Pi and the likes over the Internet.
You can easily build graphic interfaces for all your
projects by simply dragging and dropping widgets.
Downloads, docs, tutorials: http://www.blynk.cc
Sketch generator: http://examples.blynk.cc
Blynk community: http://community.blynk.cc
Follow us: http://www.fb.com/blynkapp
http://twitter.com/blynk_app
Blynk library is licensed under MIT license
This example code is in public domain.
*************************************************************
This example runs directly on ESP8266 chip.
Note: This requires ESP8266 support package:
https://github.com/esp8266/Arduino
Please be sure to select the right ESP8266 module
in the Tools -> Board menu!
Change WiFi ssid, pass, and Blynk auth token to run
Feel free to apply it to any other example. It's simple!
*************************************************************/
/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "SWLthDgNRtQgT8I0lcKSWoicWvArZAmK";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "RT-WiFi_70C0";// семь ноль С ноль
char pass[] = "08051985";
#define DHTPIN D9 // вход на ДНТ11
#define PIN_LED 13// пин на реле освещения
#define PIN_PHOTO_SENSOR A0// аналоговый выход с фоторезистора
// Uncomment whatever type you're using!
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22, AM2302, AM2321
//#define DHTTYPE DHT21 // DHT 21, AM2301
DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;
// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void sendSensor()
{
float h = dht.readHumidity();
float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// You can send any value at any time.
// Please don't send more that 10 values per second.
Blynk.virtualWrite(V5, h);
Blynk.virtualWrite(V6, t);
}
// Attach virtual serial terminal to Virtual Pin V1
WidgetTerminal terminal(V1);
// You can send commands from Terminal to your hardware. Just use
// the same Virtual Pin as your Terminal Widget
BLYNK_WRITE(V1)
{
// if you type "Marco" into Terminal Widget - it will respond: "Polo:"
if (String("Marco") == param.asStr()) {
terminal.println("You said: 'Marco'") ;
terminal.println("I said: 'Polo'") ;
} else {
// Send it back
terminal.print("You said:");
terminal.write(param.getBuffer(), param.getLength());
terminal.println();
}
// Ensure everything is sent
terminal.flush();
}
void setup()
{
// Debug console
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
dht.begin();
// Setup a function to be called every second
timer.setInterval(2000L, sendSensor);
pinMode(PIN_LED, OUTPUT);// выход на реле освещения
// This will print Blynk Software version to the Terminal Widget when
// your hardware gets connected to Blynk Server
terminal.println(F("Blynk v" BLYNK_VERSION ": Device started"));
terminal.println(F("-------------"));
terminal.println(F("Type 'Marco' and get a reply, or type"));
terminal.println(F("anything else and get it printed back."));
terminal.flush();
}
void loop()
{
Blynk.run();
timer.run();
int val = analogRead(PIN_PHOTO_SENSOR);
Serial.println(val);
delay(1000);
if (val < 900) {
digitalWrite(PIN_LED, HIGH);
} else {
digitalWrite(PIN_LED, LOW);
}
}
Несколько библиотек найдено для "Ethernet.h"
Используется: C:\Users\Вячеслав\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0\libraries\Ethernet
Не используется: C:\Program Files (x86)\Arduino\libraries\Ethernet
exit status 1
invalid conversion from 'char*' to 'uint16_t {aka short unsigned int}' [-fpermissive]
Как сделать, чтобы если на пине Д6 был высокий сигнал, в терминал шло сообщение "Кран открыт". И как убрать "конфликт библиотек".Скетч прилагаю, надеюсь на помощь.
#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>
#include <Adafruit_Sensor.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DHT.h>
/*************************************************************
Download latest Blynk library here:
https://github.com/blynkkk/blynk-library/releases/latest
Blynk is a platform with iOS and Android apps to control
Arduino, Raspberry Pi and the likes over the Internet.
You can easily build graphic interfaces for all your
projects by simply dragging and dropping widgets.
Downloads, docs, tutorials: http://www.blynk.cc
Sketch generator: http://examples.blynk.cc
Blynk community: http://community.blynk.cc
Follow us: http://www.fb.com/blynkapp
http://twitter.com/blynk_app
Blynk library is licensed under MIT license
This example code is in public domain.
*************************************************************
This example runs directly on ESP8266 chip.
Note: This requires ESP8266 support package:
https://github.com/esp8266/Arduino
Please be sure to select the right ESP8266 module
in the Tools -> Board menu!
Change WiFi ssid, pass, and Blynk auth token to run
Feel free to apply it to any other example. It's simple!
*************************************************************/
/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "SWLthDgNRtQgT8I0lcKSWoicWvArZAmK";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "RT-WiFi_70C0";// семь ноль С ноль
char pass[] = "08051985";
#define DHTPIN D9 // вход на ДНТ11
#define PIN_LED 13// пин на реле освещения
#define PIN_PHOTO_SENSOR A0// аналоговый выход с фоторезистора
// Uncomment whatever type you're using!
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22, AM2302, AM2321
//#define DHTTYPE DHT21 // DHT 21, AM2301
DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;
// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void sendSensor()
{
float h = dht.readHumidity();
float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// You can send any value at any time.
// Please don't send more that 10 values per second.
Blynk.virtualWrite(V5, h);
Blynk.virtualWrite(V6, t);
}
// Attach virtual serial terminal to Virtual Pin V1
WidgetTerminal terminal(V1);
// You can send commands from Terminal to your hardware. Just use
// the same Virtual Pin as your Terminal Widget
BLYNK_WRITE(V1)
{
// if you type "Marco" into Terminal Widget - it will respond: "Polo:"
if (String("Marco") == param.asStr()) {
terminal.println("You said: 'Marco'") ;
terminal.println("I said: 'Polo'") ;
} else {
// Send it back
terminal.print("You said:");
terminal.write(param.getBuffer(), param.getLength());
terminal.println();
}
// Ensure everything is sent
terminal.flush();
}
void setup()
{
// Debug console
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
dht.begin();
// Setup a function to be called every second
timer.setInterval(2000L, sendSensor);
pinMode(PIN_LED, OUTPUT);// выход на реле освещения
// This will print Blynk Software version to the Terminal Widget when
// your hardware gets connected to Blynk Server
terminal.println(F("Blynk v" BLYNK_VERSION ": Device started"));
terminal.println(F("-------------"));
terminal.println(F("Type 'Marco' and get a reply, or type"));
terminal.println(F("anything else and get it printed back."));
terminal.flush();
}
void loop()
{
Blynk.run();
timer.run();
int val = analogRead(PIN_PHOTO_SENSOR);
Serial.println(val);
delay(1000);
if (val < 900) {
digitalWrite(PIN_LED, HIGH);
} else {
digitalWrite(PIN_LED, LOW);
}
}