Разное о выращивании табака на Алтае
Вы не вошли.
Сегодня у меня праздник, удалось поженить ESP32 DEVKIT V1 и RGB матрица 64x32 P5. Такой огромный и не дорогой дисплей, воодушевляет на творчество.
Матрица такая
https://ru.aliexpress.com/item/P5-xxx-s … 1af901a5-0
У этого конкретного продАвана не покупал.
ESP 32 именно такой, 30 ног у которого выводов.
https://ru.aliexpress.com/item/ESP32-ES … e77e0d33-0
У меня вариация ESP32 DEVKIT V1, с 30-ю выводами и это очень плохо. Потому как мне нужно ещё прицепить температурный датчик D18B20, а библиотеки позволяют его прицепить к портам GPIO15/GPIO0. GPIO15 уже участвует в управлении матрицей, а GPIO - 0 не выведен на плату(в этой конфигурации). Можно наверное, припаять термодатчик непосредственно к процессору, но это сложно.
Если бы у меня была плата на 36 выводов, всё было бы сильно проще.
Исходный код и библиотеки брал тут
https://github.com/NeoCat/ESP32-P3RGB64x32MatrixPanel
Не в сети
На фото, результаты моих сегодняшних трудов. Сие есть WIFI часы. Датчик DS18B20 кинут на порт 4, он там и не должен работать, поэтому -127 градусов и кажет. Яркость самая минимальная у матрицы, сегодня словил зайцев в глаза от неё(пока не научился яркость выставлять). На фото, довольно всё блекло выглядит, но даже при ярком свете - вполне себе контрастно в помещении и всё видно.
Не в сети
P/S небольшая тонкость именно по маркировке на моей плате ESP32 DEVKIT V1 30 GPIOs. Выводы GPIO 16(IO16)/GPIO 17(IO 17) промаркированы на плате как RX2/TX2. Соотвественно GPIO 16/IO16/RX2 и GPIO 17/IO 17/TX2.
Не в сети
Единственная проблема у этой матрицы, оказалась слишком высокая светимость для жилого помещения ночью. На самом низком уровне светимости.
matrix.setTextColor(matrix.color444(0, 1, 0));
Это только зелёные в RGB матрице светятся на 1 из 15 уровней, красный и синий в 0 установлены.
В таком режиме(и на фото), матрица потребляет 180..200 мА/5В. Мощность расходуется 0,2А*5В=1Вт. Довольно экономично. Пиковая мощность матрицы по даташиту 21,5 Вт.
Можно ещё электрическими методами светимость снизить, допустим подать 4 В питания на матрицу...
Если в жилом помещении такое табло устанавливать, придёт добавить датчик освещённости/фоторезистор. Иначе, при ярком дневном свете не будет видно ничего, а ночью будет светить прожектор. Как вариант, задать светимость по часам. С другой стороны, по временам года ещё часовую светимость нужно будет уравнивать. Наверное, проще поставить фоторезистор...
Не в сети
Всёж разобрался с часами, нашёл где выставлять часовой пояс и добавил датчик температуры/влажности DHT11. C термометром DS18B20 ни чего не получилось, первое показание с него читается, но после активации матрицы, прерывания конфликтуют и идёт температура -127 градусов. На самом деле, DS18B20 работает на любых свободных портах, но конфликтует с прерываниями дисплея.
Не в сети
Код.
#include "DHTesp.h"
#include <WiFi.h>
#include <Adafruit_GFX.h>
#include <P3RGB64x32MatrixPanel.h>
#include <Fonts/FreeSansBold12pt7b.h>
// constructor with default pin wiring
P3RGB64x32MatrixPanel matrix;
// use this constructor for custom pin wiring instead of the default above
// these pins are an example, you may modify this according to your needs
//P3RGB64x32MatrixPanel matrix(25, 26, 27, 21, 22, 23, 15, 32, 33, 12, 16, 17, 18);
char ssid[] = "SSID";//ИМЯ СЕТИ WIFI
char pass[] = "PASS";//ПАРОЛЬ СЕТИ
#define TZ (+7*60*60) /*JST*/ //ТУТ УСТАНАВЛИВАЕТСЯ ЧАСОВОЙ ПОЯС +7 ЭТО ЧАСОВОЙ ПОЯС АЛТАЙСКОГО КРАЯ, МОСКВА +4 ЧАСА
DHTesp dht;
int dhtPin = 14; //ПОРТ К КОТОРОМУ ПРИПАЯН ВЫВОД ДАННЫХ ДАТЧИКА DHT11(НА ПЛАТЕ D14/GPIO14)
void setup() {
Serial.begin(115200);
//dht.setup(14);
dht.setup(dhtPin, DHTesp::DHT11);
Serial.print("Attempting to connect to Network named: ");
Serial.println(ssid); // print the network name (SSID);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(2000);
}
Serial.println("");
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");
Serial.println(ip);
configTime(TZ, 0, "ntp.nict.jp", "ntp.jst.mfeed.ad.jp"); // enable NTP
//configTime(TZ, 4, "ntp4.stratum2.ru","ntp3.stratum2.ru");
matrix.begin(); // setup the LED matrix
}
void loop()
{
if (WiFi.status() != WL_CONNECTED)
ESP.restart();
time_t t;
static time_t last_t;
struct tm *tm;
static const char* const wd[7] = {"VOSKRES","PONEDELNIK","VTORNIK","SREDA","CHETVERG","PYTNINCA","SUBBOTA"};
t = time(NULL);
if (last_t == t) return; // draw each second
last_t = t;
tm = localtime(&t);
matrix.fillScreen(0);
matrix.setTextColor(matrix.color444(0, 1, 0));
matrix.setFont(&FreeSansBold12pt7b);
matrix.setCursor(3, 16);
matrix.printf("%02d:%02d", tm->tm_hour, tm->tm_min);
matrix.setFont();
//matrix.printf(":%02d", tm->tm_sec);
matrix.setCursor(2, 18);
matrix.setTextColor(tm->tm_wday == 0 ? matrix.color444(1, 0, 0) :
tm->tm_wday == 6 ? matrix.color444(1, 1, 1) :
matrix.color444(0, 0, 1));
matrix.printf("%s", wd[tm->tm_wday]);
matrix.setCursor(2, 25);
matrix.setTextColor(matrix.color444(1, 0, 0));
matrix.printf("%02d/%02d/%04d\n",tm->tm_mday, tm->tm_mon+1, tm->tm_year+1900 );
matrix.swapBuffer(); // display the image written to the buffer
delay(2000);
float humidity = dht.getHumidity();
delay(2000);
float temperature = dht.getTemperature();
delay(2000);
matrix.fillScreen(0);
matrix.setCursor(0, 0);
matrix.setTextColor(matrix.color444(3, 3, 3));
matrix.print("Humidity - ");
matrix.print(humidity);
matrix.print("%");
matrix.setCursor(0, 17);
matrix.print("Temp. - ");
matrix.print(temperature);
matrix.print(" C");
delay(10000);
}
Не в сети
Заменил сегодня датчик температуры/влажности DHT11 на DHT22. На тот же порт припаял. Появились десятые доли градусов/влажности.
Код как в предыдущем посте, нужно только заменить в строчке
dht.setup(dhtPin, DHTesp::DHT11);
DHT11 на DHT22.
Эта строчка должна выглядеть так.
dht.setup(dhtPin, DHTesp::DHT22);
В моём датчике DHT11 резистор подтяжки напряжения уже есть на плате. Для датчика DHT22, пришлось припаять резистор 4,7К между ногами Vcc(1 нога) и Data(2 нога). Резистор может быть в пределах 4,7К..20К.
Библиотека DHTesp.h , соответственно поддерживает точно датчики DHT11/DHT22(для ESP32).
Не в сети
Пытался сегодня подключить матрицу P5(та что на фото во всех постах этой ветки) к WIFI LoRa 32.
http://www.heltec.cn/project/wifi-lora-32/?lang=en.
Не получилось. Видимо, встроенный дисплей, конфликтует...
Не в сети
Вполне очевидный вывод - из моих экспериментов с матрицей P5, она совершенно аналогична матрице P3(c вышеупомянутым включением разводки). Для матрицы P5, абсолютно применима/корректна библиотека P3RGB64x32MatrixPanel.h
Не в сети
Распаял сегодня культурно разводку часов. Пытался разрезать родной кабель матрицы HUB75 и припаять его к промежуточной плате коннектора, не получилось. Провод вообще не паяется, двумя флюсами пробовал. Плюнул и распаял проводками Dupont. ESP32 DEVKIT V1 вставляется в древний шлейф от ПК, кажется это был шлейф дисковода. При необходимости, ESP32 DEVKIT V1 легко извлекается из сабжа.
При распайке датчика температуры/влажности DHT22 отломилась одна нога вывода. Пришлось вырезать часть корпуса и припаяться к площадкам платы.
Самое интересное, что забыл припаять резистор смещения, с питания +5В на шину данных и всё работает. Видимо, сформировалась некая паразитная проводимость на шлейфах и этих микроампер уже достаточно для питания. Всё работает.
При более коротких проводах, стабильность изображения матрицы, значительно выросла. Длинна проводников уменьшилась в 5..6 раз. Там всёж идут данные мегагерцами, укорочение проводки - сказалось на стабильности изображения.
Не в сети
Победил сегодня русификацию шрифтов. Спасибо этому человеку -https://www.youtube.com/watch?v=G6wgAJ4JAz0&t=327s
Очень всё просто объяснил. Кому нужен мой код, обращайтесь. Можно на почту форума написать. tabakaaa22ru@mail.ru
Матрица, на полную мощность светит, хорошо сфотографировать - проблематично. Основная идея на фото, видна.
Не в сети
Не в сети
Не в сети