查看: 1029|回复: 0

BBB物联网开发实战【1.通过微信控制继电器开关】

[复制链接]
  • TA的每日心情
    郁闷
    2016-8-18 12:54
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2015-10-19 09:22:17 | 显示全部楼层 |阅读模式
    分享到:
    1、云平台介绍
    目前国内的物联网云平台已经是爆发状态了,所以找个合适的玩玩早已不是啥难事,本文用到的是乐为物连,它的优势是支持TCP长连接方式,这样实时性会比yeelink之类的好得多,乐为物联对于免费账号有一些限制,比如传感器最多5个,不过对于自己用来说也够了。

    2、云平台的接入
    首先通过TCP连接到tcp.lewei50.com,端口9960,并通过每30秒向云平台发送一次心跳包来保持这个链接,需保证在1分钟内有数据发送过去(发送用户网关数据或者上传数据都可以),否则服务器端会主动断开连接。如果只想反向控制,仅需要定时发送网关数据,并及时响应服务器发来的各种请求即可。如果需要上传测量设备数据,需要在首次连接时发送网关数据,然后定时上传测量设备数据。发送和接收都以&^!为结束符来判断是否完整包。所有交互的数据包均为JSON格式,好在Github有开源的json-c库,能省下很多麻烦。
    心跳包格式:
    {
        "method": "update",
        "gatewayNo": "你的网关号",
        "userkey": "你的userkey"
    }&^!
    乐联网收到控制命令后会像控制端推送数据:
    {
        "f": "getAllSensors"
    }&^!
    需要您处理完之后按如下格式返回:
    {
        "method": "response",
        "result": {
            "successful": true,
            "message": "xxxx",
            "data":[
          {
             "id":"C1",
             "value":"1"
          },
          {
             "id":"C2",
             "value":"2"
          }]
        }
    }&^!
    乐联网收到控制命令后会像控制端推送数据:
    {
        "f": "updateSensor",
       "p1": "C1",
        "p2": "2"
    }&^!     p1为要控制的设备id,p2为要设置的值
    需要您处理完之后按如下格式返回:
    {
        "method": "response",
        "result": {
            "successful": true,
            "message": "xxxx"
        }
    }&^!
    大概过程就是这样,如果有疑问可以访问(乐联网TCP长连接反向控制被控端开发指南)。

    3、效果
    自己焊了个非常简陋的扩展板,引出了几个GPIO、IIC、SPI这几个常用的接口方便扩展后面的应用。



    这样就实现了微信远程控制,跟智能插座原理是一样的,源代码在这里:https://github.com/xydang/Beaglebone
    用法:先安装git ,然后执行git clone git@github.com:xydang/Beaglebone.git   
    最后进入主程序目录直接make就好了。
    程序还在不断完善,下一步会加入一些传感器。。。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-3-29 09:37 , Processed in 0.122663 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.