当前位置:   article > 正文

ESP8266-01/01S 刷入NodeMCU固件 结合Relay继电器模块的使用(适合伸手党)_esp826601s继电器

esp826601s继电器

ESP8266-01/01S 刷入NodeMCU固件 结合Relay继电器模块的使用

说明,这个写了挺长时间了,大家也可以看看评论区的相关知识,现在的模块可能没有这么多问题了,准备好模块就能写,而且烧录工具啥的也有了很多新品种可以选择。

一、准备工作

A、软件

  1. 下载LuaLoader
  2. 下载ESPFlashDownloadTool(例如:ESPFlashDownloadTool_v3.6.4)
  3. 下载lua源代码
  4. 下载NodeMCU固件
  5. 以上资源的综合下载地址 传送门

B、硬件

  1. 一字螺丝刀一把

一个ESP8266-01/01s模块和一个Relay v4.0模块RB: IOTMCU,摸个宝上面都有卖,评论里说这个有问题的人是还没有用会的,模块本身没有问题的。至少我觉得没问题,也有大神说需要改线路才行,但是我们刷NodeMCU固件不需要。

特别注意,我发现这个esp模块有几种,图书指出的地方是白色的本教程的刷固件的工具不适用,只有金属色的适用。

ESP8266 ESP-01S Relay模块 继电器 WIFI 智能插座 加多ESP-01S

这个地方要注意有一部分esp8266-01模块就算使用下面提到的全自动烧录工具依旧需要接线。具体就是esp8266模块天线下面那块芯片是金色的可以烧录,是白色的需要自己折腾。目前遇到的是这样。白色会出现等待上电同步。新手误买。(这也是评论中有位兄弟遇到的问题。)

下载器一个,不要图便宜,一定要买这个,不要买那个只有一半黄色接口的,根本不好使。其实也不是,就是需要自己下载的时候加电阻啊,接线啊,你要是真的超级强ttl就可以烧录了,但是写入lua代码可能会更麻烦,新手推荐买这些设备。如果没有,先别着急动手,买了再说。

ESP8266 ESP-01 WIFI 模块下载器 ESP LINK v1.0 SUNLEPHANT

导线若干

5V电源基本1A就足够了,具体我也不知道,我感觉不用1A也行。刚开始可以剪掉一个数据线,然后接电脑usb口就好了。

二、开始烧录

            为什么要烧录呢,因为我们的某宝发货基本是官方的AT固件(这还算好的),有的是空的,然后这些模块基本看起来都像旧的,要不就是焊锡不好。我们要使用的是支持Lua语言的固件(关于什么是Lua语言我也还没学,自己去找吧,看起来是个脚本语言,写这个博客的原因在于现在网上基本没有能用的教程,基本都有错误。某宝卖家基本没指望。问啥啥不会,还得我花了一个上午才调通。)

A、烧录NodeMCU固件

该步骤使用ESPFlashDownloadTool这个工具,最好是新一点的,最好就用我给的,因为我们的固件是整体的,老版本可能会有问题,其他的下载工具我不多说,对应我这个参数就行。

  1. 首先把驱动安装好,我们的烧录工具的驱动在Drivers目录下面,cp210x
  2. 然后把ESP01模块插入到我们的烧录工具上,怎么插都不会就不要玩了。我也没办法救你了。好吧,还是有办法的,去看看你买烧录工具的那个商店的图你就会了。
  3. 然后插入电脑版USB口上。关于是那个端口,其实我们的工具能够自己找。但是你自己去查就是打开电脑的设备管理器

就这个COM20就是了,你的可能和我的不一样

出现等待同步上电,如果装备和我前面说的一样,那就看看WiFi模块是不是白色芯片的,如果是白色的,我也没找到办法,这个方式目前只能刷入WiFi模块天线位置下面那块芯片是金属金色的模块。或者换一个芯片试试,另外,刚买回来的芯片都自带固件,可以直接写入lua. 

好了,你成功三分之一了。这个时候你按一下下载板子上的按钮RST,再等会就会出现一个WIFI了,他是ESP开头,尾部是半个MAC地址。记得把这些软件工具该关掉了。

B、接下来就是上传我们的Lua代码了。

  1. 打开我们的LuaLoader他在version0.91中

点击Ok之后点击右上角的connect如下图所示

这样你就完成了你的文件上传,更多操作请进传送门用Chrome浏览器翻译成中文,如果你看不懂的话。

我们继续

好了,恭喜你成功三分之二了。关掉这个工具。,记得点上面的disconnect,就再刚刚点的那个connec那。

然后你现在依旧能搜到一个WIFI,名字是ESP8266_xxxx。不过加密了。密码是12345678

好了,把下载器从电脑上拔下来,然后把esp01模块拔出,插到Relay继电器模块上,接上5V电压,基本能找到接哪吧,接口可能需要一个小的一字螺丝刀。

三、试用

A、安装手机APP

这个方式是在手机上调试,ESP8266_Controller这个目录下有Android和iOS的APP,不过适用的手机版本可能比较老,原因在于我们使用了http协议,而这个协议在Android8还是9被弃用了(之前写其他AndroidAPP时遇到的),如果没有旧的版本的手机也没事,其实我没测试新系统是否适用,因为我有旧的。我们的B方法将使用网页来调试。

手机APP上会有两个按钮,一个gpio0 一个是GPIO2我们使用的是0,所以当安装上APP之后,我们连接上WIFI之后注意最底部有一个设置地址,我们设置上192.168.1.1,点击save然后就能调试了。当我们点击On或者Off的时候我们的继电器就会响,这代表磁头在动了。

B、方法浏览器法

  1. 首先手机或者电脑连上WIFI

  2. 打开浏览器,在地址栏输入在以下两个中切换。也可以听到继电器的声音

http://192.168.1.1?pin=ON1

http://192.168.1.1?pin=OFF1

好了,如果上面的救不了你,那你另寻高手吧。

补上一下init.lua不确定我就是使用的这个,单应该是,这份代码是我们正常买模块会送的代码,应该。

  1. led1 = 3
  2. led2 = 4
  3. gpio.mode(led1, gpio.OUTPUT)
  4. gpio.mode(led2, gpio.OUTPUT)
  5. gpio.write(led1, gpio.HIGH)
  6. gpio.write(led2, gpio.HIGH)
  7. print("Ready to start soft ap")
  8. local str=wifi.ap.getmac();
  9. local ssidTemp=string.format("%s%s%s",string.sub(str,10,11),string.sub(str,13,14),string.sub(str,16,17));
  10. cfg={}
  11. cfg.ssid="ESP8266_"..ssidTemp;
  12. cfg.pwd="12345678"
  13. wifi.ap.config(cfg)
  14. cfg={}
  15. cfg.ip="192.168.1.1";
  16. cfg.netmask="255.255.255.0";
  17. cfg.gateway="192.168.1.1";
  18. wifi.ap.setip(cfg);
  19. wifi.setmode(wifi.SOFTAP)
  20. str=nil;
  21. ssidTemp=nil;
  22. collectgarbage();
  23. print("Soft AP started")
  24. print("Heep:(bytes)"..node.heap());
  25. print("MAC:"..wifi.ap.getmac().."\r\nIP:"..wifi.ap.getip());
  26. srv=net.createServer(net.TCP)
  27. srv:listen(80,function(conn)
  28. conn:on("receive", function(client,request)
  29. local buf = "";
  30. buf = buf.."HTTP/1.1 200 OK\n\n"
  31. local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP");
  32. if(method == nil)then
  33. _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP");
  34. end
  35. local _GET = {}
  36. if (vars ~= nil)then
  37. for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do
  38. _GET[k] = v
  39. end
  40. end
  41. if(_GET.pin == "ON1")then
  42. gpio.write(led1, gpio.LOW);
  43. print("led1 on")
  44. elseif(_GET.pin == "OFF1")then
  45. gpio.write(led1, gpio.HIGH);
  46. print("led1 off")
  47. elseif(_GET.pin == "ON2")then
  48. gpio.write(led2, gpio.LOW);
  49. print("led2 on")
  50. elseif(_GET.pin == "OFF2")then
  51. gpio.write(led2, gpio.HIGH);
  52. print("led2 off")
  53. end
  54. client:send(buf);
  55. client:close();
  56. collectgarbage();
  57. end)
  58. end)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/263267
推荐阅读
相关标签
  

闽ICP备14008679号