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

您所在的位置:网站首页 远程电脑开关机卡住 ESP8266远程控制开关示例超全面详细(2021

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

2024-05-28 14:55| 来源: 网络整理| 查看: 265

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在使用,找下对应的标号,后面要编程,网上资料较多。 在这里插入图片描述

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

1.2软件准备 1.2.1烧录工具 建议使用ESPFlashDownloadTool_v3.6.4.exe这种老固件工具,带有erase功能,但烧写速度不如ESPFlashDownloadTool_v3.4.4.exe;ESPFlashDownloadTool_v3.4.4.exe也可以。不建议使用ESP8266Flasher.exe。去网上下载很多的。 在这里插入图片描述

1.2.1 固件 (1)AT固件用于测试硬件模块,网上搜索可以下载 在这里插入图片描述

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

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

在这里插入图片描述

模块列表: 在这里插入图片描述

提交即可,过后编译完后在邮箱收到下载包: 在这里插入图片描述

邮箱下载包链接: 在这里插入图片描述

选用integer类型的包,占用内存小: 在这里插入图片描述

1.2.2 应用程序编程工具 Java的JDK安装,ESPlorer依赖java虚拟机启动: ESPlorer从github上找版本,2.0版本基本功能无bug,运行bat免安装即可。 在这里插入图片描述

1.3烧录固件 使用ESPFlashDownloadTool_v3.6.4.exe下载 步骤一: 连接串口实物到电脑USB之前,要安装CH340驱动,网上很多可以下载。 在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述 在这里插入图片描述

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

1.4串口做AT指令测试 很简单的操作,不过遇到两大坑点,要注意:1、选择配套的串口工具;2、勾选发送新行。网上有很多资料,不用多讲。 在这里插入图片描述

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());

在这里插入图片描述

苹果手机下载TCP工具,没有免费的物联网APP可使用;示例为苹果手机, APP商店搜UDP/TCP/Rest Network Test Utility。 安卓可用国产物联网APP较多,用TCP工具也可以。 在这里插入图片描述 在这里插入图片描述

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

在这里插入图片描述 在这里插入图片描述

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3