赞
踩
说明,这个写了挺长时间了,大家也可以看看评论区的相关知识,现在的模块可能没有这么多问题了,准备好模块就能写,而且烧录工具啥的也有了很多新品种可以选择。
一个ESP8266-01/01s模块和一个Relay v4.0模块RB: IOTMCU,摸个宝上面都有卖,评论里说这个有问题的人是还没有用会的,模块本身没有问题的。至少我觉得没问题,也有大神说需要改线路才行,但是我们刷NodeMCU固件不需要。
特别注意,我发现这个esp模块有几种,图书指出的地方是白色的本教程的刷固件的工具不适用,只有金属色的适用。
这个地方要注意有一部分esp8266-01模块就算使用下面提到的全自动烧录工具依旧需要接线。具体就是esp8266模块天线下面那块芯片是金色的可以烧录,是白色的需要自己折腾。目前遇到的是这样。白色会出现等待上电同步。新手误买。(这也是评论中有位兄弟遇到的问题。)
下载器一个,不要图便宜,一定要买这个,不要买那个只有一半黄色接口的,根本不好使。其实也不是,就是需要自己下载的时候加电阻啊,接线啊,你要是真的超级强ttl就可以烧录了,但是写入lua代码可能会更麻烦,新手推荐买这些设备。如果没有,先别着急动手,买了再说。
导线若干
5V电源基本1A就足够了,具体我也不知道,我感觉不用1A也行。刚开始可以剪掉一个数据线,然后接电脑usb口就好了。
为什么要烧录呢,因为我们的某宝发货基本是官方的AT固件(这还算好的),有的是空的,然后这些模块基本看起来都像旧的,要不就是焊锡不好。我们要使用的是支持Lua语言的固件(关于什么是Lua语言我也还没学,自己去找吧,看起来是个脚本语言,写这个博客的原因在于现在网上基本没有能用的教程,基本都有错误。某宝卖家基本没指望。问啥啥不会,还得我花了一个上午才调通。)
该步骤使用ESPFlashDownloadTool这个工具,最好是新一点的,最好就用我给的,因为我们的固件是整体的,老版本可能会有问题,其他的下载工具我不多说,对应我这个参数就行。
就这个COM20就是了,你的可能和我的不一样
出现等待同步上电,如果装备和我前面说的一样,那就看看WiFi模块是不是白色芯片的,如果是白色的,我也没找到办法,这个方式目前只能刷入WiFi模块天线位置下面那块芯片是金属金色的模块。或者换一个芯片试试,另外,刚买回来的芯片都自带固件,可以直接写入lua.
好了,你成功三分之一了。这个时候你按一下下载板子上的按钮RST,再等会就会出现一个WIFI了,他是ESP开头,尾部是半个MAC地址。记得把这些软件工具该关掉了。
点击Ok之后点击右上角的connect如下图所示
这样你就完成了你的文件上传,更多操作请进传送门用Chrome浏览器翻译成中文,如果你看不懂的话。
我们继续
好了,恭喜你成功三分之二了。关掉这个工具。,记得点上面的disconnect,就再刚刚点的那个connec那。
然后你现在依旧能搜到一个WIFI,名字是ESP8266_xxxx。不过加密了。密码是12345678
好了,把下载器从电脑上拔下来,然后把esp01模块拔出,插到Relay继电器模块上,接上5V电压,基本能找到接哪吧,接口可能需要一个小的一字螺丝刀。
这个方式是在手机上调试,ESP8266_Controller这个目录下有Android和iOS的APP,不过适用的手机版本可能比较老,原因在于我们使用了http协议,而这个协议在Android8还是9被弃用了(之前写其他AndroidAPP时遇到的),如果没有旧的版本的手机也没事,其实我没测试新系统是否适用,因为我有旧的。我们的B方法将使用网页来调试。
手机APP上会有两个按钮,一个gpio0 一个是GPIO2我们使用的是0,所以当安装上APP之后,我们连接上WIFI之后注意最底部有一个设置地址,我们设置上192.168.1.1,点击save然后就能调试了。当我们点击On或者Off的时候我们的继电器就会响,这代表磁头在动了。
首先手机或者电脑连上WIFI
打开浏览器,在地址栏输入在以下两个中切换。也可以听到继电器的声音
http://192.168.1.1?pin=ON1
http://192.168.1.1?pin=OFF1
好了,如果上面的救不了你,那你另寻高手吧。
补上一下init.lua不确定我就是使用的这个,单应该是,这份代码是我们正常买模块会送的代码,应该。
-
- led1 = 3
- led2 = 4
- gpio.mode(led1, gpio.OUTPUT)
- gpio.mode(led2, gpio.OUTPUT)
- gpio.write(led1, gpio.HIGH)
- gpio.write(led2, gpio.HIGH)
-
- print("Ready to start soft ap")
-
- local str=wifi.ap.getmac();
- local ssidTemp=string.format("%s%s%s",string.sub(str,10,11),string.sub(str,13,14),string.sub(str,16,17));
-
- cfg={}
- cfg.ssid="ESP8266_"..ssidTemp;
- cfg.pwd="12345678"
- wifi.ap.config(cfg)
-
- cfg={}
- cfg.ip="192.168.1.1";
- cfg.netmask="255.255.255.0";
- cfg.gateway="192.168.1.1";
- wifi.ap.setip(cfg);
- wifi.setmode(wifi.SOFTAP)
-
- str=nil;
- ssidTemp=nil;
- collectgarbage();
-
- print("Soft AP started")
- print("Heep:(bytes)"..node.heap());
- print("MAC:"..wifi.ap.getmac().."\r\nIP:"..wifi.ap.getip());
-
-
- srv=net.createServer(net.TCP)
- srv:listen(80,function(conn)
- conn:on("receive", function(client,request)
- local buf = "";
- buf = buf.."HTTP/1.1 200 OK\n\n"
- local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP");
- if(method == nil)then
- _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP");
- end
- local _GET = {}
- if (vars ~= nil)then
- for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do
- _GET[k] = v
- end
- end
-
- if(_GET.pin == "ON1")then
- gpio.write(led1, gpio.LOW);
- print("led1 on")
- elseif(_GET.pin == "OFF1")then
- gpio.write(led1, gpio.HIGH);
- print("led1 off")
- elseif(_GET.pin == "ON2")then
- gpio.write(led2, gpio.LOW);
- print("led2 on")
- elseif(_GET.pin == "OFF2")then
- gpio.write(led2, gpio.HIGH);
- print("led2 off")
- end
- client:send(buf);
- client:close();
- collectgarbage();
- end)
- end)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。