星期六, 10月 07, 2017

Lumex LDM-768-1LT-X1 on nodemcu ESP8266

感謝Lumex 提供的sample
因為最近選用NodeMCU 當開發平台
但ESP8266也就那一組半的HW Serial

Lumex如果能讓EZDISPLAY系列除了支源UART也可以同時選用I2C的話就更好了

所以我就先測了SW serial看看  但很不幸的SW serial 不穩 跑LUMEX家的sample在OLED那邊跑一半都會crash重開

因緣際會OLED現在在朋友那邊當sample繼續測

我就回來玩一下LED Matrix

  LDM-768-1LT-X1  是一隻96x8的模組
基本上範例是一定要RX得到不是"E"  才繼續TX
這對ESP8266真的很苦..
但我還是決定用那個只有TX功能的第二組HW Serial (因為SW serial我要給PM2.5用..同時定義兩組SW serial 也是會掛so.. )

那 反正就是wait ,假設只靠TX 應該就command後面測出來要等多久就好

我先用了HEX範例..但怪怪的老是power on 那次都會失敗
反而AT command那組明明後面有轉去HEX玩卻沒問題

也就這麼改就收工了
delay(100);//while (Serial1.read() != 'E') {}
改好的ezDisplay_AT_Command_LED_API.ino
模組的RX(白色腳) 請接NodeMCU V2的D4腳

96x8 其實那些繪圖功能的實用性低了點
單純AT81 跑跑5x7 的英文數字倒是實際多了...
約略下面那樣就可以簡單用了..
demo 如影片
char ledmsg[32];
String LedStr = "";
 void Write_AT_Command(char *string)
{
  Serial1.print(string);
  delay(100);//while (Serial1.read() != 'E') {}
  delay(2);
}
void setup() {
  Serial1.begin(115200);
}
void loop() {
  Write_AT_Command("ATd0=()");
  LedStr = "AT81=(0,0,"+String(temp,1)+"C H:"+String(humd,0)+"% "+String(lux)+")";
  LedStr.toCharArray(ledmsg,sizeof(ledmsg));
  Write_AT_Command(ledmsg);
}

剩下找時間弄個殼
之後掛客廳吧!...
配個MAX44009用照度自動調亮度