#夏日挑战赛#DIY一个WiFi物联网开关 原创

dstt_l3
发布于 2022-6-17 23:44
浏览
1收藏

本文正在参加星光计划3.0—夏日挑战赛

硬件准备(需要自行购买)

1、ESP8266 ESP-01/01S 继电器

#夏日挑战赛#DIY一个WiFi物联网开关-鸿蒙开发者社区

2、CH340C下载烧录器

#夏日挑战赛#DIY一个WiFi物联网开关-鸿蒙开发者社区

软件准备

下载arduino

官方下载地址

添加 ESP8266 支持

1、附加开发板管理器地址

打开Arduino IDE,点击左上角的文件,进入首选项(Preferences),找到附加开发板管理器地址(Additional Board Manager URLs),并在其后输入如下链接: http://arduino.esp8266.com/stable/package_esp8266com_index.json
#夏日挑战赛#DIY一个WiFi物联网开关-鸿蒙开发者社区

2、安装ESP8266库

然后点击工具 → 开发板 → 开发板管理器,进入开发板管理器界面,搜索 esp ,找到ESP8266并安装:
#夏日挑战赛#DIY一个WiFi物联网开关-鸿蒙开发者社区
#夏日挑战赛#DIY一个WiFi物联网开关-鸿蒙开发者社区

3、选择开发板

安装完成后,重启 Arduino IDE 软件。在工具 → 开发板选项中即会看到 ESP8266 开发板的选项,选择esp8266,如图
#夏日挑战赛#DIY一个WiFi物联网开关-鸿蒙开发者社区

4、设置端口

在我的电脑 - 设备管理器中查看烧录器端口
#夏日挑战赛#DIY一个WiFi物联网开关-鸿蒙开发者社区
在ide中设置端口
#夏日挑战赛#DIY一个WiFi物联网开关-鸿蒙开发者社区

5、烧录代码

复制下面代码到ide中,点击上传按钮进行烧录(红箭头位置)
#夏日挑战赛#DIY一个WiFi物联网开关-鸿蒙开发者社区
烧录成功后,取出esp-01s,插入继电器,连接线路后就可以使用了。

完整代码

// 引入 wifi 模块
#include <ESP8266WiFi.h>
// 引入 WebServer 模块
#include <ESP8266WebServer.h>

//设置您的WiFi接入信息(这里需要修改成自己的WiFi)
// WiFi名称
const char* ssid = "HUAWEI";
// WiFi密😳码
const char* password = "1234567888";
// 继电器引脚号
const int relay = 0;
// 板载led引脚号
const int ledPin = 2;
// html内容
String html = "开";

ESP8266WebServer server(80);

void setup(void) {
  //初始化串口
  Serial.begin(115200);
  Serial.println("初始化。。。");
  // 设置继电器引脚为输出(OUTPUT)模式
  pinMode(relay, OUTPUT);
  // 设置led引脚为输出(OUTPUT)模式
  pinMode(ledPin, OUTPUT);
  //初始化网络
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  // 输出网络连接信息
  Serial.print("正在连接[");
  Serial.print(ssid);
  Serial.print("]");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("IP Address: ");
  Serial.println(WiFi.localIP());

  // 网络连接成功后熄灭板载led灯
  digitalWrite(ledPin, HIGH);

  //初始化WebServer

  // 开 操作
  server.on("/on", []() {
    
    digitalWrite(relay, LOW);
    // 点亮板载led灯
    digitalWrite(ledPin, LOW);
    if(digitalRead(relay) == 0){
      html = "开";
    }else{
      html = "关";
    }
    server.send(200, "text/html;charset=UTF-8", html);
    Serial.println("打开灯光");
  });

  // 关 操作
  server.on("/off", []() {
    digitalWrite(relay, HIGH);
    // 熄灭板载led灯
    digitalWrite(ledPin, HIGH);
    if(digitalRead(relay) == 0){
      html = "开";
    }else{
      html = "关";
    }
    server.send(200, "text/html;charset=UTF-8", html);
    Serial.println("关闭灯光");
  });

  //查询操作
  server.on("/s", []() {
    
    if(digitalRead(relay) == 0){
      html = "开";
    }else{
      html = "关";
    }
    server.send(200, "text/html;charset=UTF-8", html);
    Serial.println("查询灯光状态");
  });
  
  server.begin();
  Serial.println("HTTP 服务器启动成功!");
}

void loop(void) {
  //监听客户请求并处理
  server.handleClient();
}

如何控制开关

获取esp01s IP地址(也可以到路由器管理地址里查询)

#夏日挑战赛#DIY一个WiFi物联网开关-鸿蒙开发者社区

开操作(浏览器访问http://IP地址/on)

#夏日挑战赛#DIY一个WiFi物联网开关-鸿蒙开发者社区

关操作(浏览器访问http://IP地址/off)

#夏日挑战赛#DIY一个WiFi物联网开关-鸿蒙开发者社区

查询开关状态(浏览器访问http://IP地址/s)

#夏日挑战赛#DIY一个WiFi物联网开关-鸿蒙开发者社区

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
标签
已于2022-6-17 23:45:21修改
3
收藏 1
回复
举报
回复
    相关推荐