ESP8266 LCD-Billboard (8 / 10 steg)
Steg 8: Seriell kommunikation mellan Arduino och ESP-12
Vi har redan Aruino och ESP-12 kommunikation (data du ser i terminalen är ren överföring av Arduino). Nu vill vi Arduino att utföra några åtgärder efter att ha fått fördefinierade kommandon från ESP-12.
Överföra data från ESP8266 till Arduino
Det första vi vill göra är att passera några 2 byte heltal från ESP-12 till Arduino. Jag Visa det med 2 byte heltal men det kan vara 4 byte långa heltal eller till och med 4 byte flöten, den samma.
Starta Byte, | Byte 0, | ..., | Byte N-1 |
---|
Vi skickar en start byte först och sedan skickar vi N byte data. N är fördefinierade. När Arduino tar emot start byten slutar skriva ut data till den seriella porten och istället det sätter den mottagna byten inuti en buffert. Efter det, det monterar data: varje 2 byte är ett heltal. Observera att start-byte bör inte en utskrivbar byte, eftersom då ta emot-läge kan anropas av misstag. För att göra det bättre för data tillförlitligt, kan du lägga till en kontrollsumma fältet över data. Jag fastställt följande kommandon:
Kommandonamnet | Koden |
---|---|
FETCH_DATA_COMMAND | 0x80 |
PRINT_DATA_COMMAND | 0x81 |
PRINT_DATA_LCD | 0x82 |
När koden 0x80 tas emot, skickas följande data av ESP8266:
UART.write(0,bit.arshift(bit.band(x,0xff00),8), bit.band(x,0x00ff))
Arduinoen sätter två byte ihop igen:
get_x = (data_arr [0] << 8) + data_arr [1].
Skriva ut data från ESP8266 till Arduino
Definierade jag ett annat kommando som direkt skriver ut data från ESP8266 till LCD-skärmen. Jag kan lägga till fler alternativ som du väljer ett teckensnitt eller skriva ut linjer etc. Men jag planerar att Arduino kommer att göra det mesta av utskriften och ESP8266 kommer bara fylla i siffror och text från internet.