ESP8266-12E快速接入贝壳物联,实现控制四路继电器

作者:面包不好吃 | 更新时间:2019-07-02

首先我为什么要写这个呢,我已经轻松把ESP8266接入中移的onenet,和接入机智云,接下来是尝试接入贝壳物联,和天猫精灵连接。

如下是这一天中学到的,快速接入贝壳物联,实现控制四路继电器

链接:https://pan.baidu.com/s/1MoqGjNxcEor0fDWvWFYsuA 
提取码:3mbn 

这个是我们用到的软件 ,烧程序所用

接下来我们用的是烧录固件软件 

如下链接

链接:https://pan.baidu.com/s/18y5MjoS7v1NT7-mQM7q5iQ 
提取码:nbdz 

烧录 固件后,打开软件 

改动如上两个点,接下改另一个程序

 

两个程序修改完,直接 下载到你的ESP8266中  即可在线   即可控制 你的四路继电器。

简单实现控制 四路开关,接下就是接入天猫精灵,实现控制,如有问题,或获取 源码,请在下方回复 即可。

 

DEVICEID = "....0"
APIKEY   = "....."
INPUTID  = "....."
host     = host or "www.bigiot.net"
port     = port or 8181
LED      = 5
LED1     = 6
LED2     = 7
LED3     = 8
gpio.mode(LED,gpio.OUTPUT)
gpio.mode(LED1,gpio.OUTPUT)
gpio.mode(LED2,gpio.OUTPUT)
gpio.mode(LED3,gpio.OUTPUT)
local function run()
  local cu = net.createConnection(net.TCP)
  cu:on("receive", function(cu, c) 
    print(c)
    r = cjson.decode(c)
    if r.M == "say" then
      if r.C == "play" then   
        gpio.write(LED, gpio.HIGH)  
        ok, played = pcall(cjson.encode, {M="say",ID=r.ID,C="LED turn on!"})
        cu:send( played.."\n" )
      end
      if r.C == "play1" then   
          gpio.write(LED1, gpio.HIGH)  
          ok, played = pcall(cjson.encode, {M="say",ID=r.ID,C="LED1 turn on!"})
        cu:send( played.."\n" )
      end 
    if r.C == "play2" 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 == "play3" then   
         gpio.write(LED3, gpio.HIGH)  
         ok, played = pcall(cjson.encode, {M="say",ID=r.ID,C="LED3 turn on!"})
        cu:send( played.."\n" )
      end
      if r.C == "stop" then   
        gpio.write(LED, gpio.LOW)
        ok, stoped = pcall(cjson.encode, {M="say",ID=r.ID,C="LED turn off!"})
        cu:send( stoped.."\n" ) 
      end
      if r.C == "stop1" then   
          gpio.write(LED1, gpio.LOW)
          ok, stoped = pcall(cjson.encode, {M="say",ID=r.ID,C="LED1 turn off!"})
        cu:send( stoped.."\n" ) 
      end
    if r.C == "stop2" 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
    if r.C == "stop3" then   
        gpio.write(LED3, gpio.LOW)
        ok, stoped = pcall(cjson.encode, {M="say",ID=r.ID,C="LED3 turn off!"})
        cu:send( stoped.."\n" ) 
      end
    end
  end)
  cu:on('disconnection',function(scu)
    cu = nil
    --停止心跳包发送定时器,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
  cu:send(s.."\n")
  tmr.alarm(1, 60000, 1, function()
    cu:send(s.."\n")
  end)
end
run()

 

 


评论:共14条

贝壳物联 评论于:2019-07-01 22:48:41
谢谢分享,网站的文档里有接入贝壳物联的一些示例,也可以参考。
贝壳物联 评论于:2019-07-01 22:56:15
看了你分享的资料,只有两个下载软件,代码并未分享,想分享的话,也把代码连接放到下方,莫要调人胃口,也不要开篇就贬低一下你发表言论的平台,谢谢!
真心希望大家能够互相分享学习,这样建平台的初衷。
面包不好吃 回复于:2019-07-02 05:54:35
回复 @贝壳物联:抱歉,非常感谢贝壳物联提供的平台,也在平台有所收获,学到知识,并支持贝壳物联,以上是学习心得,对于我这个小白所言,如有对平台不敬,还望海涵。感谢贝壳物联,我会一直支持下去。
1197994757 评论于:2019-07-06 16:22:31
请问8pin是是不是VCC脚 会出事吗?
面包不好吃 回复于:2019-07-07 21:44:36
回复 @1197994757:8脚是VCC
1197994757 回复于:2019-07-08 00:16:42
回复 @面包不好吃:懂了 是15脚
17614713123 评论于:2019-07-08 09:50:47
源码在哪
面包不好吃 回复于:2019-07-08 11:48:12
回复 @17614713123:源码已经粘在下面了啊
未来加油 评论于:2019-07-08 15:44:55
@面包不好吃 天猫精灵怎么控制4路继电器呢?我看了一下只要一喊开,就4路全开。喊关4路全关的了。怎么做到叫1开就1开,叫2开就2开 ……。呢
面包不好吃 回复于:2019-07-08 16:04:01
回复 @未来加油:加程序,进行判断。
未来加油 回复于:2019-07-08 16:09:04
回复 @面包不好吃:重点就是在这里哦,这个程序怎么去判,可以发个实例分享吗?谢谢
面包不好吃 回复于:2019-07-08 16:36:57
回复 @未来加油:查看串口输出,每个开关的输出不一样,进行判断
未来加油 回复于:2019-07-08 16:47:41
回复 @面包不好吃:可以直接用8266进行内部程序判断吗?
未来加油 评论于:2019-07-08 16:49:20
回复 @面包不好吃:那我从哪里能得知每一路的参数呢?
评论支持使用[code][/code]标签添加代码
返回顶部