Skip to content

Commit f9e87b6

Browse files
committed
Merge branch 'master' of https://github.com/m5stack/M5Stack into master
2 parents 607f917 + 16db1b0 commit f9e87b6

File tree

5 files changed

+364
-2
lines changed

5 files changed

+364
-2
lines changed

examples/Modules/4RELAY/4RELAY.ino

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
/*
2+
*******************************************************************************
3+
* Copyright (c) 2022 by M5Stack
4+
* Equipped with M5Core sample source code
5+
* 配套 M5Core 示例源代码
6+
* Visit the website for more
7+
*information:https://docs.m5stack.com/en/module/4relay
8+
* 获取更多资料请访问:https://docs.m5stack.com/zh_CN/module/4relay
9+
*
10+
* describe: Module 4Relay.
11+
* date:2022/04/07
12+
*******************************************************************************
13+
*/
14+
15+
#include <M5Stack.h>
16+
#include "MODULE_4RELAY.h"
17+
#include <M5GFX.h>
18+
19+
M5GFX display;
20+
M5Canvas canvas(&display);
21+
22+
MODULE_4RELAY RELAY;
23+
24+
void drwaRect() {
25+
canvas.fillSprite(0);
26+
canvas.drawString("Module 4Relay", 160, 20);
27+
canvas.drawString("A REVERSE", 220, 80);
28+
canvas.drawString("B STEP", 220, 120);
29+
canvas.drawString("C RUNING", 220, 160);
30+
31+
uint8_t state = RELAY.getAllRelayState();
32+
Serial.println(state);
33+
for(uint8_t i=0; i<4; i++){
34+
if(((state>>i) & 0x01) == 1){
35+
canvas.fillRect(20, 50 + 50*i, 100, 20);
36+
}else{
37+
canvas.drawRect(20, 50 + 50*i, 100, 20);
38+
}
39+
}
40+
canvas.pushSprite(0,0);
41+
}
42+
43+
44+
void setup() {
45+
M5.begin(); // Init M5Stack. 初始化M5Stack
46+
// sensor.begin(&Wire, 0x57, 21, 22, 200000L);
47+
RELAY.begin(&Wire, MODULE_4RELAY_ADDR, 21, 22, 200000L);
48+
display.begin();
49+
canvas.setColorDepth(1);
50+
canvas.setFont(&fonts::Orbitron_Light_24);
51+
canvas.setTextSize(1);
52+
canvas.setTextDatum(MC_DATUM);
53+
canvas.createSprite(display.width(), display.height());
54+
canvas.setPaletteColor(1, ORANGE);
55+
canvas.pushSprite(0,0);
56+
}
57+
58+
uint8_t mode = 0;
59+
60+
bool delayBtn(unsigned long start){
61+
while(1) {
62+
M5.update();
63+
if(M5.BtnA.wasPressed()){
64+
mode = 0;
65+
return true;
66+
}
67+
if(M5.BtnB.wasPressed()){
68+
mode = 1;
69+
return true;
70+
}
71+
if(M5.BtnC.wasPressed()){
72+
mode = 2;
73+
return true;
74+
}
75+
if((millis() - start) > 500){
76+
return false;
77+
}
78+
}
79+
}
80+
81+
void loop() {
82+
switch (mode)
83+
{
84+
case 0:
85+
RELAY.setAllRelay(true);
86+
drwaRect();
87+
if(delayBtn(millis())){
88+
RELAY.setAllRelay(false);
89+
break;
90+
};
91+
RELAY.setAllRelay(false);
92+
drwaRect();
93+
if(delayBtn(millis())){
94+
RELAY.setAllRelay(false);
95+
break;
96+
};
97+
break;
98+
case 1:
99+
for (uint8_t i = 0; i < 4; i++) {
100+
while(!delayBtn(millis()));
101+
if(mode != 1) break;
102+
RELAY.setRelay(i, true);
103+
drwaRect();
104+
105+
}
106+
for (uint8_t i = 0; i < 4; i++) {
107+
while(!delayBtn(millis()));
108+
if(mode != 1) break;
109+
RELAY.setRelay(i, false);
110+
drwaRect();
111+
}
112+
break;
113+
case 2:
114+
for (uint8_t i = 0; i < 4; i++) {
115+
RELAY.setRelay(i, true);
116+
drwaRect();
117+
if(delayBtn(millis())){
118+
break;
119+
};
120+
}
121+
for (uint8_t i = 0; i < 4; i++) {
122+
RELAY.setRelay(i, false);
123+
drwaRect();
124+
if(delayBtn(millis())){
125+
break;
126+
};
127+
}
128+
break;
129+
}
130+
}
131+
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
/*
2+
Description:
3+
Use UNIT PoESP32 to create HTTP request
4+
UNIT PoESP32 Connect to M5Core PORT-C (G16/17)
5+
before compiling:
6+
M5Stack: https://github.com/m5stack/M5Stack
7+
M5GFX: https://github.com/m5stack/M5GFX
8+
UNIT_PoESP32: https://github.com/m5stack/UNIT_PoESP32
9+
*/
10+
11+
#include "UNIT_PoESP32.h"
12+
#include "M5Stack.h"
13+
#include "M5GFX.h"
14+
15+
UNIT_PoESP32 eth;
16+
String readstr;
17+
18+
M5GFX display;
19+
M5Canvas canvas(&display);
20+
21+
void setup() {
22+
M5.begin();
23+
display.begin();
24+
canvas.setColorDepth(1); // mono color
25+
canvas.setFont(&fonts::efontCN_14);
26+
canvas.setTextSize(2);
27+
canvas.setPaletteColor(1, GREEN);
28+
canvas.createSprite(display.width(), display.height());
29+
canvas.setTextScroll(true);
30+
eth.Init(&Serial2, 9600, 16, 17);
31+
delay(10);
32+
canvas.println("wait device connect");
33+
canvas.pushSprite(0, 0);
34+
while (!eth.checkDeviceConnect()) {
35+
delay(10);
36+
}
37+
38+
canvas.println("device connected");
39+
canvas.println("wait ethernet connect");
40+
canvas.pushSprite(0, 0);
41+
while (!eth.checkETHConnect()) {
42+
delay(10);
43+
}
44+
canvas.println("ethernet connected");
45+
canvas.pushSprite(0, 0);
46+
47+
readstr = eth.createHTTPClient(HEAD, APPLICATION_X_WWW_FORM_URLENCODED,
48+
"http://httpbin.org/get");
49+
Serial.println(readstr);
50+
canvas.println(readstr);
51+
canvas.pushSprite(0, 0);
52+
53+
readstr = eth.createHTTPClient(GET, APPLICATION_X_WWW_FORM_URLENCODED,
54+
"http://httpbin.org/get");
55+
Serial.println(readstr);
56+
canvas.println(readstr);
57+
canvas.pushSprite(0, 0);
58+
59+
readstr = eth.createHTTPClient(POST, APPLICATION_X_WWW_FORM_URLENCODED,
60+
"http://httpbin.org/post",
61+
"field1=value1&field2=value2");
62+
Serial.println(readstr);
63+
canvas.println(readstr);
64+
canvas.pushSprite(0, 0);
65+
66+
readstr = eth.createHTTPClient(PUT, APPLICATION_X_WWW_FORM_URLENCODED,
67+
"http://httpbin.org/put");
68+
Serial.println(readstr);
69+
canvas.println(readstr);
70+
canvas.pushSprite(0, 0);
71+
72+
readstr = eth.createHTTPClient(DELETE, APPLICATION_X_WWW_FORM_URLENCODED,
73+
"http://httpbin.org/delete");
74+
Serial.println(readstr);
75+
canvas.println(readstr);
76+
canvas.pushSprite(0, 0);
77+
}
78+
79+
void loop() {
80+
if (Serial.available()) {
81+
char ch = Serial.read();
82+
Serial2.write(ch);
83+
}
84+
if (Serial2.available()) {
85+
char ch = Serial2.read();
86+
Serial.write(ch);
87+
}
88+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
/*
2+
Description:
3+
Use UNIT PoESP32 connect to MQTT Server
4+
UNIT PoESP32 Connect to M5Core PORT-C (G16/17)
5+
before compiling:
6+
M5Stack: https://github.com/m5stack/M5Stack
7+
M5GFX: https://github.com/m5stack/M5GFX
8+
UNIT_PoESP32: https://github.com/m5stack/UNIT_PoESP32
9+
*/
10+
11+
#include "UNIT_PoESP32.h"
12+
#include "M5Stack.h"
13+
#include "M5GFX.h"
14+
15+
UNIT_PoESP32 eth;
16+
String readstr;
17+
18+
M5GFX display;
19+
M5Canvas canvas(&display);
20+
21+
void setup() {
22+
M5.begin();
23+
display.begin();
24+
canvas.setColorDepth(1); // mono color
25+
canvas.setFont(&fonts::efontCN_14);
26+
canvas.setTextSize(2);
27+
canvas.setPaletteColor(1, GREEN);
28+
canvas.createSprite(display.width(), display.height());
29+
canvas.setTextScroll(true);
30+
eth.Init(&Serial2, 9600, 16, 17);
31+
delay(10);
32+
canvas.println("wait device connect");
33+
canvas.pushSprite(0, 0);
34+
while (!eth.checkDeviceConnect()) {
35+
delay(10);
36+
}
37+
38+
canvas.println("device connected");
39+
canvas.println("wait ethernet connect");
40+
canvas.pushSprite(0, 0);
41+
while (!eth.checkETHConnect()) {
42+
delay(10);
43+
}
44+
canvas.println("ethernet connected");
45+
canvas.println("wait mqtt connect");
46+
canvas.pushSprite(0, 0);
47+
48+
while (!eth.createMQTTClient("120.77.157.90", "1883", "client_id",
49+
"user_name", "password")) {
50+
delay(10);
51+
}
52+
canvas.println("mqtt connected");
53+
canvas.pushSprite(0, 0);
54+
while (!eth.subscribeMQTTMsg("PoESP32_MQTT_D", "2")) {
55+
delay(10);
56+
}
57+
}
58+
59+
void loop() {
60+
if (Serial2.available()) {
61+
readstr = Serial2.readString();
62+
Serial.println(readstr);
63+
canvas.println(readstr);
64+
canvas.pushSprite(0, 0);
65+
}
66+
eth.publicMQTTMsg("PoESP32_MQTT_U", "Hello From PoESP32", "2");
67+
delay(2000);
68+
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
/*
2+
Description:
3+
Use UNIT PoESP32 connect to TCP Server
4+
UNIT PoESP32 Connect to M5Core PORT-C (G16/17)
5+
before compiling:
6+
M5Stack: https://github.com/m5stack/M5Stack
7+
M5GFX: https://github.com/m5stack/M5GFX
8+
UNIT_PoESP32: https://github.com/m5stack/UNIT_PoESP32
9+
*/
10+
11+
#include "UNIT_PoESP32.h"
12+
#include "M5Stack.h"
13+
#include "M5GFX.h"
14+
15+
UNIT_PoESP32 eth;
16+
uint8_t data[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
17+
0x06, 0x07, 0x08, 0x09, 0x10};
18+
19+
M5GFX display;
20+
M5Canvas canvas(&display);
21+
22+
void setup() {
23+
M5.begin();
24+
display.begin();
25+
canvas.setColorDepth(1); // mono color
26+
canvas.setFont(&fonts::efontCN_14);
27+
canvas.setTextSize(2);
28+
canvas.setPaletteColor(1, GREEN);
29+
canvas.createSprite(display.width(), display.height());
30+
canvas.setTextScroll(true);
31+
eth.Init(&Serial2, 9600, 16, 17);
32+
delay(10);
33+
canvas.println("wait device connect");
34+
canvas.pushSprite(0, 0);
35+
while (!eth.checkDeviceConnect()) {
36+
delay(10);
37+
}
38+
39+
canvas.println("device connected");
40+
canvas.println("wait ethernet connect");
41+
canvas.pushSprite(0, 0);
42+
while (!eth.checkETHConnect()) {
43+
delay(10);
44+
}
45+
canvas.println("ethernet connected");
46+
canvas.println("Config TCP Client");
47+
canvas.println("wait tcp connect");
48+
canvas.pushSprite(0, 0);
49+
// AT+CIPSTART="TCP","192.168.3.102",8080
50+
while (!eth.createTCPClient("120.77.157.90", 1883)) {
51+
delay(10);
52+
}
53+
// while (!eth.configTCPClient("192.168.1.5", 60000)) {
54+
// delay(10);
55+
// }
56+
canvas.println("tcp connected");
57+
canvas.pushSprite(0, 0);
58+
59+
if (eth.sendTCPData(data, sizeof(data))) {
60+
canvas.println("send ok");
61+
} else {
62+
canvas.println("send fail");
63+
}
64+
canvas.pushSprite(0, 0);
65+
}
66+
67+
void loop() {
68+
if (Serial.available()) {
69+
char ch = Serial.read();
70+
Serial2.write(ch);
71+
}
72+
if (Serial2.available()) {
73+
char ch = Serial2.read();
74+
Serial.write(ch);
75+
}
76+
}

library.properties

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,4 @@ category=Device Control
88
url=https://github.com/m5stack/m5stack
99
architectures=esp32
1010
includes=M5Stack.h
11-
depends=M5_JoyC,ATOM_DTU_CAT1,M5_BMM150,M5GFX,M5_BM8563,M5_BH1750FVI,M5_ADS1100,M5_ADS1115,UNIT_MQTT,M5_EzData,M5_FPC1020A,M5_RoverC,UNIT_ENV,UNIT_SONIC,UNIT_UHF_RFID,UNIT_4RELAY,PoE_CAM,FastLED,Adafruit MCP4725,Adafruit TCS34725,Adafruit NeoPixel,MAX30100lib,MFRC522_I2C,HX711 Arduino Library,PCA9554,TinyGPSPlus-ESP32,Adafruit SGP30 Sensor,FFT,TFTTerminal,ClosedCube TCA9548A,Ethernet2,ESP8266Audio,ArduinoJson,PubSubClient,TinyGSM
12-
11+
depends=M5_JoyC,ATOM_DTU_CAT1,M5_BMM150,M5GFX,M5_BM8563,M5_BH1750FVI,M5_ADS1100,M5_ADS1115,UNIT_MQTT,M5_EzData,M5_FPC1020A,M5_RoverC,UNIT_ENV,UNIT_SONIC,UNIT_UHF_RFID,UNIT_4RELAY,PoE_CAM,MODULE_4RELAY,FastLED,Adafruit MCP4725,Adafruit TCS34725,Adafruit NeoPixel,MAX30100lib,MFRC522_I2C,HX711 Arduino Library,PCA9554,TinyGPSPlus-ESP32,Adafruit SGP30 Sensor,FFT,TFTTerminal,ClosedCube TCA9548A,Ethernet2,ESP8266Audio,ArduinoJson,PubSubClient,TinyGSM

0 commit comments

Comments
 (0)