#1 10-02-2019 19:38:24

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

ESP32 + RGB матрица 64x32 P5 +DHT22.

Сегодня у меня праздник, удалось поженить 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
ESP32-DOIT-DEVKIT-V1-Board-Pinout-30-GPIOs-Copy.png

ESP32-DOIT-DEVKIT-V1-Board-Pinout-36-GPIOs-Copy-768x554.jpg

Не в сети

#2 10-02-2019 20:22:14

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

Re: ESP32 + RGB матрица 64x32 P5 +DHT22.

На фото, результаты моих сегодняшних трудов. Сие есть WIFI часы. Датчик DS18B20 кинут на порт 4, он там и не должен работать, поэтому -127 градусов и кажет. Яркость самая минимальная у матрицы, сегодня словил зайцев в глаза от неё(пока не научился яркость выставлять). На фото, довольно всё блекло выглядит, но даже при ярком свете - вполне себе контрастно в помещении и всё видно.


011.jpg

010.jpg

009.jpg

008.jpg

007.jpg

006.jpg

005.jpg

004.jpg

Не в сети

#3 10-02-2019 20:53:18

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

Re: ESP32 + RGB матрица 64x32 P5 +DHT22.

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.

Не в сети

#4 10-02-2019 23:01:53

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

Re: ESP32 + RGB матрица 64x32 P5 +DHT22.

Единственная проблема у этой матрицы, оказалась слишком высокая светимость для жилого помещения ночью. На самом низком уровне светимости.
matrix.setTextColor(matrix.color444(0, 1, 0));
Это только зелёные в RGB матрице светятся на 1 из 15 уровней, красный и синий в 0 установлены.
В таком режиме(и на фото), матрица потребляет 180..200 мА/5В. Мощность расходуется 0,2А*5В=1Вт. Довольно экономично. Пиковая мощность матрицы по даташиту 21,5 Вт.
Можно ещё электрическими методами светимость снизить, допустим подать 4 В питания на матрицу...
Если в жилом помещении такое табло устанавливать, придёт добавить датчик освещённости/фоторезистор. Иначе, при ярком дневном свете не будет видно ничего, а ночью будет светить прожектор. Как вариант, задать светимость по часам. С другой стороны, по временам года ещё часовую светимость нужно будет уравнивать. Наверное, проще поставить фоторезистор...

013.jpg

014.jpg

016.jpg

Не в сети

#5 11-02-2019 00:59:07

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

Re: ESP32 + RGB матрица 64x32 P5 +DHT22.

Всёж разобрался с часами, нашёл где выставлять часовой пояс и добавил датчик температуры/влажности DHT11. C термометром DS18B20 ни чего не получилось, первое показание с него читается, но после активации матрицы, прерывания конфликтуют и идёт температура -127 градусов. На самом деле, DS18B20 работает на любых свободных портах, но конфликтует с прерываниями дисплея.

220.jpg

221.jpg

222.jpg

223.jpg

224.jpg

225.jpg

226.jpg

227.jpg

228.jpg

Не в сети

#6 13-02-2019 22:33:46

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

Re: ESP32 + RGB матрица 64x32 P5 +DHT22.

Код.
#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);
}

Не в сети

#7 16-02-2019 19:42:20

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

Re: ESP32 + RGB матрица 64x32 P5 +DHT22.

Заменил сегодня датчик температуры/влажности 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).

004.jpg

005.jpg

007.jpg

008.jpg

Не в сети

#8 16-02-2019 23:34:13

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

Re: ESP32 + RGB матрица 64x32 P5 +DHT22.

Пытался сегодня подключить матрицу P5(та что на фото во всех постах этой ветки) к WIFI LoRa 32.
http://www.heltec.cn/project/wifi-lora-32/?lang=en.
Не получилось. Видимо, встроенный дисплей, конфликтует...

Не в сети

#9 17-02-2019 00:37:52

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

Re: ESP32 + RGB матрица 64x32 P5 +DHT22.

Вполне очевидный вывод - из моих экспериментов с матрицей P5, она совершенно аналогична матрице P3(c вышеупомянутым включением разводки). Для матрицы P5, абсолютно применима/корректна библиотека P3RGB64x32MatrixPanel.h

Не в сети

#10 23-02-2019 00:18:18

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

Re: ESP32 + RGB матрица 64x32 P5 +DHT22.

Распаял сегодня культурно разводку часов. Пытался разрезать родной кабель матрицы HUB75 и припаять его к промежуточной плате коннектора, не получилось. Провод вообще не паяется, двумя флюсами пробовал. Плюнул и распаял проводками Dupont. ESP32 DEVKIT V1 вставляется в древний шлейф от ПК, кажется это был шлейф дисковода. При необходимости,  ESP32 DEVKIT V1 легко извлекается из сабжа.

002.jpg

004.jpg

005.jpg
При распайке датчика температуры/влажности DHT22 отломилась одна нога вывода. Пришлось вырезать часть корпуса и припаяться к площадкам платы.


003.jpg
Самое интересное, что забыл припаять резистор смещения, с питания +5В на шину данных и всё работает. Видимо, сформировалась некая паразитная проводимость на шлейфах и этих микроампер уже достаточно для питания. Всё работает.
При более коротких проводах, стабильность изображения матрицы, значительно выросла. Длинна проводников уменьшилась в 5..6 раз. Там всёж идут данные мегагерцами, укорочение проводки - сказалось на стабильности изображения.

Не в сети

#11 08-04-2019 15:13:45

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

Re: ESP32 + RGB матрица 64x32 P5 +DHT22.

Победил сегодня русификацию шрифтов. Спасибо этому человеку -https://www.youtube.com/watch?v=G6wgAJ4JAz0&t=327s
Очень всё просто объяснил. Кому нужен мой код, обращайтесь. Можно на почту форума написать. tabakaaa22ru@mail.ru
Матрица, на полную мощность светит, хорошо сфотографировать - проблематично. Основная идея на фото, видна.

930.jpg

931.jpg

932.jpg

934.jpg

935.jpg

936.jpg

Не в сети

#12 28-06-2019 02:16:37

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

Re: ESP32 + RGB матрица 64x32 P5 +DHT22.

Порты/контакты занятые матрицей.

1-010.jpg

1-011.jpg

Не в сети

#13 20-07-2019 01:01:08

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

Re: ESP32 + RGB матрица 64x32 P5 +DHT22.

15635590007889050569742463513739.jpg

1563559077765610436378163640487.jpg

15635591639734375187177293074123.jpg

Не в сети

Подвал раздела

Работает на FluxBB (перевод Laravel.ru)