当前位置:   article > 正文

ESP32/ESP8266 使用WIFI模块进行UDP通信 - 米思齐/Arduino_米思齐esp32

米思齐esp32

使用UDP协议, 进行通信

  • ESP32以AP模式运行
  • ESP8266以STA模式运行
  • ESP8266每五秒发送"hello"
  • ESP32实时接受ESP8266发送的消息

注意 

  • 使用WiFi时, ADC2模拟通道无法使用
  • ADC2 10个通道:GPIO0、GPIO2、GPIO4、GPIO12-GPIO15、GOIO25-GPIO27
  • ADC1 8通道:GPIO32 - GPIO39

ESP - Ap 接收端

米思齐IDE代码块

  1. #include <WiFi.h>
  2. #include <WiFiUDP.h>
  3. const char AP_NameChar[] = "WIFI-SSID";
  4. const char WiFiAPPSK[] = "WIFI-PSK";
  5. IPAddress ESP8266ip1(192,168,4,2);
  6. IPAddress ESP8266ip2(192,168,4,3);
  7. IPAddress ESP8266ip(192,168,4,255);
  8. unsigned int localPort =8080;
  9. unsigned int remotePort=8080;
  10. char incomingPacket[537];
  11. char A;
  12. WiFiUDP Udp;
  13. void setup(){
  14. Serial.begin(9600);
  15. WiFi.mode(WIFI_AP);
  16. WiFi.softAP(AP_NameChar, WiFiAPPSK);
  17. Udp.begin(localPort);
  18. Serial.println();
  19. Serial.println("Started ap. Local ip: " + WiFi.softAPIP().toString());
  20. Serial.begin(9600);
  21. }
  22. void loop(){
  23. int packetSize = Udp.parsePacket();
  24. if (packetSize)
  25. {
  26. Serial.printf("Received %d bytes from %s, port %d\n", packetSize, Udp.remoteIP().toString().c_str(), Udp.remotePort());
  27. int len = Udp.read(incomingPacket, 536);
  28. if (len > 0)
  29. {
  30. incomingPacket[len] = 0;
  31. Serial.printf("UDP packet contents: %s\n", incomingPacket);
  32. String COM=incomingPacket;
  33. Serial.println(COM);
  34. }
  35. }
  36. }

ESP - STA 发送端

米思齐IDE代码块

  1. #define STASSID "WIFI-SSID"
  2. #define STAPSK "WIFI-PSK"
  3. #include <ESP8266WiFi.h>
  4. #include <WiFiUdp.h>
  5. #include <ESP8266WiFi.h>
  6. unsigned int localPort =8080;
  7. unsigned int remotePort=8080;
  8. char incomingPacket[537];
  9. char A;
  10. WiFiUDP Udp;
  11. void setup(){
  12. Serial.begin(9600);
  13. WiFi.mode(WIFI_STA);
  14. WiFi.begin(STASSID, STAPSK);
  15. while (WiFi.status() != WL_CONNECTED)
  16. {
  17. Serial.print(".");
  18. delay(500);
  19. }
  20. delay(1000);
  21. Serial.println();
  22. Serial.print("Connected! IP address: ");
  23. Serial.println(WiFi.localIP());
  24. Serial.printf("UDP server on port ", localPort);
  25. Udp.begin(localPort);
  26. Serial.begin(9600);
  27. Serial.print(WiFi.localIP());
  28. }
  29. void loop(){
  30. Udp.beginPacket("192.168.4.1",remotePort);
  31. Udp.print("hello");
  32. Udp.endPacket();
  33. delay(5000);
  34. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/391442
推荐阅读
相关标签
  

闽ICP备14008679号