Ewangl的资源发布站


【源码】物联网ESP8266UDP控制

 开发工具:Arduino

#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
//配置
#define YJ0 0
#define YJ2 2
const char *ssid = "E1_5-19-5";
const char *password = "";
const int Port = 86;
const char *sbid = "客厅";
IPAddress local_IP(192, 168, 20, 81); //IP
IPAddress gateway(192, 168, 20, 1);
IPAddress subnet(255, 255, 255, 0);
WiFiUDP Udp;
//连接wifi
void szsj() {
  WiFi.begin(ssid, password);//连接wifi
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }
  Udp.begin(Port); //设置UDP端口
  Serial.println(WiFi.localIP());
}
//发送
void Send1(const char *data) {
  Udp.beginPacket(Udp.remoteIP(), Udp.remotePort()); //准备发送
  Udp.write(data); //发送数据
  Udp.endPacket();
}
// 初始化
void setup() {
  Serial.begin(74880);//设置串口
  WiFi.config(local_IP, gateway, subnet);//设置静态IP
  pinMode(YJ0, OUTPUT);//设置引脚0
  pinMode(YJ2, OUTPUT);//设置引脚2
  //digitalWrite(YJ0, 1);
  //digitalWrite(YJ2, 1);
  WiFi.mode(WIFI_STA);//设置模式
  szsj();
}
// 死循环
void loop() {
  while (WiFi.status() != WL_CONNECTED) {
    szsj();
    return;
  }
  //读取
  char data[255] = ""; //缓冲区
  if (Udp.parsePacket()) //如果数据包可用
  {
    int len = Udp.read(data, 255); //读取数据
    if (strcmp(data, "zl_0") == 0) {
      //指令1
      int yj = !digitalRead(YJ0);
      digitalWrite(YJ0, yj);
      if (yj == 0) {
        Send1("0");
      } else {
        Send1("1");
      }
      Serial.println("YJ0");
      Serial.println(yj);
    } else if (strcmp(data, "zl_1") == 0) {
      //指令2
      int yj = !digitalRead(YJ2);
      digitalWrite(YJ2, yj);
      if (yj == 0) {
        Send1("0");
      } else {
        Send1("1");
      }
      Serial.println("YJ2");
      Serial.println(yj);
    } else {
      //无效指令
      Send1(sbid);
    }
  }
}

 

点评
请和谐点评及回复,共同创造绿色网络!

Ewangl (2020年6月19日18时49分10秒):测试!

admin (2020年6月19日22时20分):测试

部分内容来自互联网,如有侵犯,请联系我们删除!
个人博客系统 v1.1.1
QQ: 452327180
Email: admin@ewangl.cn
By: ChineseActivePage(CAP) v1.5
蜀ICP备:17037879号
分享按钮