ESP8266远程控制开关示例超全面详细(2021-10-18)

ESP8266远程控制开关示例超全面详细

1 背景描述
ESP8266模块是比较标准方便的wifi开发模块,把他当做为单片机,有输入输出引脚和操作指令、内存,就是一个计算机了。引脚收发接口可做串口通讯,WIFI接口依照无线wifi协议通信,都是TCP/IP协议发展的。网上的帖子资料太杂乱。(软件包我发出的下载帖子中,不知道能审核过吗?)
(1)简单测试硬件: 用AT指令即可,仅用于调试ESP8266模块是否正常。ESP8266模块烧写AT固件即可,固件认为是操作系统。
(2)编写应用程序控制: 需烧写可编程的NodeMCU固件,在对应云系统申请即可;基于lua语法编写应用程序,通过ESPlorer工具下载应用程序,手机可控制LED灯的亮灭。当然还有基于Arduino编程的方法。本文基于ESPlorer工具讲解,lua是脚本语言。
2搭建环境
1.1硬件ESP8266-01S
实物可在拼多多购买,有相应资料但很杂乱。记得去网上查找下电路图,板子上写着ESP Prog v1.0 IOTMCU,看下引脚连接。主要看电源引脚、复位和使能开关、收发接口,GPIO口,模块上有GPIO0和GPIO2在使用,找下对应的标号,后面要编程,网上资料较多。
ESP8266远程控制开关示例超全面详细(2021-10-18)_第1张图片

ESP8266远程控制开关示例超全面详细(2021-10-18)_第2张图片
ESP8266远程控制开关示例超全面详细(2021-10-18)_第3张图片
ESP8266远程控制开关示例超全面详细(2021-10-18)_第4张图片
ESP8266远程控制开关示例超全面详细(2021-10-18)_第5张图片

1.2软件准备
1.2.1烧录工具
建议使用ESPFlashDownloadTool_v3.6.4.exe这种老固件工具,带有erase功能,但烧写速度不如ESPFlashDownloadTool_v3.4.4.exe;ESPFlashDownloadTool_v3.4.4.exe也可以。不建议使用ESP8266Flasher.exe。去网上下载很多的。
ESP8266远程控制开关示例超全面详细(2021-10-18)_第6张图片

1.2.1 固件
(1)AT固件用于测试硬件模块,网上搜索可以下载
ESP8266远程控制开关示例超全面详细(2021-10-18)_第7张图片

(3)NodeMCU固件
申请网址:
https://nodemcu-build.com/index.php

填写信息:邮箱、email许可、release版本(比较稳定)。

ESP8266远程控制开关示例超全面详细(2021-10-18)_第8张图片

模块列表:
ESP8266远程控制开关示例超全面详细(2021-10-18)_第9张图片

提交即可,过后编译完后在邮箱收到下载包:
ESP8266远程控制开关示例超全面详细(2021-10-18)_第10张图片

邮箱下载包链接:
ESP8266远程控制开关示例超全面详细(2021-10-18)_第11张图片

选用integer类型的包,占用内存小:
ESP8266远程控制开关示例超全面详细(2021-10-18)_第12张图片

1.2.2 应用程序编程工具
Java的JDK安装,ESPlorer依赖java虚拟机启动:
ESPlorer从github上找版本,2.0版本基本功能无bug,运行bat免安装即可。
ESP8266远程控制开关示例超全面详细(2021-10-18)_第13张图片

1.3烧录固件
使用ESPFlashDownloadTool_v3.6.4.exe下载
步骤一:
连接串口实物到电脑USB之前,要安装CH340驱动,网上很多可以下载。
ESP8266远程控制开关示例超全面详细(2021-10-18)_第14张图片

步骤二:
在电脑上找到端口号,win7系统默认不显示,百度下可以解决。
计算机->鼠标右键->管理

ESP8266远程控制开关示例超全面详细(2021-10-18)_第15张图片

ESP8266远程控制开关示例超全面详细(2021-10-18)_第16张图片

端口号为COM4;
步骤三:
打开ESPFlashDownloadTool_v3.6.4.exe,设置后可下载。

ESP8266远程控制开关示例超全面详细(2021-10-18)_第17张图片
ESP8266远程控制开关示例超全面详细(2021-10-18)_第18张图片

勾选固件;上载固件路径;设置烧录FLASH起始地址0x0000;设置SPI速率;设置SPI模式,DIO和DOUT貌似都可以;FLASH大小8M,ESP98266-01S选择8M,其他可能大一些;DoNotChgBin,根据实际选择COM口号,波特率115200;可复位ESP8266-01S再点击START,等着烧写完即可,关闭此软件避免占用COM4串口。

1.4串口做AT指令测试
很简单的操作,不过遇到两大坑点,要注意:1、选择配套的串口工具;2、勾选发送新行。网上有很多资料,不用多讲。
ESP8266远程控制开关示例超全面详细(2021-10-18)_第19张图片

1.5苹果手机开关灯
1.5.1编写应用程序
(1)打开ESPlorer-0.2.0,双击ESPlorer.bat即可。先串口连上ESP8266模块。

(2)编写程序,命名为init.lua。上载到ESP8266。图中的几个save按钮功能差不多,随便选一个可以用的。

Init.lua:
print(“Soft AP started”)
wifi.setmode(wifi.SOFTAP)
collectgarbage()

print(“Heep:(bytes)”…node.heap())
print(“MAC:”…wifi.ap.getmac()…"\r\nIP:"…wifi.ap.getip())

led2 = 4
gpio.mode(led2, gpio.OUTPUT)
srv=net.createServer(net.TCP,28800)
srv:listen(8080,function(conn)
conn:on(“receive”, function(client,data)
if(data == “on”)then
gpio.write(led2, gpio.HIGH);
print(“led2 on”)
elseif(data == “off”)then
gpio.write(led2, gpio.LOW);
print(“led2 off”)
else
print(“do nothing”)
end
collectgarbage();
end)
end)

上述为lua语法代码,可查看语法简单解释:
led2 = 4 // GPIO2的引脚数值为4
gpio.mode(led2, gpio.OUTPUT) // 设置模式为输出
srv=net.createServer(net.TCP,28800) // 开启TCP,28800为超时时长
客户端(手机或电脑连接ESP8266的wifi主机,主机监听的端口为8080)连接发送控制:
if(data == “on”)then
gpio.write(led2, gpio.HIGH); // on和off是相对的
print(“led2 on”)
elseif(data == “off”)then
gpio.write(led2, gpio.LOW);
print(“led2 off”)
else
print(“do nothing”)
end
1.5.2TCP测试开关灯
先查询主机的IP,默认为192.168.4.1,使用ESPlorer可查询。
print(“MAC:”…wifi.ap.getmac()…"\r\nIP:"…wifi.ap.getip());

ESP8266远程控制开关示例超全面详细(2021-10-18)_第20张图片

苹果手机下载TCP工具,没有免费的物联网APP可使用;示例为苹果手机, APP商店搜UDP/TCP/Rest Network Test Utility。
安卓可用国产物联网APP较多,用TCP工具也可以。
ESP8266远程控制开关示例超全面详细(2021-10-18)_第21张图片
ESP8266远程控制开关示例超全面详细(2021-10-18)_第22张图片

自己拿GND和IO2之间接了电阻和红色二极管,貌似ESP8266的蓝灯和红色二极管逻辑是反的,不过没关系,自己拿着电压表去测试线IO2的电压即可应用到实际。

ESP8266远程控制开关示例超全面详细(2021-10-18)_第23张图片
ESP8266远程控制开关示例超全面详细(2021-10-18)_第24张图片

1.6把ESP8266的wifi路由器映射到公网控制
在网上搜索相关的映射办法,属于网络的知识了,不过要有数通基础,不然通了也不知道原理。

你可能感兴趣的:(lua,物联网,stm32)