ARDUINO UNO свое спалил думал перенести все на ESP, но похоже предется новую плату брать@Bposter есть один аналоговый пин (неужели сложно посмотреть в документации?), но его лучше не использовать, если точность +-2 градуса не устраивает.
А зачем Вам аналоговый пин для DH11? Он по "цифре" работает.
Если нужна только температура, проще использовать цифровой датчик температуры DS18B20.
А вот lsd лучше не употреблять ни в каком виде.
Зачем, если есть esp? Что мешает сделать на нём? 99% что даже скетч переписывать не надо будет, только пины поменять.ARDUINO UNO свое спалил думал перенести все на ESP, но похоже предется новую плату брать
а как же с LSD? Ево я так понял к ESP не подключишЗачем, если есть esp? Что мешает сделать на нём? 99% что даже скетч переписывать не надо будет, только пины поменять.
LSD не подключить, а LCD - легко.а как же с LSD? Ево я так понял к ESP не подключиш
Можно схему подключения? Для понятия, я подключал LCD такLSD не подключить, а LCD - легко.
Не простая? Да возможно но то что это все делается на ESP уже радует, про пины спаришиваю так как в скетче они даже не указываются, но думаю в библиотеке их переопределить можно?@Bposter у вас дисплей с интерфейсом I2C, это цифровой интерфейс и на ардино эти пины использууются как цифровые. Куда подключать - вопрос личных предпочтений, например так - см. Wiring NodeMCU ESP8266 12E with i2C 16×2 LCD Screen | 14Core.com
В скетче, только поправьте пины на нужные.
Хотя, судя по вопросам, это будет не простой задачей.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <dht11.h>
#define DHT11PIN 8
dht11 sensor;
//LCD SCL->A5 SDA->A4
LiquidCrystal_I2C lcd(0x27, 16, 2);
unsigned long currentTime;
unsigned long loopTime;
int ledPin = 13; // инициализируем пин для сигнала реле
int inputPin = 12; // инициализируем пин для получения сигнала от пироэлектрического датчика движения
int pirState = LOW; // начинаем работу программы, предполагая, что движения нет
int val = 0; // переменная для чтения состояния пина
//создаем свои символы
byte U[8] =
{
B10001,
B10001,
B10001,
B01111,
B00001,
B00001,
B11110,
B00000,
};
byte P[8] =
{
B11111,
B10001,
B10001,
B10001,
B10001,
B10001,
B10001,
B00000,
};
byte EL_lit[8] =
{
B00111,
B01001,
B10001,
B10001,
B10001,
B10001,
B10001,
B00000,
};
byte ZH_lit[8] =
{
B10001,
B10101,
B10101,
B01110,
B10101,
B10101,
B10001,
B00000,
};
byte MZ_lit[8] =
{
B10000,
B10000,
B10000,
B11110,
B10001,
B10001,
B11110,
B00000,
};
void setup()
{
pinMode(ledPin, OUTPUT); // объявляем светодиод в качестве OUTPUT
pinMode(inputPin, INPUT); // объявляем датчик в качестве INPUT
currentTime = millis(); // считываем время, прошедшее с момента запуска программы
loopTime = currentTime;
pinMode(13, OUTPUT);
digitalWrite(13, 1);
lcd.init(); // Инициализация lcd
lcd.backlight(); // Включаем подсветку
lcd.createChar(1,P);
lcd.createChar(2,U);
lcd.createChar(3, EL_lit);
lcd.createChar(4, ZH_lit);
lcd.createChar(5, MZ_lit);
}
void loop()
{
/////////////////////////////////////////////////////////////////////////////
currentTime = millis(); // считываем время, прошедшее с момента запуска программы
if(currentTime >= (loopTime + 2000)){ // сравниваем текущий таймер с переменной loopTime + 1 секунда
int chk = sensor.read(DHT11PIN);
//lcd.autoscroll();
lcd.setCursor(0, 0);
lcd.print("B\3A\4HOCT\5 %");
lcd.setCursor(12, 0);
lcd.print(sensor.humidity);
lcd.setCursor(0, 1);
lcd.print("TEM\1EPAT\2PA C");
lcd.setCursor(12, 1);
lcd.print(sensor.temperature);
loopTime = currentTime; // в loopTime записываем новое значение
}
//////////////////////////////////////////////////////////////////////
val = digitalRead(inputPin); // считываем значение с датчика
if (val == HIGH) { // проверяем, соответствует ли считанное значение HIGH
digitalWrite(ledPin, HIGH); // включаем светодиод
if (pirState == LOW) {
pirState = HIGH;
}
} else {
digitalWrite(ledPin, LOW); // выключаем светодиод
if (pirState == HIGH){
pirState = LOW;
}
////////////////////////////////////////////////////////////////////
}
}
LCD запустился как надо, пишет как и нужно температура, влажность. А вот DHT11 не хочет работать хоть и запитался нормально, определил его вывод DAT на [HASHTAG]#define[/HASHTAG] DHT11PIN 12 это по даташиту D6, не реагирует.@Bposter если подключать как по ссылке, то переопределить, похоже, не надо ничего для дисплея. Только для dh10 надо переопределить, и выбрать пин с подтяжки к + или нейтральный, иначе esp не запустится.
D4 ( в скетче 2) даже не хочет загружать скетч пишет@Bposter пробуйте подключать D5 ( в скетче 14), D4 ( в скетче 2) должно работать
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed
Жаль конечно Arduino, в будующем куплю еще одну UNO и попробую саму микросхему заменить на старую, может хоть она еще жива осталась, еще раз спасиб за помощьприцепил на коленки к 14 пину ([HASHTAG]#define[/HASHTAG] DHTTYPE DHT11 ) - всё работает. Так что точно Ваш погорел.
это просто опечатка была )LSD и LCD - 2 большие разницы