完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我为esp8266-01创建了一个扩展板来运行两个继电器,但我不确定网页中的命令是否正确编程,因为任何按钮都显示 gpio 引脚没有变化,有人可以验证代码是否正确吗?
init.lua,如下所示: wifi.setmode(wifi.station) wifi.sta.config("ssid","weppassword") print('n太阳能光伏控制器 - ESP8266服务器 v1bn') tmr.alarm(0, 1000, 1, 函数() 如果 wifi.sta.getip() == nil 那么 print("Connecting to AP...n") else IP、NM、GW=wifi.sta.getip() macAdd = wifi.sta.getmac(); print("IP Info: nIP Address: ",ip) print("Netmask: ",nm) print("Gateway Addr: ",gw,'n') print("Mac Addr: ",macAdd,'n') tmr.stop(0) end end) 继电器 1 = 0 继电器 2 = 2 gpio.mode(中继1, gpio.输出) gpio.mode(中继2, gpio.输出) SRV=net.createserver(net.tcp) SRV:听(80,函数(conn) conn:on("receive", function(client,request) local buf = ""; local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP"); if(method == nil)then _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP"); end 本地_GET = {} 如果 (vars ~= nil)那么 for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do _GET[k] = v end end buf = buf.." Solar Relay ESP8266 Web Server";buf = buf.." IOT Project irun4fun 2016";buf = buf.." Battery Bank Power ON Power OFF ";buf = buf.." Solar Array Power ON Power OFF ";local _on,_off = "","" if(_GET.pin == "ON1")then gpio.write(中继1,gpio。高); elseif(_GET.pin == "OFF1")then gpio.write(中继1,gpio。低); elseif(_GET.pin == "ON2")then gpio.write(中继2, gpio.高); elseif(_GET.pin == "OFF2")then gpio.write(中继2, gpio.低); end 客户:send(buf); 客户:close(); collectgarbage(); end) end) 跑步nodemcu_integer_0.9.5_20150318.bin |
|
相关推荐
1个回答
|
|
根据您提供的代码片段,我将逐步分析并提供一些建议来确保您的代码正确编程。
1. 首先,确保您已经正确地初始化了WiFi模块: ```lua wifi.setmode(wifi.STATION) ``` 2. 接下来,配置您的WiFi SSID和密码: ```lua wifi.sta.config("ssid", "weppassword") ``` 3. 打印欢迎信息: ```lua print('n太阳能光伏控制器 - ESP8266服务器 v1bn') ``` 4. 使用tmr.alarm创建一个周期性任务,以检查WiFi连接状态: ```lua tmr.alarm(0, 1000, 1, function() ``` 5. 在周期性任务中,检查WiFi是否已连接: ```lua if wifi.sta.getip() == nil then print("Connecting to AP...") else IP, NM, GW = wifi.sta.getip() macAdd = wifi.sta.getmac() print("IP Info: ...") end ``` 6. 为了控制继电器,您需要设置GPIO引脚的模式和状态。例如,要设置GPIO2为输出并将其设置为高电平,您可以使用以下代码: ```lua gpio.mode(2, gpio.OUTPUT) gpio.write(2, gpio.HIGH) ``` 7. 要在网页上控制继电器,您需要创建一个简单的HTTP服务器。以下是一个基本示例: ```lua srv = net.createServer(net.TCP, 30) srv:listen(80) srv:on("receive", function(conn, payload) local buf = payload local cmd = buf:match("GET /%?cmd=(.*)") if cmd == "on" then gpio.write(2, gpio.HIGH) conn:send("继电器已打开") elseif cmd == "off" then gpio.write(2, gpio.LOW) conn:send("继电器已关闭") else conn:send("无效命令") end conn:on("sent", function(conn) conn:close() end) end) ``` 8. 确保您的HTML页面包含用于控制继电器的按钮,例如: ```html ``` 请确保将“你的ESP8266_IP”替换为您的ESP8266设备的IP地址。 通过以上步骤,您应该能够正确地编程您的ESP8266扩展板以控制两个继电器。如果仍然遇到问题,请检查您的硬件连接和GPIO引脚配置。 |
|
|
|
只有小组成员才能发言,加入小组>>
429浏览 6评论
362浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
343浏览 5评论
349浏览 4评论
327浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-1 07:29 , Processed in 0.670009 second(s), Total 48, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191