1111MicrosoftInternetExplorer402DocumentNotSpecified7.8 磅Normal0 本项目利用 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 模块电路的连接 参数 如下: TX RX 3.3V GND 3.3V 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, "( +) (.+)?(.+) HTTP"); if(method == nil)then _, _, method, path = string.find(request, "( +) (.+) HTTP"); end local _GET = {} if (vars ~= nil)then for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do _GET = v end end buf = buf.." "; buf = buf.." "; buf = buf.." "; buf = buf.." "; buf = buf.." "; buf = buf.." "; buf = buf.." "; buf = buf.." ESP Color Picker "; buf = buf.." Change Color "; buf = buf.." "; buf = buf.." function update(picker) {document.getElementById('rgb').innerHTML = Math.round(picker.rgb ) + ', ' + Math.round(picker.rgb ) + ', ' + Math.round(picker.rgb );"; buf = buf.."document.getElementById(\"change_color\").href=\"?r=\" + Math.round(picker.rgb *4.0117) + \"&g=\" + Math.round(picker.rgb *4.0117) + \"&b=\" + Math.round(picker.rgb *4.0117);} "; 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 情趣灯搬进卧室了。