Монитор погоды на ESP32 и дисплее Nextion

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Аватара пользователя
sc0rpy
Открыл глаза
Сообщения: 61
Зарегистрирован: Ср июн 18, 2025 07:20:55

Re: Монитор погоды на ESP32 и дисплее Nextion

Сообщение sc0rpy »

размер шрифта 5*8, можно было бы набирать массив сообщения столбцами, точки и двоеточия до 2х сократить.
но в драйвер отправляеца строка а не столбец. двигать строки на произвольное число бит крайне неприятно.
в адафруктовской бибилиотеке оперируют массивом байтов, но это занадто жырно.

посмотрел как сделано в соседней теме

Код: Выделить всё

        scr1[0 + 24-bufAddr].bit_data.bit0 = scr[7 + bufAddr].bit_data.bit0;   // побитно копируем в ячейки(биты) масива scr1 - биты масива ячейк scr 
        scr1[1 + 24-bufAddr].bit_data.bit0 = scr[7 + bufAddr].bit_data.bit1;   // фактически в болке сегмета 8х8 мы делаем поворт на 90* по часовой стрелке
        scr1[2 + 24-bufAddr].bit_data.bit0 = scr[7 + bufAddr].bit_data.bit2;   // и так для всех 4-х сегментов
        scr1[3 + 24-bufAddr].bit_data.bit0 = scr[7 + bufAddr].bit_data.bit3;
        scr1[4 + 24-bufAddr].bit_data.bit0 = scr[7 + bufAddr].bit_data.bit4;
        scr1[5 + 24-bufAddr].bit_data.bit0 = scr[7 + bufAddr].bit_data.bit5;
        scr1[6 + 24-bufAddr].bit_data.bit0 = scr[7 + bufAddr].bit_data.bit6;
        scr1[7 + 24-bufAddr].bit_data.bit0 = scr[7 + bufAddr].bit_data.bit7;
видимо так и буду делать.
глаза баяца, руки из жопы, но я не здаюсь
Реклама
Аватара пользователя
sc0rpy
Открыл глаза
Сообщения: 61
Зарегистрирован: Ср июн 18, 2025 07:20:55

Re: Монитор погоды на ESP32 и дисплее Nextion

Сообщение sc0rpy »

Изображение

в отдельном проекте взял часть кода, стараясь сохранить исходную стилистику, наверное если включить в общий код, то анимированные эфекты сохраняца.

в fonts.hpp добавил таблицу символов

Код: Выделить всё

uint8_t  font_matrix7219[] = {
    0x7e, 0x81, 0x81, 0x81, 0x7e, //0x00 0
    0x84, 0x82, 0xff, 0x80, 0x80, //0x01 1
    0x82, 0xc1, 0xa1, 0x91, 0x8e, //0x02 2
    0x42, 0x81, 0x89, 0x89, 0x76, //0x03 3
    0x30, 0x28, 0x24, 0x22, 0xff, //0x04 4
    0x4f, 0x89, 0x89, 0x89, 0x71, //0x05 5
    0x7e, 0x89, 0x89, 0x89, 0x72, //0x06 6
    0x01, 0xe1, 0x11, 0x09, 0x07, //0x07 7
    0x76, 0x89, 0x89, 0x89, 0x76, //0x08 8
    0x4e, 0x91, 0x91, 0x91, 0x7e, //0x09 9
    0x06, 0x09, 0x09, 0x06, 0x00, //0x0A °
    0xfc, 0x12, 0x11, 0x12, 0xfc, //0x0B A
    0xff, 0x09, 0x09, 0x09, 0x06, //0x0C P
    0x7e, 0x81, 0x81, 0x81, 0x42, //0x0D C
    0xff, 0x08, 0x08, 0x08, 0xff, //0x0E H
    0x00, 0x00, 0x00, 0x00, 0x00, //0x0F space
    0x08, 0x08, 0x08, 0x08, 0x08, //0x10 -
	0x66, 0x66, 0x00, 0x00, 0x00, //0x11 :
	0x60, 0x60, 0x00, 0x00, 0x00, //0x12 .
	0x80, 0xe0, 0x60, 0x00, 0x00, //0x13 ,
	0x54, 0x14, 0x64, 0x08, 0x70  //0x14 wifi
};
на основе max7219segmentDisplay.hpp сделал вывод на матрицу
1. строка 21 - увеличил выходной массив

Код: Выделить всё

 #define NUMBER_OF_DEVICES 8 //number of led matrix connect in series

        uint8_t _mpixels[NUMBER_OF_DEVICES*8] = {0, };	//kolkasts stalbtsou
        uint8_t _rpixels[NUMBER_OF_DEVICES*8] = {0, };	//kolkasts strok
        uint8_t _mpixelsPrev[NUMBER_OF_DEVICES*8] = {0, };
2. void MAX7219_S::_print()
на каждый символ добавляеца по 5 столбцов изображэния, потом пробел и если нужно двоеточие (3 столбца)

Код: Выделить всё

    for(uint8_t i=0,n=0; i<8; i++) { 
	 int symvol ;
        if(_dispImg[i] >= 100) symvol = (_dispImg[i] - 100 );
        else 					symvol = _dispImg[i];
	
		for(uint8_t j=0; j<5; j++) {
			_mpixels[n++]=font_matrix7219[symvol*5+j];
		};
		
		_mpixels[n++]=font_matrix7219[0x0F*5];		// add space
		
		if(_dispImg[i] >= 100) {					// if :
			for(uint8_t j=0; j<3; j++) {
			_mpixels[n++]=font_matrix7219[0x11*5+j];// add :
			};
		}

        if(_mpixelsPrev[i] != _mpixels[i]) {
            _mpixelsPrev[i] = _mpixels[i];
            updated = true;
        }
    }
3. получиную матрицу надо повернуть, добавил функцыю:

Код: Выделить всё

void  MAX7219_M::rotatematrix()
{
	for(int8_t n=0; n<_dispNum; n++) {
		for(int8_t row=0; row<8; row++) {
			uint8_t rotate=0;
				for(int8_t col=7; col>=0; col--) {
				rotate = rotate<<1;
				rotate |= (1UL&(_mpixels[n*8 + col]>>row));
				};
				_rpixels[n*8 +7 - row]=rotate;
			}
		}
}
4. вывод в матрицу получился такой

Код: Выделить всё

void MAX7219_M::sendALLByte () {
    for(uint8_t row=MAX7219_REG_DIGIT7; row>=MAX7219_REG_DIGIT0; row--) {
		digitalWrite(_load,LOW);
		// now shift out the data
		for(int8_t i=NUMBER_OF_DEVICES; i>=0; i--) {
			SPI.transfer16((row<<8) +_rpixels[i*8 + row-1]);
			}
		digitalWrite(_load, HIGH);
	 }
}
глаза баяца, руки из жопы, но я не здаюсь
Реклама
Аватара пользователя
sc0rpy
Открыл глаза
Сообщения: 61
Зарегистрирован: Ср июн 18, 2025 07:20:55

Re: Монитор погоды на ESP32 и дисплее Nextion

Сообщение sc0rpy »

перенес код в основной проект, эфекты анимацыи отрабатывают, один только глюк - остаёца мусор в последнеи модуле экрана изза того что итоговое изображэние разной длинны, надо пробелом добивать до конца экрана
глаза баяца, руки из жопы, но я не здаюсь
Djen81
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Сб ноя 21, 2015 20:51:31

Re: Монитор погоды на ESP32 и дисплее Nextion

Сообщение Djen81 »

Здравствуйте , давно хотел собрать подобную конструкцию , вот решил , прочитал все 78 страниц , но есть несколько вопросов ответы на которые не нашел или пропустил , подскажите пожалуйста , 1) разъем WS2812 и светодиод WS2812 на плате это для выносного дисплея на светодиодах , и если я его не буду подключать то мне эти компоненты не нужны ? 2) кнопки дисплей 1 , дисплей 2 , аларм для чего нужны , и нужны ли они ? 3)кнопки которые на есп32 нужно выводить наружу корпуса ? и 4) питание датчиков , DFPlayer , нс-12 и часы , 3,3 в подключать к стабилизатору есп32 или отдельно делать ? 5) все устройство питается через разъем есп32 ? дисплей будет ili9341 3.2 с тачем . СПАСИБО !
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
himikat123
Электрический кот
Сообщения: 1078
Зарегистрирован: Ср фев 15, 2017 22:37:11
Контактная информация:

Re: Монитор погоды на ESP32 и дисплее Nextion

Сообщение himikat123 »

1. Разъем WS2812 и светодиод WS2812 нужны только для выносного дисплея на светодиодах, можете не устанавливать.
2. Эти кнопки включают/выключают дисплеи и будильник, можете не устанавливать.
3. Наружу корпуса выводить кнопки не обязательно, но для удобства пользования все-таки лучше вывести.
4. Все питается от модуля esp32
5. Все питается от модуля esp32

Если посмотреть внимательно схему и вдумчиво прочитать статью, то все эти вопросы там уже отвечены. Там даже написано, что достаточно подключить дисплей к esp32, все остальное необязательно...
Реклама
dorya
Нашел транзистор. Понюхал.
Сообщения: 197
Зарегистрирован: Ср ноя 04, 2009 22:42:45

Re: Монитор погоды на ESP32 и дисплее Nextion

Сообщение dorya »

Нежданчик вот такой :)
элементы АААА из вартовской кроны
(внимание на полярность)
Изображение
мой вариант
Изображение Изображение
Реклама
Djen81
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Сб ноя 21, 2015 20:51:31

Re: Монитор погоды на ESP32 и дисплее Nextion

Сообщение Djen81 »

[uquote="himikat123",url="/forum/viewtopic.php?p=4761684#p4761684"]1. Разъем WS2812 и светодиод WS2812 нужны только для выносного дисплея на светодиодах, можете не устанавливать.
2. Эти кнопки включают/выключают дисплеи и будильник, можете не устанавливать.
3. Наружу корпуса выводить кнопки не обязательно, но для удобства пользования все-таки лучше вывести.
4. Все питается от модуля esp32
5. Все питается от модуля esp32

Если посмотреть внимательно схему и вдумчиво прочитать статью, то все эти вопросы там уже отвечены. Там даже написано, что достаточно подключить дисплей к esp32, все остальное необязательно...[/uquote]

Спасибо большое , все заказал придет буду собирать .
Аватара пользователя
samand587
Поставщик валерьянки для Кота
Сообщения: 2312
Зарегистрирован: Вт фев 21, 2017 18:59:21
Откуда: Седой Урал

Re: Монитор погоды на ESP32 и дисплее Nextion

Сообщение samand587 »

himikat123, привет! Нет в планах использование дисплея на базе tft_480_320_ILI9488 ? Спасибо!
Аватара пользователя
himikat123
Электрический кот
Сообщения: 1078
Зарегистрирован: Ср фев 15, 2017 22:37:11
Контактная информация:

Re: Монитор погоды на ESP32 и дисплее Nextion

Сообщение himikat123 »

samand587, привет! Нет таких планов. Вообще нет планов добавлять поддержку дисплеев которых у меня нет
nickolaussss
Родился
Сообщения: 10
Зарегистрирован: Ср май 02, 2018 21:46:46

Re: Монитор погоды на ESP32 и дисплее Nextion

Сообщение nickolaussss »

Подскажите меняется ли схема подключения для модуля ESP32 с 38 выводами, если да то как?
tolyator
Родился
Сообщения: 13
Зарегистрирован: Вс ноя 23, 2025 06:11:46

Re: Монитор погоды на ESP32 и дисплее Nextion

Сообщение tolyator »

Здравствуйте. Вот приобрёл монитор погоды на esp. Всё работает. Не понятно что за прочерки с буквой В на словом комфортно? Сейчас попробую фото закинуть.
P.S. разобрался сам.
blazer
Мучитель микросхем
Сообщения: 480
Зарегистрирован: Ср июн 29, 2011 14:30:41

Re: Монитор погоды на ESP32 и дисплее Nextion

Сообщение blazer »

Хочу развернуть этот проект на китай плате JC2432W328
Но на ней дисплей по своему подключен к ESP32.
Полистал тему на предмет исходника INO.
Я правильно понял, что исходника здесь нет? И устройство программируется только BIN-ом?
Аватара пользователя
himikat123
Электрический кот
Сообщения: 1078
Зарегистрирован: Ср фев 15, 2017 22:37:11
Контактная информация:

Re: Монитор погоды на ESP32 и дисплее Nextion

Сообщение himikat123 »

На первой странице этой темы есть ссылка на статью, в конце статьи ссылка на исходники
blazer
Мучитель микросхем
Сообщения: 480
Зарегистрирован: Ср июн 29, 2011 14:30:41

Re: Монитор погоды на ESP32 и дисплее Nextion

Сообщение blazer »

[uquote="himikat123",url="/forum/viewtopic.php?p=4767491#p4767491"]На первой странице этой темы есть ссылка на статью, в конце статьи ссылка на исходники[/uquote]

Спасибо. Я правильно понял, это файл "BIM32_Arduino.ino"
Аватара пользователя
himikat123
Электрический кот
Сообщения: 1078
Зарегистрирован: Ср фев 15, 2017 22:37:11
Контактная информация:

Re: Монитор погоды на ESP32 и дисплее Nextion

Сообщение himikat123 »

С этого файла все начинается, но там еще много файлов
Djen81
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Сб ноя 21, 2015 20:51:31

Re: Монитор погоды на ESP32 и дисплее Nextion

Сообщение Djen81 »

Привет всем , закончил вот сам блок , осталось два радиодатчика сделать . Спасибо автору классная конструкция !!!
Вложения
МЕТ2.jpg
(109.42 КБ) 215 скачиваний
МЕТ1.jpg
(148.02 КБ) 204 скачивания
Djen81
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Сб ноя 21, 2015 20:51:31

Re: Монитор погоды на ESP32 и дисплее Nextion

Сообщение Djen81 »

Здравствуйте , хотел бы спросить кто нибудь делал радиомодуль на mega 328 PB вместо mega 328 P , будет работать без каких либо доработок прошивки и железа кроме как не подключать 3 и 6 ноги ? Просто заказал и не посмотрел что едет посылка с PB . Спасибо !
netcat62
Родился
Сообщения: 18
Зарегистрирован: Пн дек 02, 2024 03:26:32

Re: Монитор погоды на ESP32 и дисплее Nextion

Сообщение netcat62 »

Прошу прощения если что не так... Достался мне дисплей с маркировкой TJC4832K035_011R можно ли его использовать в этом проекте и как прошить устройство с сд карты файлом для Nextion
Мазай
Родился
Сообщения: 10
Зарегистрирован: Пн янв 11, 2016 09:01:49

Re: Монитор погоды на ESP32 и дисплее Nextion

Сообщение Мазай »

Уважаемые коллеги. Столкнулся с одинаковой проблемой двух экземплярах устройства. Проблема эта заключается в том, что если включить в конфигурации Дисплея 1 параметр «Отключать дисплей ночью» то после перезагрузки устройства или совпадении текущего времени с установленным (например 23 часа) устройство начинает циклически перезагружаться. О подобной проблеме уже было несколько вопросов на этом форуме, но практически без ответа.
Дисплей используется с контроллером ILI9341. В первом устройстве он без тача. Глядя на лог возникло соображение, что проблема связана именно с этим т.к. как раз после чтения файла калибровки тача и возникает перезагрузка.

Код: Выделить всё

06.12.2025 14:43:34  ets Jul 29 2019 12:21:46
06.12.2025 14:43:34  rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
06.12.2025 14:43:34  configsip: 0, SPIWP:0xee
06.12.2025 14:43:34  clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
06.12.2025 14:43:34  mode:DIO, clock div:1
06.12.2025 14:43:34  load:0x3fff0030,len:1344
06.12.2025 14:43:34  load:0x40078000,len:13964
06.12.2025 14:43:34  load:0x40080400,len:3600
06.12.2025 14:43:34  entry 0x400805f0
06.12.2025 14:43:35  **********************************************************************
06.12.2025 14:43:35  **********************************************************************
06.12.2025 14:43:35  *  Weather Monitor BIM32 v5.5    В© himikat123@gmail.com   2020-2025  *
06.12.2025 14:43:35  **********************************************************************
06.12.2025 14:43:35  **********************************************************************
06.12.2025 14:43:35  Read config file... done
06.12.2025 14:43:35  Read alarm file... done
06.12.2025 14:43:35  Read user file... done
06.12.2025 14:43:35  Read touch calibration file... done
06.12.2025 14:43:38  Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.
06.12.2025 14:43:38  Core  1 register dump:
06.12.2025 14:43:38  PC      : 0x400e6b9e  PS      : 0x00060130  A0      : 0x800e7279  A1      : 0x3ffdb090  
06.12.2025 14:43:38  A2      : 0x00000000  A3      : 0x00000020  A4      : 0x3ffcb338  A5      : 0xffffffff  
06.12.2025 14:43:38  A6      : 0x00ff0000  A7      : 0xff000000  A8      : 0x801186e1  A9      : 0x3ffdb070  
06.12.2025 14:43:38  A10     : 0x3ffdb0dc  A11     : 0x00000020  A12     : 0x0000000a  A13     : 0x00000046  
06.12.2025 14:43:38  A14     : 0x3ff49038  A15     : 0x00002000  SAR     : 0x0000000a  EXCCAUSE: 0x0000001c  
06.12.2025 14:43:38  EXCVADDR: 0x00000000  LBEG    : 0x4008be19  LEND    : 0x4008be29  LCOUNT  : 0xffffffff  
06.12.2025 14:43:38  Backtrace: 0x400e6b9b:0x3ffdb090 0x400e7276:0x3ffdb0b0 0x400e7348:0x3ffdb0f0 0x400f751e:0x3ffdb110
06.12.2025 14:43:38  ELF file SHA256: 55853f271b5f4d50
06.12.2025 14:43:38  Rebooting...
Было собрано еще одно устройство уже с тачем, но проблема никуда не исчезла. Я довольно далек от ESP и Ардуино, на работе и в хобби используются STM, Nordic и т.д. Но пришлось ставить Arduino IDE и изучать исходники. В процессе логирования удалось выяснить, что к краху приводит вот этот параметр -_display_nightOff[]. Он считывается из конфигурационного файла и если равен 1, то где-то дальше система падает. Если после чтения из файла добавить строчку и принудительно установить этот параметр в 0 (_display_nightOff = 0;), то работоспособность восстанавливается (перешивался только скомпилированный скетч из IDE).
Может уважаемый автор скорее посмотрит и разберется в чем проблема? Как я понял из описания ошибок ESP, строка в логе EXCVADDR: 0x00000000 обозначает попытку разыменовывания нулевого указателя.
Аватара пользователя
himikat123
Электрический кот
Сообщения: 1078
Зарегистрирован: Ср фев 15, 2017 22:37:11
Контактная информация:

Re: Монитор погоды на ESP32 и дисплее Nextion

Сообщение himikat123 »

Мазай, посмотрю, разберусь
Ответить

Вернуться в «Статьи»