Получилось сыро вод так
#include <Arduino.h>
#include <Wire.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <HardwareSerial.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define VCC 3.27
#define V_MAX 15.6
#define PIN_ONE_WIRE 4
OneWire oneWire(PIN_ONE_WIRE);
DallasTemperature DS18B20(&oneWire);
static const int PIN_VOLTAGE_SENSOR = A0;
BlynkTimer readTimer, sendTimer;
char auth[] = "RPr_ORnFigmw99APTjGgCusxgO3ROAq4";
char ssid[] = "FASTWEB-B6EF73";
char pass[] = "MT9FP4Y4J2";
static float inputVoltage = 0;
static float temp0, temp1, temp2 = 0;
static void readSensor();
static void readVoltage();
static void readTemperature();
static void sendBlynk();
void setup() {
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
readTimer.setInterval(1000, readSensor);
sendTimer.setInterval(5000, sendBlynk);
pinMode(D1, OUTPUT);
pinMode(D2, OUTPUT);
pinModе(D2, OUTPUT);
}
void loop() {
readTimer.run();
sendTimer.run();
Blynk.run();
}
void readSensor() {
readTemperature();
readVoltage();
}
static void readTemperature() {
DS18B20.requestTemperatures();
temp0 = DS18B20.getTempCByIndex(0);
temp1 = DS18B20.getTempCByIndex(1);
temp2 = DS18B20.getTempCByIndex(2);
}
static void readVoltage() {
// read the value at analog input
int value = analogRead(PIN_VOLTAGE_SENSOR);
float vin = ((float) value / 1023.0) * VCC;
Serial.printf("%d %f\n", value, vin);
inputVoltage = vin / VCC * V_MAX;;
}
static void sendBlynk() {
Serial.printf("Temp: %f.2oC %f.2oC\n", temp0, temp1);
Blynk.virtualWrite(V10, temp0);
Blynk.virtualWrite(V11, temp1);
Blynk.virtualWrite(V12, temp2);
Serial.printf("Voltage: %.2fV\n", inputVoltage);
Blynk.virtualWrite(V2 , inputVoltage);
}
BLYNK_WRITE(V1) {
digitalWrite(D1, param.asInt(());
}
BLYNK_WRITE(V3) {
digitalWrite(D2, param.asInt(());
}
BLYNK_WRITE(V4) {
digitalWrite(D3, param.asInt(());
}