From 44dd870df8501bd06073faac65b930dcc01cecf9 Mon Sep 17 00:00:00 2001 From: Sean Kwok <45260108+Gitshaoxiang@users.noreply.github.com> Date: Thu, 31 Mar 2022 17:14:26 +0800 Subject: [PATCH] add poesp32 example --- .../Unit/PoESP32/HTTP_CLIENT/HTTP_CLIENT.ino | 88 +++++++++++++++++++ .../Unit/PoESP32/MQTT_CLIENT/MQTT_CLIENT.ino | 68 ++++++++++++++ .../Unit/PoESP32/TCP_CLIENT/TCP_CLIENT.ino | 76 ++++++++++++++++ library.properties | 2 +- 4 files changed, 233 insertions(+), 1 deletion(-) create mode 100644 examples/Unit/PoESP32/HTTP_CLIENT/HTTP_CLIENT.ino create mode 100644 examples/Unit/PoESP32/MQTT_CLIENT/MQTT_CLIENT.ino create mode 100644 examples/Unit/PoESP32/TCP_CLIENT/TCP_CLIENT.ino diff --git a/examples/Unit/PoESP32/HTTP_CLIENT/HTTP_CLIENT.ino b/examples/Unit/PoESP32/HTTP_CLIENT/HTTP_CLIENT.ino new file mode 100644 index 0000000..027ca0a --- /dev/null +++ b/examples/Unit/PoESP32/HTTP_CLIENT/HTTP_CLIENT.ino @@ -0,0 +1,88 @@ +/* + Description: + Use UNIT PoESP32 to create HTTP request + UNIT PoESP32 Connect to M5Core PORT-C (G16/17) + before compiling: + M5Stack: https://github.com/m5stack/M5Stack + M5GFX: https://github.com/m5stack/M5GFX + UNIT_PoESP32: https://github.com/m5stack/UNIT_PoESP32 +*/ + +#include "UNIT_PoESP32.h" +#include "M5Stack.h" +#include "M5GFX.h" + +UNIT_PoESP32 eth; +String readstr; + +M5GFX display; +M5Canvas canvas(&display); + +void setup() { + M5.begin(); + display.begin(); + canvas.setColorDepth(1); // mono color + canvas.setFont(&fonts::efontCN_14); + canvas.setTextSize(2); + canvas.setPaletteColor(1, GREEN); + canvas.createSprite(display.width(), display.height()); + canvas.setTextScroll(true); + eth.Init(&Serial2, 9600, 16, 17); + delay(10); + canvas.println("wait device connect"); + canvas.pushSprite(0, 0); + while (!eth.checkDeviceConnect()) { + delay(10); + } + + canvas.println("device connected"); + canvas.println("wait ethernet connect"); + canvas.pushSprite(0, 0); + while (!eth.checkETHConnect()) { + delay(10); + } + canvas.println("ethernet connected"); + canvas.pushSprite(0, 0); + + readstr = eth.createHTTPClient(HEAD, APPLICATION_X_WWW_FORM_URLENCODED, + "http://httpbin.org/get"); + Serial.println(readstr); + canvas.println(readstr); + canvas.pushSprite(0, 0); + + readstr = eth.createHTTPClient(GET, APPLICATION_X_WWW_FORM_URLENCODED, + "http://httpbin.org/get"); + Serial.println(readstr); + canvas.println(readstr); + canvas.pushSprite(0, 0); + + readstr = eth.createHTTPClient(POST, APPLICATION_X_WWW_FORM_URLENCODED, + "http://httpbin.org/post", + "field1=value1&field2=value2"); + Serial.println(readstr); + canvas.println(readstr); + canvas.pushSprite(0, 0); + + readstr = eth.createHTTPClient(PUT, APPLICATION_X_WWW_FORM_URLENCODED, + "http://httpbin.org/put"); + Serial.println(readstr); + canvas.println(readstr); + canvas.pushSprite(0, 0); + + readstr = eth.createHTTPClient(DELETE, APPLICATION_X_WWW_FORM_URLENCODED, + "http://httpbin.org/delete"); + Serial.println(readstr); + canvas.println(readstr); + canvas.pushSprite(0, 0); +} + +void loop() { + if (Serial.available()) { + char ch = Serial.read(); + Serial2.write(ch); + } + if (Serial2.available()) { + char ch = Serial2.read(); + Serial.write(ch); + } +} \ No newline at end of file diff --git a/examples/Unit/PoESP32/MQTT_CLIENT/MQTT_CLIENT.ino b/examples/Unit/PoESP32/MQTT_CLIENT/MQTT_CLIENT.ino new file mode 100644 index 0000000..c10bde1 --- /dev/null +++ b/examples/Unit/PoESP32/MQTT_CLIENT/MQTT_CLIENT.ino @@ -0,0 +1,68 @@ +/* + Description: + Use UNIT PoESP32 connect to MQTT Server + UNIT PoESP32 Connect to M5Core PORT-C (G16/17) + before compiling: + M5Stack: https://github.com/m5stack/M5Stack + M5GFX: https://github.com/m5stack/M5GFX + UNIT_PoESP32: https://github.com/m5stack/UNIT_PoESP32 +*/ + +#include "UNIT_PoESP32.h" +#include "M5Stack.h" +#include "M5GFX.h" + +UNIT_PoESP32 eth; +String readstr; + +M5GFX display; +M5Canvas canvas(&display); + +void setup() { + M5.begin(); + display.begin(); + canvas.setColorDepth(1); // mono color + canvas.setFont(&fonts::efontCN_14); + canvas.setTextSize(2); + canvas.setPaletteColor(1, GREEN); + canvas.createSprite(display.width(), display.height()); + canvas.setTextScroll(true); + eth.Init(&Serial2, 9600, 16, 17); + delay(10); + canvas.println("wait device connect"); + canvas.pushSprite(0, 0); + while (!eth.checkDeviceConnect()) { + delay(10); + } + + canvas.println("device connected"); + canvas.println("wait ethernet connect"); + canvas.pushSprite(0, 0); + while (!eth.checkETHConnect()) { + delay(10); + } + canvas.println("ethernet connected"); + canvas.println("wait mqtt connect"); + canvas.pushSprite(0, 0); + + while (!eth.createMQTTClient("120.77.157.90", "1883", "client_id", + "user_name", "password")) { + delay(10); + } + canvas.println("mqtt connected"); + canvas.pushSprite(0, 0); + while (!eth.subscribeMQTTMsg("PoESP32_MQTT_D", "2")) { + delay(10); + } +} + +void loop() { + if (Serial2.available()) { + readstr = Serial2.readString(); + Serial.println(readstr); + canvas.println(readstr); + canvas.pushSprite(0, 0); + } + eth.publicMQTTMsg("PoESP32_MQTT_U", "Hello From PoESP32", "2"); + delay(2000); +} diff --git a/examples/Unit/PoESP32/TCP_CLIENT/TCP_CLIENT.ino b/examples/Unit/PoESP32/TCP_CLIENT/TCP_CLIENT.ino new file mode 100644 index 0000000..f1c4d74 --- /dev/null +++ b/examples/Unit/PoESP32/TCP_CLIENT/TCP_CLIENT.ino @@ -0,0 +1,76 @@ +/* + Description: + Use UNIT PoESP32 connect to TCP Server + UNIT PoESP32 Connect to M5Core PORT-C (G16/17) + before compiling: + M5Stack: https://github.com/m5stack/M5Stack + M5GFX: https://github.com/m5stack/M5GFX + UNIT_PoESP32: https://github.com/m5stack/UNIT_PoESP32 +*/ + +#include "UNIT_PoESP32.h" +#include "M5Stack.h" +#include "M5GFX.h" + +UNIT_PoESP32 eth; +uint8_t data[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x06, 0x07, 0x08, 0x09, 0x10}; + +M5GFX display; +M5Canvas canvas(&display); + +void setup() { + M5.begin(); + display.begin(); + canvas.setColorDepth(1); // mono color + canvas.setFont(&fonts::efontCN_14); + canvas.setTextSize(2); + canvas.setPaletteColor(1, GREEN); + canvas.createSprite(display.width(), display.height()); + canvas.setTextScroll(true); + eth.Init(&Serial2, 9600, 16, 17); + delay(10); + canvas.println("wait device connect"); + canvas.pushSprite(0, 0); + while (!eth.checkDeviceConnect()) { + delay(10); + } + + canvas.println("device connected"); + canvas.println("wait ethernet connect"); + canvas.pushSprite(0, 0); + while (!eth.checkETHConnect()) { + delay(10); + } + canvas.println("ethernet connected"); + canvas.println("Config TCP Client"); + canvas.println("wait tcp connect"); + canvas.pushSprite(0, 0); + // AT+CIPSTART="TCP","192.168.3.102",8080 + while (!eth.createTCPClient("120.77.157.90", 1883)) { + delay(10); + } + // while (!eth.configTCPClient("192.168.1.5", 60000)) { + // delay(10); + // } + canvas.println("tcp connected"); + canvas.pushSprite(0, 0); + + if (eth.sendTCPData(data, sizeof(data))) { + canvas.println("send ok"); + } else { + canvas.println("send fail"); + } + canvas.pushSprite(0, 0); +} + +void loop() { + if (Serial.available()) { + char ch = Serial.read(); + Serial2.write(ch); + } + if (Serial2.available()) { + char ch = Serial2.read(); + Serial.write(ch); + } +} diff --git a/library.properties b/library.properties index 39ca609..3c76867 100644 --- a/library.properties +++ b/library.properties @@ -8,5 +8,5 @@ category=Device Control url=https://github.com/m5stack/m5stack architectures=esp32 includes=M5Stack.h -depends=M5GFX,ESP32CAN,UNIT_ENV,UNIT_4RELAY,ADXL345,FastLED,MODULE_GRBL13.2,Adafruit MCP4725,Adafruit TCS34725,Adafruit NeoPixel,MAX30100lib,MFRC522_I2C,M5_BM8563,M5_ADS1100,M5_ADS1115,M5_FPC1020A,HX711 Arduino Library,PCA9554,TinyGPSPlus-ESP32,Adafruit SGP30 Sensor,FFT,TFTTerminal,ClosedCube TCA9548A,M5GFX,ArduinoJson,M5_EzData,PubSubClient,UNIT_SONIC,PoE_CAM,M5_RoverC,UNIT_UHF_RFID,M5_JoyC,M5_BH1750FVI,ATOM_DTU_CAT1,TinyGSM +depends=M5GFX,ESP32CAN,UNIT_ENV,UNIT_4RELAY,ADXL345,FastLED,MODULE_GRBL13.2,Adafruit MCP4725,Adafruit TCS34725,Adafruit NeoPixel,MAX30100lib,MFRC522_I2C,M5_BM8563,M5_ADS1100,M5_ADS1115,M5_FPC1020A,HX711 Arduino Library,PCA9554,TinyGPSPlus-ESP32,Adafruit SGP30 Sensor,FFT,TFTTerminal,ClosedCube TCA9548A,M5GFX,ArduinoJson,M5_EzData,PubSubClient,UNIT_SONIC,PoE_CAM,M5_RoverC,UNIT_UHF_RFID,M5_JoyC,M5_BH1750FVI,ATOM_DTU_CAT1,TinyGSM,UNIT_PoESP32