一、準備器材 1、NodeMcu模塊一個,利用Esp8266實現的wifi可編程模塊,某寶網上很多賣的,便宜的30元左右。 2、AC-DC模塊一個,220V轉5V。 3、繼電器一個,3-5V控制。 4、廢舊插座一個。 二、電路圖
三、智能插座的制作 在【Lua Programs】目錄下添加兩個文件,分別為low.lua和high.lua。 low.lua:
--pin: 0~12, IO 編號 pin = 2 --將IO2設置為輸出模式 gpio.mode(pin,gpio.OUTPUT) --將IO2輸出電平設置為低電平 gpio.write(pin,gpio.LOW) --讀取IO2電平狀態并打印 print(gpio.read(pin))
pin = 2gpio.mode(pin,gpio.OUTPUT)--將IO2輸出電平設置為高電平gpio.write(pin,gpio.HIGH)print(gpio.read(pin))
修改init.lua:
print("set up wifi mode")--設置wifi工作模式為wifi.STATIONwifi.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 thenprint("IP unavaiable, Waiting...")--若不為空,則停止定時器,開啟TCP Server服務,端口為80elsetmr.stop(1)print("IP is "..wifi.sta.getip().. " Port is:80".."/nstart listen")sv=net.createServer(net.TCP)sv:listen(80,function(c)--端口80c:on("receive", function(sck, result) --當接收到的數據是”on”時,執行high.lua文件if result=="on" thendofile("high.lua")c:send("led :on")end--當接收到的數據是”on”時,執行low.lua文件if result=="off" thendofile("low.lua")c:send("led :off")end--當接收到的數據”close”時,停止TCP Server服務if result=="close" thenc:close()sv:close()print("TCP Close")end end)end)endend)
最后將low.lua、high.lua和init.lua下載至NodeMcu中。
四、使用方法 1、手機端下載安裝一個wifi串口調試助手,大家可以從網上搜索下載,安裝后,進行配置,主要是配置插座的IP和端口。 2、從手機端發送“on”,插座連接上,“off”,插座關閉。
|