Уважаемый автор, подскажите, что подправить в скетче, в строке коррекции автояркости, чтобы она постоянно горела? Вроде все собрал, завелось с полпинка, но подсветка дисплея горит пару секунд и тухнет...
Или добавьте где нибудь вывод значений А1 (например в консоль) и посмотрите какие занчения он у вас принемает в зависимости от яркости. У меня принимало примерно от ~120 до ~600
Для регулировки яркости сегментного экрана можно написать
но, толи кривая библиотека, толи сказывается нехватка памяти, при частом изменении яркости на этом экране скетч виснет. Или экран просто гаснет. Проверяйте, возможно у меня некачественное железо попалось.
Как вариант - просто вернуть перемычку на i2c переходник =) Будет всевремя гореть на максимум.
Подскажите пожалуйста, как отслеживать ошибки в процессе работы? Обнаружил что даже если отвалился датчик, считывает нулевую температуру и типа правильно работает дальше.
Балуюсь с BMP280. Сделал максимально быстрый опрос для режима Weather monitoring(lowest power) согласно даташиту. Опрос нужно делать 1р в минуту. ESP8266 просыпается, отдает в Serial и засыпает с показаниями milliss() 53 мс. Для этого нужно в библиотеке Adafruit_BMP280.cpp закомментировать 105 строку delay(100); Также в скече реализована работа с датчиками 0x76 и 0x77 без пиления библиотеки bmp.begin(0x76, 0x58).
#include <Wire.h>
#include <Adafruit_BMP280.h>// в менеджере библиотек стандартная + установить библиотеку adafruit unified sensor
#define swRx 5 // Пины UART
#define swTx 1 // Пины UART
#define swSCL 3 // Пины подключения датчика BMx280 IO3
#define swSDA 0 // Пины подключения датчика BMx280
#define WireClock 400e3//Разгоняем шину I2C в 4 раза до 400 кГц (только софтварная так может, хардварная 100e3)
#include "SoftwareSerial.h"
SoftwareSerial swSerial;
Adafruit_BMP280 bmp;
void setup() {
Wire.setClock(WireClock);// Разгоняем шину I2C
//Wire.pins(swSDA, swSCL);//Настройка програмного I2C интерфейса
Wire.begin(swSDA, swSCL);
swSerial.begin(115200, SWSERIAL_8N1, swRx, swTx, false, 256);//
swSerial.enableIntTx(false);
if (!bmp.begin(0x76, 0x58)) { //I2C адрес и chip ID. В зависимости от перемычки на плате адресс может быть 77
swSerial.println(F("Could not find a valid BMP280 sensor, check wiring!0x76"));
if (!bmp.begin(0x77, 0x58)) {
swSerial.println(F("Could not find a valid BMP280 sensor, check wiring!0x77"));
ESP.restart();
}
}
/*Параметры в соответствии с рекомендациями даташита по минимальному потреблению для Weather monitoring(lowest power). Измерения рекомендовано проводить 1р/минуту*/
bmp.setSampling(Adafruit_BMP280::MODE_FORCED, /*MODE_SLEEP, MODE_FORCED, MODE_NORMAL Operating Mode. */
Adafruit_BMP280::SAMPLING_X1, /* Temp. oversampling 1.2.4.8.16*/
Adafruit_BMP280::SAMPLING_X1, /* Pressure oversampling */
Adafruit_BMP280::FILTER_X16/*, /*Filtering. FILTER_OFF X2.4.8.16*/
/*Adafruit_BMP280::STANDBY_MS_500*/); /* Standby time. 1.63.125.250.500.1000.2000.4000 используется только в MODE_NORMAL*/
}
void loop() {
swSerial.print("Temperature = " + String(bmp.readTemperature()) + " *C ");
float Pressure = bmp.readPressure();
while (!(Pressure > 89000 && Pressure < 109324)){// Повторное измерение если заходит за рамки
byte i; i++;
if (i > 3) ESP.restart(); // если 4 раза померяли ерунду то перезагружаемся
delay(100); // Задержка срабатывает только при некоректных измерениях для повторного измерения
Pressure = bmp.readPressure();
}
swSerial.print("Pressure = " + String(Pressure) + " Pa. Время:");
// swSerial.println("Approx altitude = " + String(bmp.readAltitude(1013.25)) + " m"); // Adjusted to local forecast!
swSerial.print(String(millis()) + " ");
ESP.deepSleep(60e6, RF_NO_CAL); //перезагружаемся
}
Благодарю за пояснения. Завтра займусь на свежую голову.
Уважаемый автор, подскажите, что подправить в скетче, в строке коррекции автояркости, чтобы она постоянно горела? Вроде все собрал, завелось с полпинка, но подсветка дисплея горит пару секунд и тухнет...
начиная со строки 456
каждые 10 секунд вызывается функция
SetBrightness
которая выставляет яркость в зависимости от показаний на пине А1.
Подключение должно быть таким: Только у меня пин А1, второй резистор у меня 10кОм.
Если не помогло попробуйте заменить
на
Или добавьте где нибудь вывод значений А1 (например в консоль) и посмотрите какие занчения он у вас принемает в зависимости от яркости. У меня принимало примерно от ~120 до ~600
Для регулировки яркости сегментного экрана можно написать
но, толи кривая библиотека, толи сказывается нехватка памяти, при частом изменении яркости на этом экране скетч виснет. Или экран просто гаснет. Проверяйте, возможно у меня некачественное железо попалось.
Как вариант - просто вернуть перемычку на i2c переходник =) Будет всевремя гореть на максимум.
Всем привет!Столкнулся с такой проблемой:
Датчик BMP280 подключен по SPI, в Serial выдает данные исправно, а на экран выводит 0.000
Помогите профиксить. Я прям зеленый, не особо шарю.
Скетч компилируется. Нужные строчки выделил жирным.
А еще, DHT11 периодически выдает отрицательные значения влажности (например: Hum = -4.00%)
Вот скетч:
besteugen
Привет.
И этот скетч у тебя рабочий?
Строка 071???
Выложи скетч нормально, с нумерацией.
Компилятор предупреждения не выкидывает?
Что то типами не то наверное, попробуйте явно привести возращаемый тип bme.readTemperature()
Подскажите пожалуйста, как отслеживать ошибки в процессе работы? Обнаружил что даже если отвалился датчик, считывает нулевую температуру и типа правильно работает дальше.
Кто считывает?
Ардуинка)
Изучите библиотеку, которую Вы используете, на предмет функций, проверяющих работоспособность датчика.
Да изучал несколько дней. Подскажите, а где можно увидеть все функции библиотеки?
В заголовочном файле с расширением .h
Балуюсь с BMP280. Сделал максимально быстрый опрос для режима Weather monitoring(lowest power) согласно даташиту. Опрос нужно делать 1р в минуту. ESP8266 просыпается, отдает в Serial и засыпает с показаниями milliss() 53 мс. Для этого нужно в библиотеке Adafruit_BMP280.cpp закомментировать 105 строку delay(100); Также в скече реализована работа с датчиками 0x76 и 0x77 без пиления библиотеки bmp.begin(0x76, 0x58).
Занятно! Надо залезть посмотреть, что с софтваресериалом для ESP реализовали