爱科技、爱创意、爱折腾、爱极致,我们都是技术控
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 龙系小星2 于 2020-5-8 13:54 编辑
7.5元入手智能插座模块,型号
Vivitar 智能安全无线智能插头 USB 充电器白色 ha-1009-wg BQ
App在Google play 可下载,自行探索apk。
接下来实现接入贝壳物联
硬件部分。
TTL线一个,模块一个。
TTl线要正确安装驱动程序,插到电脑上有端口出现才行。
设备管理器端口设置里面波特率设为115200。 下图GPIO12板子上已经接好到了继电器,不用自己再接,图中有歧义,是指gpio12对应的是继电器 TX RX直接接到TTL TX RX就行了,不用反转,我标的是反转过的。
接好TTL,到设备管理器里面记住自己的端口号。
软件
下载好文件。
https://ww.lanzous.com/ic8rwhg
打开此路径中的ESP8266flasher
正确选择端口
选择路径ESP8266+贝壳物联+天猫精灵\Firmware\NodeMCU固件(含WiFi配置)\ nodemcu-master-13-modules-2016-04-09-04-21-48-float.bin
正确选择
选择好后,此时把上面焊的开关闭合,即将GPIO0连到GND,上电。
点击Flash,此时开始跑进度条,进度条完成后就代表固件刷完成了。开关闭合就是进入下载模式,断开模块正常工作。
写入程序 注:写程序之前,要把开关断开,重新上电。要不然会报错。
打开ESP8266+贝壳物联+天猫精灵\NodeMCU Studio 2015 Build20150403\nodemcu stdio 2015
点击File打开ESP8266+贝壳物联+天猫精灵\bigiotArduino\examples\ESP8266\NodeMCU\webconfig中的init.lua,点击download,下载完成之后会有提示
再次打开 ESP8266+贝壳物联+天猫精灵\bigiotArduino\examples\ESP8266\NodeMCU\kaiguan中的kaiguan.Lua
其中这两个需要修改,
此时打开浏览器搜索贝壳物联,来到官网,注册账号来到用户中心,点击智能设备
添加智能设备
名称说明和是否公开,自行选择,设备简介要写,随便写
完成后就会获得deviceID和APikey,将其修改进程序中
打开和写程序等过程中出现下列弹窗提示时,直接点确定就行了。
代码说明
该模块继电器连接的是GPIO12,由下面表可得,LED1=6,
进入到贝壳物联微信小程序里面时点击play输出高电平打开继电器,点击stop关闭继电器,LED2可自己自行扩展,看懂程序就能自己修改了。
修改完成,将程序下载进去。等待提示成功。
断电重启模块或者在下方输入栏内输入node.restart()按回车等待。
过一会手机搜索无线网,连接SetupGadget开头的无线网,进入浏览器中,访问192.168.4.1,输入要连接的2.4G无线网名称和密码,不可输错。5G wifi不支持。
连接完成后,该WiFi就会断开,不会被搜索到。等待到贝壳物联我的设备里面看看是否在线,注册账号的时候也可以进入微信里面搜索贝壳物联小程序,绑定自己的账号。设备在线了就可以进行测试了,点击play继电器打开,stop继电器关闭就代表成功了。
注:贝壳物联在路由器断电再上电之后,设备就不会上线,重启模块过一会设备就会在线。
一切使用过程都需要自行探索,不断学习,不懂就查。
此项过程设置项很多,有错误的时候就去搜索错误,独立解决。 NodeMCU此软件有错误,在上传LUA程序的时候有时候会报错,不定时抽风。此问题已解决,写程序之前,要把开关断开,重新上电。要不然会报错。 新增了几行代码,利用板子上的红蓝灯,开时蓝灯亮,红灯灭,关时红灯亮,蓝灯灭。我这个板子不知道是不是蓝灯坏了,怎么都不亮,不知道你们的行不行,有能力的自行探索吧,本来想利用板子上的按键的,无果,利用不起来,按键没反应,有能力的自行研究吧直接在上传程序的时候去掉原来的代码复制到kaiguan.lua文件里面。 --use sjson
_G.cjson = sjson
--modify DEVICEID INPUTID APIKEY
DEVICEID = "要更改的"
APIKEY = "要更改的"
INPUTID = "36"
host = host or "www.bigiot.net"
port = port or 8181
LED1 = 6
Bluelight = 5
Redlight = 2
isConnect = false
gpio.mode(LED1,gpio.OUTPUT)
gpio.mode(Bluelight,gpio.OUTPUT)
gpio.mode(Redlight,gpio.OUTPUT)
local function run()
local cu = net.createConnection(net.TCP)
cu:on("receive", function(cu, c)
print(c)
isConnect = true
r = cjson.decode(c)
if r.M == "say" then
if r.C == "play" then
gpio.write(LED1, gpio.HIGH)
gpio.write(Bluelight, gpio.HIGH)
gpio.write(Redlight, gpio.LOW)
ok, played = pcall(cjson.encode, {M="say",ID=r.ID,C="LED1 turn on!"})
cu:send( played.."\n" )
end
if r.C == "stop" then
gpio.write(LED1, gpio.LOW)
gpio.write(Bluelight, gpio.LOW)
gpio.write(Redlight, gpio.HIGH)
ok, stoped = pcall(cjson.encode, {M="say",ID=r.ID,C="LED1 turn off!"})
cu:send( stoped.."\n" )
end
end
if r.M == "say" then
if r.C == "left" then
gpio.write(LED2, gpio.HIGH)
ok, played = pcall(cjson.encode, {M="say",ID=r.ID,C="LED2 turn on!"})
cu:send( played.."\n" )
end
if r.C == "right" then
gpio.write(LED2, gpio.LOW)
ok, stoped = pcall(cjson.encode, {M="say",ID=r.ID,C="LED2 turn off!"})
cu:send( stoped.."\n" )
end
end
end)
cu:on('disconnection',function(scu)
cu = nil
isConnect = false
--停止心跳包发送定时器,5秒后重试
tmr.stop(1)
tmr.alarm(6, 5000, 0, run)
end)
cu:connect(port, host)
ok, s = pcall(cjson.encode, {M="checkin",ID=DEVICEID,K=APIKEY})
if ok then
print(s)
else
print("failed to encode!")
end
if isConnect then
cu:send(s.."\n")
end
tmr.alarm(1, 60000, 1, function()
if isConnect then
cu:send(s.."\n")
end
end)
end
run() 注:贝壳物联网页和小程序不可同时打开设备界面,否则微信小程序的设备会显示离线,配置WiFi过程中,切记有的手机会自动切换到其他WiFi,并且配置的时候可能进不去WiFi配置界面。再次重连WiFi尝试。下次编辑帖子将会取消手动配置WiFi,等待更新。有问题的时候贝壳物联有帮助文档,可以去里面看看。 本次更新:无需手动配置WiFi了,脚本自动配置,是否连接上自己的WiFi,可在路由器配置界面查看 init.lua文件代码更改为 --init.lua
print("set up wifi mode")
wifi.setmode(wifi.STATION)
wifi.sta.config("要更改的","要更改的")
wifi.sta.connect()
tmr.alarm(1, 1000, 1, function()
if wifi.sta.getip()== nil then
print("IP unavaiable, Waiting...")
else
tmr.stop(1)
print("Config done, IP is "..wifi.sta.getip())
dofile("kaiguan.lua")
end
end)
|