RSS блога
Подписка
HMI модуль DWIN DGUS. Первый опыт
- Цена: 2100 руб + доставка 1300 руб
- Перейти в магазин
Тема HMI модулей постепенно развивается.
На них можно сделать умную теплицу, умный дом, управление пивоварней и всякое другое.
Вот и я решил не отставать от прогресса и освоить чего-нибудь такого.
В сентябре купил сей модуль на али и-и-и офигел от сложности освоения: инфы крайне мало, а та что есть это кривой перевод с китайского на английский.
В итоге спустя достаточно значительное количество времени удалось мало-мальски победить и освоить этот модуль.
Выбор пал на этот модуль потому-что модули nextion тогда пропали с магазинов.
Чем мне понравился этот дисплей:
1. Есть в наличии т.к. производитель имеет свои чипы, а это значит исключен дефицит из-за стороннего кризиса. Как это случилось у Nextion при кризисе/дефиците чипов STM32.
2. Цена в 2-4 раза ниже чем nexion.
Дизайны-прошивки создаются в специальной бесплатной проге DGUS.
Потребление энергии:
Дисплей 7" dmg80480c070
Замерил потребление при питании от USB порта: 4,72-4,88 В
0,6А при 100% яркости
0,45А при 80% яркости
0,41А при 75% яркости
0,39А при 70% яркости
0,34А при 60% яркоcти
0,29А при 50% яркости
0,25А при 40% яркости
0,20А при 30% яркости
0,17А при 20% яркости
Первое от чего хочу предостеречь это конфигурационный .CFG файл. Редактировать в нём можно только разделы System Configuration, Backlight Sleep и при только при боооольшом желании Buzzer.
Остальные настройки трогать нельзя! Иначе дисплею придёт «кирдык».
Второе это UART режим. 100% что вы захотите сделать UART связь с ардуино или с МК посерьёзней.
Для этого нужно перевести HMI модуль в режим UART. С завода модуль в режиме RS232, а чтобы включить UART нужно запаять перемычку с обратной стороны модуля.
…
В общем пока писал эту статью набрёл на целый сайт где уже разжёвано то что я хотел написать. Аж руки опустились и муза отступила… Смысла пересказывать не вижу: dwin.pro/
Но чего там нет, так это кода!
Ардуино можно подключать напрямую к дисплею. Т.к. входы дисплея выдерживают 5 В.
Ссылка на товар ведёт в официальный интернет магазин DWIN.
Официальный сайт DWIN где есть русский язык, там-же есть даташиты на дисплеи ru.dwin-global.com/
Даташиты можно переводить через гугл переводчик документом целиком. Но перевод несколько корявый получается.
Официальный форум DWIN(англ) Хорошо что он появился. Раньше был только китайско язычный форум.
Update: перечитав правила площадки с десяток раз я так и не понял про купоны. Сначала написано что купоны нельзя выкладывать, потом написано что это хорошо. На том злополучном сайте есть один:
На них можно сделать умную теплицу, умный дом, управление пивоварней и всякое другое.
Вот и я решил не отставать от прогресса и освоить чего-нибудь такого.
В сентябре купил сей модуль на али и-и-и офигел от сложности освоения: инфы крайне мало, а та что есть это кривой перевод с китайского на английский.
В итоге спустя достаточно значительное количество времени удалось мало-мальски победить и освоить этот модуль.
Выбор пал на этот модуль потому-что модули nextion тогда пропали с магазинов.
Чем мне понравился этот дисплей:
1. Есть в наличии т.к. производитель имеет свои чипы, а это значит исключен дефицит из-за стороннего кризиса. Как это случилось у Nextion при кризисе/дефиците чипов STM32.
2. Цена в 2-4 раза ниже чем nexion.
Дизайны-прошивки создаются в специальной бесплатной проге DGUS.
Потребление энергии:
Дисплей 7" dmg80480c070
Замерил потребление при питании от USB порта: 4,72-4,88 В
0,6А при 100% яркости
0,45А при 80% яркости
0,41А при 75% яркости
0,39А при 70% яркости
0,34А при 60% яркоcти
0,29А при 50% яркости
0,25А при 40% яркости
0,20А при 30% яркости
0,17А при 20% яркости
Первое от чего хочу предостеречь это конфигурационный .CFG файл. Редактировать в нём можно только разделы System Configuration, Backlight Sleep и при только при боооольшом желании Buzzer.
Отметил зелёным которые можно:
Остальные настройки трогать нельзя! Иначе дисплею придёт «кирдык».
Второе это UART режим. 100% что вы захотите сделать UART связь с ардуино или с МК посерьёзней.
Для этого нужно перевести HMI модуль в режим UART. С завода модуль в режиме RS232, а чтобы включить UART нужно запаять перемычку с обратной стороны модуля.
…
В общем пока писал эту статью набрёл на целый сайт где уже разжёвано то что я хотел написать. Аж руки опустились и муза отступила… Смысла пересказывать не вижу: dwin.pro/
Но чего там нет, так это кода!
Ардуино можно подключать напрямую к дисплею. Т.к. входы дисплея выдерживают 5 В.
Вот мой код для ардуино
// 9 пин на TX дисплея, 10 пин на RX дисплея. Не забываем припаять перемычку у дисплея сзади.
#include <SoftwareSerial.h>
SoftwareSerial DWIN_serial(9, 10); // RX, TX
uint8_t hmi_cmd = 0;
void HMI_send(uint8_t cmd, uint16_t address, uint8_t *data, uint16_t in_size )
{
uint16_t msg_len = in_size +3;
uint8_t msg[ 16 ] = { 0x5A, 0xA5, msg_len, cmd, address >> 8, address };
if(cmd == 0x83)
msg[6] = data;
else
for (uint8_t i = 0; i < in_size ; i++) msg[6+ i] = data[i];
for (uint16_t i = 0; i < msg_len +3; i++) DWIN_serial.write( msg[i] );
}
// запись переменной
void HMI_VP_write( uint16_t address, uint16_t word ){
hmi_cmd = 0;
uint8_t tmp[2] = { (word >> 8) & 0xFF, word & 0xFF };
HMI_send(0x82, address, tmp, sizeof(tmp) );
};
// чтение переменной
void HMI_VP_read( uint16_t address ){
hmi_cmd = 2;
HMI_send(0x83, address, 1, 1 );
};
// перезагрузить
void HMI_reboot(){
hmi_cmd = 0;
uint8_t tmp[4] = {0x55, 0xAA, 0x5A, 0xA5};
HMI_send(0x82, 0x04, tmp, 4 );
}
// Узнать версии
void HMI_version_read(){
hmi_cmd = 1;
HMI_send(0x83, 0x0F, 1, 1 );
}
// Узнать текущую картинку
void HMI_pic_read(){
hmi_cmd = 1;
HMI_send(0x83, 0x14, 1, 1 );
}
// установить картинку по ID
void HMI_pic_set(uint16_t id){
hmi_cmd = 0;
uint8_t tmp[4] = {0x5A, 0x01,id>>8, id};
HMI_send(0x82, 0x84, tmp, 4 );
}
// установить яркость
void HMI_led(uint8_t on, uint8_t off, uint16_t timer){
hmi_cmd = 0;
uint8_t tmp[4] = {on, off, timer>>8, timer};
HMI_send(0x82, 0x82, tmp, 4);
}
void setup() {
Serial.begin(115200);
Serial.println("serial ok.");
DWIN_serial.begin(115200);
delay(100);
while (DWIN_serial.available()) DWIN_serial.read(); // сброс входящего буфера UART
delay(500);
HMI_reboot(); // перезагрузить HMI
delay(1000);
HMI_led(40, 20, 1000); // 40% в активном режиме, 20% в спящем режиме, переход в спящий режим через 10 секунд.
HMI_pic_set(1); // установить картинку с ID 1
delay(1000);
HMI_pic_set(2); // установить картинку с ID 2
delay(1000);
HMI_pic_set(3); // установить картинку с ID 3
delay(1000);
HMI_pic_read();
HMI_VP_write(0x5000, 0x1234);
delay(100);
while (DWIN_serial.available()) DWIN_serial.read(); // сброс входящего буфера UART
}
uint32_t timeDelay = 1000;
uint8_t test = 0;
void loop() {
if (DWIN_serial.available()) {
uint8_t buf[20];
uint8_t bufi = 0;
while (DWIN_serial.available())
{
buf[ bufi++ ] = DWIN_serial.read();
if(bufi == 20) {
while (DWIN_serial.available()) DWIN_serial.read();
Serial.println("hmi error: big packet!");
break;
}
}
if( buf[0] == 0x5A && buf[1] == 0xA5){
// Serial.flush();
// for (size_t i = 0; i < buf[2]+3; i++) Serial.write( buf[i] ); Serial.write( "\r\n" );
if(hmi_cmd == 0) // ответ записи
{
if(buf[4] == 0x4F && buf[5] == 0x4B){
Serial.println("hmi write: ok.");
}
}else
if(hmi_cmd == 1) // ответ чтения параметров
{
Serial.println("hmi read: ok.");
if(buf[5] == 0x0F){ // HMI_version_read
uint8_t os = buf[7];
uint8_t c8051 = buf[8];
}else if (buf[5] == 0x14) // HMI_pic_read
{
uint16_t pic_current = (buf[7]<<8)|buf[8];
Serial.print("pic_current:");
Serial.println(pic_current);
}
}else
if(hmi_cmd == 2) // ответ чтения VP
{
uint16_t addr = (buf[4]<<8)|buf[5];
uint16_t value = (buf[7]<<8)|buf[8];
Serial.print("hmi read: ok, addr: ");
Serial.print(addr, HEX);
Serial.print(", value: ");
Serial.println(value, HEX);
}
}else{
Serial.println("hmi error: header not find!");
}
}
if(millis()-timeDelay >= 2000UL){
timeDelay = millis();
switch (test++)
{
case 0: HMI_pic_read(); break;
case 1: HMI_version_read(); break;
case 2: HMI_VP_read(0x5000); break;
}
if(test >2) test= 0;
// HMI_pic_read();
// HMI_version_read();
// HMI_VP_read(0x5000);
}
}
Ссылка на товар ведёт в официальный интернет магазин DWIN.
Официальный сайт DWIN где есть русский язык, там-же есть даташиты на дисплеи ru.dwin-global.com/
Даташиты можно переводить через гугл переводчик документом целиком. Но перевод несколько корявый получается.
Официальный форум DWIN(англ) Хорошо что он появился. Раньше был только китайско язычный форум.
Update: перечитав правила площадки с десяток раз я так и не понял про купоны. Сначала написано что купоны нельзя выкладывать, потом написано что это хорошо. На том злополучном сайте есть один:
Купон aliexpress дающий до $8 скидки при заказе в официальном магазине: DWIN38COUP
Самые обсуждаемые обзоры
+52 |
3361
93
|
+57 |
2859
50
|
17.6) При публикации обзора необходимо использовать тэг
Какие есть аналоги кроме nextion ов?
Нынче БУшный 7-дюймовый планшет можно раза в 2 дешевле сабжа купить. А уж простенькую веб-страничку, не перегруженную современными новомодными фреймворками с мегабайтами скриптов — любой из них потянет.
Да, решение получится хэнд-мэйдное, со своими особенностями, тут уж кто что умеет.
Боюсь правда в ответственных задачах web применить — вдруг планшет накроется в неподходящий момент.
А дальше, к сожалению, только hard core, hard code… Мне оказалось проще/гибче писать HTML напрямую
Как-то так сложилось что «симпатизирует» многими воспринимается как «нравится».
Культурная безграмотность.)
(минус вам не я поставил)
доставка 1300
Русскоязычный форум
Каталог продукции DWIN на русском языке
Инструкция по работе с дисплеями T5L_DGUSII
DWIN Display 480x272 Project + DGUS Arduino Library
Телеграм-канал t.me/dwin_russia
Телеграм-чат t.me/dwin_russia_chat
Каналы на YouTube
Atakan BEKAR
White Electronics
Victor Vision
На тот момент русскоязычной инфы было ноль.
Форум кстати не гуглится. По какому запросу поисковика нашли?
Если будет чтото типа HTML, то потребуются более мощные чипы, а это увеличит цену конечного дисплея.
Зачем оно? Каков функционал?
Если это проц + экран + управление, то:
-чем хуже малина + LVDS матрица + тач?
-чем хуже OLED-дисплей + однокристаллка + джойстик?
-чем хуже TFT + тач/кнопки + контроллер + I2C/SPI?
Зачем разбираться с каким-то непонятным проприетарным г-ном?
Зачем вообще все это, когда можно сделать интерфейс и открывать его через веб хоть со смарта, хоть с планшта, хоть с ББ?
Одни загадки, вобщем )
Например, здесь регулярно проскакивает, унитазы в виде новых лабораторных блоков питания и usb тестеров и даже паяльных станций, где экраны напоминают панель управления самолетом, редактировать такие экраны — то еще удовольствие.
Термин HMI пришел в том числе и промышленной автоматизации где такое дело на каждом шагу, и проприетарного там по самое не балуйся, и wifi там много почему противопоказан, правда есть ethernet и web, а уж языки программирования там такие что разбираться и разбираться. Малины однакож втречаються. Ну и унитазы… посложнее…
Рисуете картинку, размечаете ее на функциональные зоны, рисуете точно такую-же, но с активными зонами.
При обновлении нужно считать с SD-карты (или из памяти) первую картинку и закинуть на экран, затем считать картинку с активными зонами, и зная, какие зоны в данный момент активны, закинуть на экран поверх первой картинки п/у куски со второй картинки, которые соответствуют текущим режимам.
Это самый простой случай, для сложных просто итераций больше.
С этим справится даже ATTINY, и, собственно, для 85 у меня так для OLED и сделано.
Вполне работает, даже без бэкбуфера.
Эм… а причем здесь WiFi? Или веб-интерфейс только по WiFi возможен? )))
Вобщем, если интерфейс прост — то простой OLED/TFT с тачем/кнопками.
Если сложен — то ставить малину с этим-же делом + веб-интерфейс: локальный (отображается встроенным браузером) + автоматом возможность открыть его по сети. Работать будет четче, надежней, без проприетарщины + поддерживать все это в разы проще и удобней + на HTML сейчас хоть в 3D можно сделать.
Нет, народ наизобретал себе проблем и теперь доблестно с ними борется. Донкихотство 21 века, ага.
Головы еще и все управление синхронизируют с выводом на экран и отправляют сами команды на внутренний контроллер.
Тут-то совершенно другое, как я понимаю — только отображение.
Когда, как было сказано справится тинька, так кто то таки должен отмечать эти зоны и писать код для этого. И главное, следить чтобы малеший чих не привел к переписыванию кучи кода.
Почему бы и не сделать утилитку которая позволит мышкой разметить эти самые зоны, нарезать картинки, сгенереровала типовой код, да упаковала бы заодно все в файл который без sd бы влез. И не изобретать проблем, а решить.
А доблесная борьба начинается как раз с этой светлой идеи все делать через одно место, и типа экономить на экране.
wifi я упомянул потому что вообще то были предложены старые смартфоны/планшеты которые кроме wifi умеют от силы 3G 4G.
Что подразумевает некую сетевую инфраструктуру, что в случае автономного прибора — избыточно.
И для решения этой «задачи» как раз появляются малины, роутеры, облака, привлекаются солидные вычислительные ресурсы чтобы кнопки красиво нарисовать.
Ну а использовать сетевую технологию для локальной работы это как раз опофигей современности. Изза таких вот «упростителей» мы сейчас и имеем что даже калькулятор в браузере запускается и занимает пару сотен мегабайт. windows наглядный тому прммер.
HMI модуль это по сути девайс который берет на себя гемор по отображению графики, анимаций и прочей
фигникрасоты.Например если использовать RPI+...+… то упрёмся сразу в цену этого добра и производительность. + если это серийная партия, то это всё нужно собрать — много ручного труда, от чего цена растёт.
Если это промышленное назначение, то продукт должен быть не уникальный, а простой как топор и модульный — если сломается: выкинули, новый поставили, залили прошивку, продолжили работу.
Производительность RPI падает когда работают всякие там GUI.
По сути это и есть TFT/OLED + тач + контроллер + DC/DC и прочая обвязка на одной плате и готовым софтом.
Умельцы даже свои прошивки пишут собирая тулченй в Keil.
По поводу веба полностью согласен. Но опять таки зависит от применения. Если залагает планшет в умном доме это одно. А если планшет залагает в теплице и кучу растений/труда/бабла стухнет или засохнет? Или в ЧПУ станке с 10кВт шпинделем?
Модель что у меня самостоятельно может разве что фотки показывать(фоторамка).
Но есть модели типа такой с более чем 20-ю GPIO.
Что она умеет, к сожалению, не знаю.
В целом яркость приличная.
Почему так много не знаю
www.youtube.com/playlist?list=PL9lkEHy8EJU_ZccliuxtbvdXm5_h32Oki