MTK开发平台
直播中

gjianw217

10年用户 688经验值
擅长:嵌入式技术 控制/MCU RF/无线
私信 关注
[试用报告]

【IntoRobot Atom试用体验】基于Atom的智能家居控制系统(1)智能灯与温湿度控制及整合

本帖最后由 gjianw217 于 2016-1-17 22:34 编辑

        前些天试用了Atom,了解了其基本原理,工作流程及应用开发等,但感觉云平台有些不稳定,故暂断了一段时间,没想到,现在是好了许多,但还是不有些不稳定。之所以暂断,原因是不管是绑定设备(要想控制,必须要先绑定),还是程序的编写、烧录,都需要云平台的支持。
        当初申请的时候,就曾提到,要借助Atom,来搭建自己的智能家居应用,其中包含:有如下几条:通过手机app,来控制继电器的开关,进而控制电源、通过温湿度优越感器来检测家庭的温湿度,从而去控制空调或加热器、通过光电传感器检测家庭灯光,然后去控制家庭主灯的亮度等。
        接下来,就通过控制灯的状态和采集温湿度的值开始,进行前期的预演。主要包括:智能灯设备创建及程序控制;温湿度设备的创建和程序控制以及智能家居系统设备(包括以上两个设备,或者叫控制更合适)的创建和程序实现。以下内容假设已经登录IntoRobot开发系统,http://www.intorobot.com/。并且每个设备的实现,基本上分为6步: 创建设备、创建工程、编写程序、绑定设备、烧录程序、控制演示等,具体如下面所述。
-----------------------------------------------------------------------------------------------
一、智能灯设备
1 创建设备,在设备展示下的我的设备,点击添加,输出设备名称,并选择可控
1.png
2 创建工程,在在线编程下的我的工程,点击添加,输出工程名称,并选择刚创建的设备
2.png
3 编写程序,代码的实现,参考SmartLight示例,具体可在示例下输入SmartLight查询
  1. //智能灯控件topic定义
  2. #define SMARTLIGHT_CMD_SWITCH    "channel/smartLight_0/cmd/switch"   //开关命令
  3. #define SMARTLIGHT_DATA_STATUS   "channel/smartLight_0/data/status"  //开关状态

  4. #define LEDPIN    D0    //定义灯泡控制引脚

  5. void smartLightSwitchCb(uint8_t *payload, uint32_t len)
  6. {
  7.         if(payload[0] == '1')
  8.         {
  9.                 digitalWrite(LEDPIN, HIGH);                // 打开灯泡
  10.                 IntoRobot.publish(SMARTLIGHT_DATA_STATUS,"1");
  11.         }
  12.         else
  13.         {
  14.                 digitalWrite(LEDPIN, LOW);                //关闭灯泡
  15.                 IntoRobot.publish(SMARTLIGHT_DATA_STATUS,"0");
  16.         }
  17. }

  18. void setup()
  19. {
  20.     //初始化
  21.         pinMode(LEDPIN, OUTPUT);
  22.         //接收灯开关命令
  23.         IntoRobot.subscribe(SMARTLIGHT_CMD_SWITCH, NULL, smartLightSwitchCb);
  24. }

  25. void loop()
  26. {
  27. }

4 绑定设备,创建设备后,手机上的IntroRobot APP会自动显示刚生成的设备(有时候立即显示,有时候会长时间的延时,不知为什么),找到设备MySmartLed,点击进入,点击右上角,选择绑定设备,然后安装官方教程绑定即可。可能第一次要花费些时间,但后来就快了,而且绑定成功率也非常高。
QQ截图20160117215439.png

5 烧录程序,烧录前必要绑定工程对应的设备,只有绑定成功才能正确烧写,不然会报出网络没有连接对的错误提示。
5.png
6 控制演示
QQ截图20160117220010.png
----------------------------------------------------------------------------------------------
二、温湿度设备
1 创建设备,同上,在设备展示下的我的设备,点击添加,输出设备名称,并选择可控。由于默认是智能灯控制设备,如果想实现其他设备的功能,需要编辑控件,具体看下面第三部分的智能家居设备控件的编辑。
21.png


2 创建工程,同上,在在线编程下的我的工程,点击添加,输出工程名称,并选择刚创建的设备
22.png

3 编写程序,同上,代码的实现,参考humiture示例,具体可在示例下输入humiture查询
  1. #include

  2. //温湿度计控件topic定义
  3. #define HUMITURE_DATA_TEMPERATURE    "channel/humiture_0/data/temperature"   //空气温度
  4. #define HUMITURE_DATA_HUMIDITY       "channel/humiture_0/data/humidity"      //空气湿度

  5. DHT11 dht11 = DHT11(D1);

  6. void setup()
  7. {
  8.     //初始化
  9.            dht11.begin();
  10. }

  11. void loop()
  12. {
  13.         IntoRobot.publish(HUMITURE_DATA_TEMPERATURE, dht11.ReadTemperature(0)); //上送温度值
  14.         IntoRobot.publish(HUMITURE_DATA_HUMIDITY, dht11.ReadHumidity());        //上送湿度值
  15.         delay(1000);
  16. }

4 绑定设备,创建设备后,手机上的IntroRobot APP会自动显示刚生成的设备(有时候立即显示,有时候会长时间的延时,不知为什么)
5 烧录程序,烧录前必要绑定工程对应的设备,只有绑定成功才能正确烧写,不然会报出网络没有连接对的错误提示。
9.png

6 控制演示
QQ截图20160117220521.png
-----------------------------------------------------------------------------
三、智能家居系统
1 创建设备,在设备展示下的我的设备,点击添加,输出设备名称,并选择可控。
21.png

2 编辑控件之所以要编辑控制,是因为IntoRobot系统默认生成的智能灯设备,对应的控件也是智能灯的控件,如下图所示,而编辑控制的目的有两个,一个是将其设置为自己需要的控制,另一个是实现一个设备控制多个“控件”的目的。具体方法是:
(1)在新建的设备界面,点击“..."然后选择编辑控件
22.png
(2)弹出如下编辑控件界面,最左边的是当前IntoRobot系统中已有控件的分类;中间的是当前分类下,提供的控件;最右边是当前设备包含的控制。由于要实现智能灯的控制和温湿度传感器数据的采集,故保留智能灯,选择温湿度计***度计,在弹出的界面的最下面,选择添加,就形成了如下图所示的控件。
23.png


(3)最后一定要选择保存,不然。。。
(4)保存后,就会在手机APP下面生成对应的设备(如果没有,下位刷新或关闭后重新启动,一般是可以的),点击进去,可看到有两个控件 QQ截图20160117222135.png

3 创建工程,同上,在在线编程下的我的工程,点击添加,输出工程名称,并选择刚创建的设备
24.png


4 编写程序,代码的实现,整合以上两个示例
  1. ///////////////////////////////////////
  2. /*
  3. ************************************************************************
  4. * 作者:  口袋物联  
  5. * 版本:  V1.0.1
  6. * 日期:  2016-01-17
  7. * 微信公众号 :koudaiwulian
  8. ************************************************************************
  9. 功能描述:
  10. 智能家居环境检测与控制:
  11. 智能灯控制
  12. 温湿度检测
  13. 后续功能完善中。。。

  14. 所需器件:
  15. 0.IntoRobot Atom
  16. 1.Led发光二级管
  17. 2.DHT11传感器模块
  18. 3.连接线若干


  19. 接线说明:
  20. 1 LED
  21. GND                           
  22. I/O                          D1
  23. 2 DHT11传感器模块
  24. GND
  25. VCC                          V3.3
  26. S                            D0

  27. */

  28. #include
  29. //控件topic定义
  30. //Led
  31. #define LED_CMD_SWITCH    "channel/smartLight_0/cmd/switch"   //开关命令
  32. #define LED_DATA_STATUS   "channel/smartLight_0/data/status"  //开关状态

  33. //温湿度计
  34. #define HUMITURE_DATA_TEMPERATURE    "channel/humiture_0/data/temperature"   //空气温度
  35. #define HUMITURE_DATA_HUMIDITY       "channel/humiture_0/data/humidity"      //空气湿度

  36. #define LEDPIN    D0    //定义灯泡控制引脚
  37. DHT11 dht11 = DHT11(D1);


  38. void LEDSwitchCb(uint8_t *payload, uint32_t len)
  39. {
  40.     if(payload[0] == '1')
  41.    {
  42.                 digitalWrite(LEDPIN, HIGH);   // 打开灯泡
  43.                 IntoRobot.publish(LED_DATA_STATUS,"1");
  44.     }
  45.     else
  46.     {
  47.                 digitalWrite(LEDPIN, LOW);    //关闭灯泡
  48.                 IntoRobot.publish(LED_DATA_STATUS,"0");
  49.     }
  50. }

  51. void setup() {
  52.   // put your setup code here, to run once:
  53.     //初始化
  54.     pinMode(LEDPIN, OUTPUT);
  55.         dht11.begin();
  56.     //接收灯开关命令
  57.     IntoRobot.subscribe(LED_CMD_SWITCH, NULL, LEDSwitchCb);
  58. }

  59. void loop() {
  60.   // put your main code here, to run repeatedly:
  61.         IntoRobot.publish(HUMITURE_DATA_TEMPERATURE, dht11.ReadTemperature(0)); //上送温度值
  62.         IntoRobot.publish(HUMITURE_DATA_HUMIDITY, dht11.ReadHumidity());        //上送湿度值
  63.         delay(1000);

  64. }
5 绑定设备,在最后实现的时候,不知道为什么,每次都可以绑定,但开始就会出现绑定不成功的问题,不知为什么。
6 烧录程序,烧录前必要绑定工程对应的设备,只有绑定成功才能正确烧写,不然会报出网络没有连接对的错误提示。
25.png
7 控制演示
对Atom上设备的控制,其实有两种方法,一个是通过手机IntoRobot的APP来实现,如上面两个示例效果所示;
另一个就是通过InroRobot的网站进行数据的查看和控制的控制。下面看下Web端的控制。
1 查看温湿度值
QQ截图20160117221441.png
2 控制Led灯
(1)Web控制
QQ截图20160117221422.png
(2)Atom效果
QQ截图20160117221458.png







回帖(1)

柠檬守护

2016-1-17 23:28:31
我来顶一记,我喜欢,我顶贴。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分