sergmetrolog
New member
Здравствуйте уважаемые!!!
Подскажите кто знает. Делаю мега проект для гаража мониторинг сети + климат контроль техкомнаты и подвала.
Оба проекта работаю отдельно: Климат контроль на ESP8266, мониторинг сети на ESP32.
Хочется собрать все на ESP32 портов хватает.
Не получается прописать второй, а затем 3 и 4 датчики DHT 21. - ошибка компиляции (с одним датчиком все работает отлично)
Ниже привожу скетч.
#define BLYNK_PRINT Serial
#include "EmonLib.h"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
EnergyMonitor emon;
#define vCalibration 106.8
#define currCalibration 41.2
BlynkTimer timer;
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "dfgttrrtbtrDsGoZ9-RXP5cgVe75D7";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "ss";
char pass[] = "serg";
float kWh = 0;
unsigned long lastmillis = millis();
void myTimerEvent() {
emon.calcVI(20, 2000);
Serial.print("Vrms: ");
Serial.print(emon.Vrms, 2);
Serial.print("V");
Blynk.virtualWrite(V0, emon.Vrms);
Serial.print("\tIrms: ");
Serial.print(emon.Irms, 4);
Serial.print("A");
Blynk.virtualWrite(V1, emon.Irms);
Serial.print("\tPower: ");
Serial.print(emon.apparentPower, 4);
Serial.print("W");
Blynk.virtualWrite(V2, emon.apparentPower);
Serial.print("\tkWh: ");
kWh = kWh + emon.apparentPower*(millis()-lastmillis)/3600000000.0;
Serial.print(kWh, 4);
Serial.println("kWh");
lastmillis = millis();
Blynk.virtualWrite(V3, kWh);
}
#include "DHT.h"
#define DHT1PIN 2
#define DHT2PIN 4
//#define DHT3PIN 15
#define DHT1TYPE DHT21
#define DHT2TYPE DHT11
//#define DHT3TYPE DHT21
DHT dht1(DHTPIN, DHTTYPE);
DHT dht2(DHTPIN, DHTTYPE);
//DHT dht3(DHTPIN, DHTTYPE);
void sendSensor()
{
float h1 = dht1.readHumidity();
float t1 = dht1.readTemperature();
if (isnan(h1) || isnan(t1)) {
Serial.println("Failed to read from DHT sensor!");
return;
float h2 = dht2.readHumidity();
float t2 = dht2.readTemperature();
if (isnan(h2) || isnan(t2)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Blynk.virtualWrite(V4, h1);
Blynk.virtualWrite(V5, t1);
Blynk.virtualWrite(V6, h2);
Blynk.virtualWrite(V7, t2);
}
void setup() {
Serial.begin(9600);
emon.voltage(35, vCalibration, 1.7); // Voltage: input pin, calibration, phase_shift
emon.current(34, currCalibration); // Current: input pin, calibration.
Blynk.begin(auth, ssid, pass);
timer.setInterval(5000L, myTimerEvent);
dht1.begin();
dht2.begin();
//dht3.begin();
timer.setInterval(5000L, sendSensor);
}
void loop() {
Blynk.run();
timer.run();
}
Подскажите кто знает. Делаю мега проект для гаража мониторинг сети + климат контроль техкомнаты и подвала.
Оба проекта работаю отдельно: Климат контроль на ESP8266, мониторинг сети на ESP32.
Хочется собрать все на ESP32 портов хватает.
Не получается прописать второй, а затем 3 и 4 датчики DHT 21. - ошибка компиляции (с одним датчиком все работает отлично)
Ниже привожу скетч.
#define BLYNK_PRINT Serial
#include "EmonLib.h"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
EnergyMonitor emon;
#define vCalibration 106.8
#define currCalibration 41.2
BlynkTimer timer;
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "dfgttrrtbtrDsGoZ9-RXP5cgVe75D7";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "ss";
char pass[] = "serg";
float kWh = 0;
unsigned long lastmillis = millis();
void myTimerEvent() {
emon.calcVI(20, 2000);
Serial.print("Vrms: ");
Serial.print(emon.Vrms, 2);
Serial.print("V");
Blynk.virtualWrite(V0, emon.Vrms);
Serial.print("\tIrms: ");
Serial.print(emon.Irms, 4);
Serial.print("A");
Blynk.virtualWrite(V1, emon.Irms);
Serial.print("\tPower: ");
Serial.print(emon.apparentPower, 4);
Serial.print("W");
Blynk.virtualWrite(V2, emon.apparentPower);
Serial.print("\tkWh: ");
kWh = kWh + emon.apparentPower*(millis()-lastmillis)/3600000000.0;
Serial.print(kWh, 4);
Serial.println("kWh");
lastmillis = millis();
Blynk.virtualWrite(V3, kWh);
}
#include "DHT.h"
#define DHT1PIN 2
#define DHT2PIN 4
//#define DHT3PIN 15
#define DHT1TYPE DHT21
#define DHT2TYPE DHT11
//#define DHT3TYPE DHT21
DHT dht1(DHTPIN, DHTTYPE);
DHT dht2(DHTPIN, DHTTYPE);
//DHT dht3(DHTPIN, DHTTYPE);
void sendSensor()
{
float h1 = dht1.readHumidity();
float t1 = dht1.readTemperature();
if (isnan(h1) || isnan(t1)) {
Serial.println("Failed to read from DHT sensor!");
return;
float h2 = dht2.readHumidity();
float t2 = dht2.readTemperature();
if (isnan(h2) || isnan(t2)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Blynk.virtualWrite(V4, h1);
Blynk.virtualWrite(V5, t1);
Blynk.virtualWrite(V6, h2);
Blynk.virtualWrite(V7, t2);
}
void setup() {
Serial.begin(9600);
emon.voltage(35, vCalibration, 1.7); // Voltage: input pin, calibration, phase_shift
emon.current(34, currCalibration); // Current: input pin, calibration.
Blynk.begin(auth, ssid, pass);
timer.setInterval(5000L, myTimerEvent);
dht1.begin();
dht2.begin();
//dht3.begin();
timer.setInterval(5000L, sendSensor);
}
void loop() {
Blynk.run();
timer.run();
}
Вложения
-
47.5 KB Просмотры: 9