本项目利用ESP8266芯片,可利用Wi-Fi连接,通过智能手机或其他带有浏览器的终端设备遥控RGB LED情趣灯的颜色,是一个成本不到10美元的DIY项目。
动手之前,我们需要了解ESP8266和RGB LED相关信息,如RGB LED工作原理,ESP8266 RGB颜色选择器,带NodeMCU的ESP8266网页服务器,NodeMCU固件刷新等。
本项目BOM如下:
(1)1x ESP8266-12E Wi-Fi开发板
(2)1x RGB LED灯串
(3)1x 12V电源:
(4)将电压从12V降低到5V的稳压转换器等:如带散热片LM7805放大器(可选)、步降稳压器(推荐)、3x NPN晶体管2N2222或替代品、3x 1k欧姆电阻器、1x 面包板、跳线、貌似情趣灯的台灯、白色灯泡。
1. 刷新ESP8266模块的NodeMCU固件
NodeMCU是一个固件,允许通过LUA script脚本对ESP8266模块进行编程,具体方法与在Arduino上编程类似。
NodeMCU编程比较简单,只需几行代码就能建立一个WiFi连接,控制ESP8266 GPIOs,将ESP8266配置成web网页服务器。
ESP8266模块电路的连接参数如下:
RX -> TX
TX -> RX
CH_PD -> 3.3V
GPIO 0 -> GND
VCC -> 3.3V
GND -> GND
按照电路原理图连接ESP8266模块后,下载Windows版本的NodeMCU Flasher刷新器。这实际上是一个 .exe 文件,打开它就出现一个小窗口,按刷新键“Flash”就立即开始刷新操作。当然,操作之前也可以点选Advanced标签,改变某些参数和设置。
完成上述操作,就会出现一个带有检查按钮的绿色圆圈。
2. 下载ESPlorer IDE
建议使用ESPlorer IDE下载。使用这个由4refr0nt开发的程序,可将指令发送到ESP8266芯片,具体下载及安装程序由乐鑫官网提供。
ESPlorer IDE安装完成后,会弹出一个上传代码的窗口,按照以下指令就可以上传文件了:
(1)将内置编程器的ESP8266-12E与电脑连接。
(2)选择ESP8266-12E端口。
(3)按 Open/Close 选项。
(4)选择NodeMCU+MicroPtyhon标签。
(5)创建一个名为“ init.lua ”的文件。
(6)点选 Press Save to ESP 选项。
注意,上传的代码文件名必须是“init.lua”,务必牢记自己的网络名(SSID)和密码。
如下脚本创建于2016年,只适合早期的Lua固件版本。如果运行新版Lua firmware,必须使用 ESP8266_RGB_Color_Picker_New.lua脚本:
-- Rui Santos
-- Complete project details at https://randomnerdtutorials.com
wifi.setmode(wifi.STATION)
wifi.sta.config("REPLACE_WITH_YOUR_SSID","REPLACE_WITH_YOUR_PASSWORD")
print(wifi.sta.getip())
function led(r, g, b)
pwm.setduty(5, r)
pwm.setduty(6, g)
pwm.setduty(7, b)
end
pwm.setup(5, 1000, 1023)
pwm.setup(6, 1000, 1023)
pwm.setup(7, 1000, 1023)
pwm.start(5)
pwm.start(6)
pwm.start(7)
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
buf = buf.."";
buf = buf.."";
buf = buf.."";
buf = buf.."";
buf = buf.."";
buf = buf.."";
buf = buf.."";
buf = buf.."
buf = buf.."";
if(_GET.r or _GET.g or _GET.b) then
led(_GET.r, _GET.g,_GET.b)
end
client:send(buf);
client:close();
collectgarbage();
end)
end)
3. 连接电路
按照电路图,把ESP8266-12E Wi-Fi开发板、RGB LED灯串、12V电源、NodeMCU四个组件连接起来。
重启ESP8266,系统将自动列印你的序列号和ESP IP地址。保存该IP地址,以备后用。本项目的ESP IP地址为192.168.1.105。
接下来打开浏览器,并输入自己ESP8266的IP地址,你将会看到:
RGB color picker main selecting color
单击输入字段,会开启一个带有颜色的选择器小窗口,用鼠标选择器为你的 RGB LED 脚本选择一个颜色。
最后,选择 “Change Color”按钮。
现在,你就可以将自己制作的这个Wi-Fi控制三色LED情趣灯搬进卧室了。
作者: 硬之城Allchips, 来源:面包板社区
链接: https://mbb.eet-china.com/blog/uid-me-3975615.html
版权声明:本文为博主原创,未经本人允许,禁止转载!
文章评论(0条评论)
登录后参与讨论