轉載請注明:@小五義http://www.cnblogs.com/xiaowuyi QQ群:64770604
感謝博達科技提供的技術支持,博達科技新出了turnip智能插座,通過微信控制,實現了語音控制,具體細節感興趣的可以訪問其網站了解。http://www.turnipsmart.com/
最近太忙,一直沒寫。今天和大家一起學習做一個智能插座,主要功能是通過手機控制智能插座的開關。這里只做了局域網內的手機搖控,互聯網的控制大家可以自己完成,大同小異。
一、准備器材
1、NodeMcu模塊一個,利用Esp8266實現的wifi可編程模塊,某寶網上很多賣的,便宜的30元左右。
2、AC-DC模塊一個,220V轉5V。
3、繼電器一個,3-5V控制。
4、廢舊插座一個。
二、電路圖
三、智能插座的制作
NodeMcu模塊使用方法,請參考http://bbs.nodemcu.com/,這里不再詳述,直接使用。
在【Lua Programs】目錄下添加兩個文件,分別為low.lua和high.lua。
low.lua:
--轉載請注明:@小五義http://www.cnblogs.com/xiaowuyi QQ群:64770604
--pin: 0~12, IO 編號 pin = 2 --將IO2設置為輸出模式 gpio.mode(pin,gpio.OUTPUT) --將IO2輸出電平設置為低電平 gpio.write(pin,gpio.LOW) --讀取IO2電平狀態並打印 print(gpio.read(pin))
high.lua:
--轉載請注明:@小五義http://www.cnblogs.com/xiaowuyi QQ群:64770604
pin = 2 gpio.mode(pin,gpio.OUTPUT) --將IO2輸出電平設置為高電平 gpio.write(pin,gpio.HIGH) print(gpio.read(pin))
修改init.lua:
--轉載請注明:@小五義http://www.cnblogs.com/xiaowuyi QQ群:64770604
print("set up wifi mode") --設置wifi工作模式為wifi.STATION wifi.setmode(wifi.STATION) --設置連接的wifi名稱和秘鑰 wifi.sta.config("AAA","PASSWD") --開始連接wifi,AAA為wifi的ssid,PASSWD為連接密碼 wifi.sta.connect() --啟動定時器,每1000毫秒執行一次function回調函數 tmr.alarm(1, 1000, 1, function() --判斷當前IP地址是否為空,若為空,即未成功連接網絡 if wifi.sta.getip()== nil then print("IP unavaiable, Waiting...") --若不為空,則停止定時器,開啟TCP Server服務,端口為80 else tmr.stop(1) print("IP is "..wifi.sta.getip().. " Port is:80".."/nstart listen") sv=net.createServer(net.TCP) sv:listen(80,function(c) --端口80 c:on("receive", function(sck, result) --當接收到的數據是”on”時,執行high.lua文件 if result=="on" then dofile("high.lua") c:send("led :on") end --當接收到的數據是”on”時,執行low.lua文件 if result=="off" then dofile("low.lua") c:send("led :off") end --當接收到的數據”close”時,停止TCP Server服務 if result=="close" then c:close() sv:close() print("TCP Close") end end) end) end end)
最后將low.lua、high.lua和init.lua下載至NodeMcu中。
四、使用方法
1、手機端下載安裝一個wifi串口調試助手,大家可以從網上搜索下載,安裝后,進行配置,主要是配置插座的IP和端口。
2、從手機端發送“on”,插座連接上,“off”,插座關閉。
感謝WFGEEK林靜的協助!