回复
#夏日挑战赛#DIY一个WiFi物联网开关 原创
dstt_l3
发布于 2022-6-17 23:44
浏览
1收藏
硬件准备(需要自行购买)
1、ESP8266 ESP-01/01S 继电器
2、CH340C下载烧录器
软件准备
下载arduino
添加 ESP8266 支持
1、附加开发板管理器地址
打开Arduino IDE,点击左上角的文件
,进入首选项(Preferences)
,找到附加开发板管理器地址(Additional Board Manager URLs)
,并在其后输入如下链接: http://arduino.esp8266.com/stable/package_esp8266com_index.json
2、安装ESP8266库
然后点击工具 → 开发板 → 开发板管理器,进入开发板管理器界面,搜索 esp ,找到ESP8266并安装:
3、选择开发板
安装完成后,重启 Arduino IDE 软件。在工具 → 开发板选项中即会看到 ESP8266 开发板的选项,选择esp8266,如图
4、设置端口
在我的电脑 - 设备管理器中查看烧录器端口
在ide中设置端口
5、烧录代码
复制下面代码到ide中,点击上传按钮进行烧录(红箭头位置)
烧录成功后,取出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地址(也可以到路由器管理地址里查询)
开操作(浏览器访问http://IP地址/on)
关操作(浏览器访问http://IP地址/off)
查询开关状态(浏览器访问http://IP地址/s)
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
标签
已于2022-6-17 23:45:21修改
赞
3
收藏 1
回复
相关推荐