├── README.md └── messenger └── messenger.ino /README.md: -------------------------------------------------------------------------------- 1 | Yes, these two are using two-way ESP-NOW connections to send simple messages. This was a challenging project, not because of the two-way ESP-NOW itself—I learned how to make two-way ESP-NOW communication by reading a great tutorial on the Random Nerd Tutorials site. The challenge was making this using the small M5Stack Atom S3 board, an ESP32-S3 device with a built-in 128x128 display, IR LED, push button, accelerometer, gyroscope, and more. Of course, one push button was not enough for this project, so I designed a simple PCB. The sponsor of this video is PCBWay. On their site, you can find and order these PCBs and read more information about this project. Along with PCBs, they offer many different services such as 3D printing, CNC machining, and more. The link is in the description; feel free to check it out. The PCB is simple but works great; the quality of their PCBs is always top-notch. 2 | -------------------------------------------------------------------------------- /messenger/messenger.ino: -------------------------------------------------------------------------------- 1 | #include "M5AtomS3.h" 2 | #include 3 | #include "WiFi.h" 4 | #include 5 | TFT_eSPI tft = TFT_eSPI(); 6 | TFT_eSprite spr = TFT_eSprite(&tft); 7 | 8 | uint8_t broadcastAddress[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; 9 | 10 | //colors 11 | unsigned short light=0x8F1F; 12 | unsigned short dark=0x0169; 13 | unsigned short darkest=0x0062; 14 | unsigned short selected=0x701D; 15 | unsigned short foreground; 16 | unsigned short background; 17 | unsigned short txt1=0xDEFB; 18 | char letters[31]="QWERTYUIOPASDFGHJKL9) chosenX=0;} 194 | 195 | if(butt[i]==left) 196 | {chosenX--; if(chosenX<0) chosenX=9;} 197 | 198 | if(butt[i]==down) 199 | {chosenY++; if(chosenY>2) chosenY=0;} 200 | 201 | if(butt[i]==up) 202 | {chosenY--; if(chosenY<0) chosenY=2;} 203 | 204 | if(butt[i]==ok) 205 | { 206 | if(letters[chosenY*10+chosenX]=='<' && myMsg.length()<21) 207 | myMsg=myMsg.substring(0,myMsg.length()-1); 208 | else 209 | myMsg=myMsg+String(letters[chosenY*10+chosenX]); 210 | } 211 | 212 | if(butt[i]==send) 213 | { 214 | sendMsg(); 215 | } 216 | } 217 | }else deb[i]=0; 218 | 219 | draw(); 220 | } --------------------------------------------------------------------------------