23回答

2收藏

【Gokit心得】基于机智云的智能厨房监控——软件篇

 

机智云GoKit 机智云GoKit 11687 人阅读 | 23 人回复 | 2015-09-30

本帖最后由 斑斑 于 2015-9-30 00:45 编辑

        拿到Gokit开发板之后,做了一套基于机智云的智能厨房安全监控系统。这套系统可以远程云端监控家里厨房,功能比较全面,所以我称之为—— 多功能智能厨房卫士。
       为什么我首先想到要做厨房安全系统呢?厨房不仅是一个经常活动的场所,而且是家中危险系数最高的地方,您是否也有这样的担心,担心家人忘记关掉煤气、煲汤时忘记时间……一些小细节的疏忽大意,就可能危害到家庭的健康。

       该系统可以监测厨房这样需要特别关注安全的地方。设备具备多种传感器接入,并且根据用途自由配置传感器的种类。设备接入云平台,可以通过智能手机实时了解当前状态,通过智能算法评估出安全系数,来做出针对性的防护措施。并且还可以手动作出修正处理。
        ?家庭卫士通过多传感器对厨房温湿度、燃气、明火、烟雾进行监控;
        ?通过算法对厨房各项环境数据进行综合评估分析,判断险情;
        ?手机APP远程控制消防设备,处理危险!
    就是智能厨房安全监控三部曲!
        下面先来分享一下软件开发过程,包括三部分组成:下位机单片机程序、云端建立、以及手机端APP开发。用机智云做平台开发起来特别快,原因是有Gokit这样的开发板,并且有丰富底层代码范例的Dome程序。另外机智云建立云端数据的界面也特别友好,很适合入门者快速上手。还有最关键的是机智云有多个开源的手机APP的Dome源码提供参考,大大降低了开发门槛。
        (1)下位机程序
        下位机程序中单片机和WiFi模块的通讯,以及WiFi模块接入以太网的规则,官方代码已经给的很完善了,初学者完全可以绕开这一段直接进行单片机开发,就和大家通常在普通STM32平台做功能一样的。
        这里需要提出比较关键的一点是代码中的一个参数:product key。这是我们的设备连接到机智云平台哪一个云数据库的唯一判断依据。我们的开发板就是靠这个识别,来连接到你自己在机智云平台简历的数据接口的。这个product key是你建立属于自己的云端空间时机智云系统分配给你的,这个接下来要说的。我们做下位机单片机程序时,要把这个串码写进去。
        官方代码把这个串码做在一个宏里,位于Procotol.h文件里:
  1. #define       PRODUCT_KEY              "a7a64b92509a4ff3a98eb7fcd224657e"
复制代码
下面,为了大家直接在开发板上调试方便,我从官方Dome程序简单修改了一个程序,大家可以下载下来测试。
        下位机单片程序参考代码:
智能厨房.rar (4.62 MB, 下载次数: 70)

         注意的是由于Gokit2开发板改版了,但是官方历程还未更新,RGB灯那里的代码需要做一些修改,具体位置是在hal_rgb_led.c文件里初始化RGB时需要把GPIOA0拉高:
  1. void RGB_LED_Init(void)
  2. {
  3.         
  4.         GPIO_InitTypeDef GPIO_InitStruct;
  5.         RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB,ENABLE);
  6.         GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
  7.         GPIO_InitStruct.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9;
  8.         GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
  9.         GPIO_Init(GPIOB, &GPIO_InitStruct);
  10.         
  11.         GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
  12.         GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;
  13.         GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
  14.         GPIO_Init(GPIOA, &GPIO_InitStruct);
  15.         
  16.         GPIO_SetBits(GPIOA,GPIO_Pin_0);
  17.         
  18.          Send32Zero();        
  19.         DataDealWithAndSend(0,0,0);          // display red
  20.   DataDealWithAndSend(0,0,0);        

  21. }
复制代码
(2)云端建立
         这需要在机智云官网上注册一个账号,然后就可以建立一个属于自己的云端数据空间了,简单四五个步骤就搞定,并且每一步都有指导说明,特别人性化,新手无痛入门!

        1、首先要取一个云端设备名称,这个名称就是以后你手机APP上搜到的设备名称,比如我们这里叫做:智能厨房3。当搜到多个设备时,我们可以以设备的MAC地址区分不同设备。
        2、然后我们要选择你所使用的开发板,并且选择一个云端范例模板。这里机智云简直就做的是傻瓜模式,我们完全可以利用模板轻松改一个自己的云端数据空间。当然也可以从新建议一个,不过新手建议从模板来改。
        3、接下来我们要在模板中修改适合自己的数据,数据名称需要和前边下位机中给出的数据列表对应起来,名称需要完全一致,否则会导致对应不上。
        我们开发板用到的设备数据包括如下,云端建立数据时,名称和类型要和下面结构体里定义的一样:
  1. /******************************************************
  2. * 只读设备
  3. ********************************************************/
  4. __packed        typedef struct        
  5. {
  6.         bool                Infrared;
  7.         uint8_t             Temperature;
  8.         uint8_t             Humidity;
  9. }Device_ReadTypeDef;  

  10. /******************************************************
  11. *可写设备
  12. ********************************************************/
  13. __packed        typedef struct        
  14. {
  15.         uint8_t                                                        LED_Cmd;
  16.         uint8_t                                                        LED_R;
  17.         uint8_t                                                        LED_G;  
  18.         uint8_t                                                        LED_B;
  19.         uint16_t                                                Motor;
  20. }Device_WirteTypeDef;

  21. /******************************************************
  22. *报警、故障信息
  23. *******************************************************/
  24. __packed        typedef struct        
  25. {
  26.         uint8_t                                                        Alert;
  27.         uint8_t                                                        Fault;
  28. }Device_RestsTypeDef;
复制代码
4,最后设置完成之后提交,机智云就会分配给你一个属于你自己的product key。我们需要把它更新到你的下位机单片机程序里。
        到这里,我们就完成了云端建立!是不是so easy?
        (3)手机app开发
        这个因为有官方开源的Dome源码,所以我们只要有一些安卓或者ios开发基础,就可以轻松的从官方Dome中改一个出来。如果仅仅是学习测试使用,甚至可以直接用官方给的IOE Dome测试,因为这个Dome里没有都设备的product key进行筛选,所以凡是接入到机智云的Gokit开发板在局域网里都能被这个Dome APP找到并连接。
        这里给一个智能厨房的APP,大家可以连接到Gokit开发板测试一下。因为是具体应用的APP,所以对product key做了筛选,只识别连入智能厨房云端的在线设备。所以测试时Gokit开发板需要使用前面代码里给的这个这个product key才可以。
   
  
    APP测试中按如下对应关系参考:
        1温湿度对应Gokit开发板上的温湿度传感器,显示温湿度;
        2火焰传感器对应开发板上的红外对管传感器,用手遮挡时红外对管时,明火报警;
        3换气扇操作对应开发板上的马达,打开换气扇按钮,马达开始正转;
        4插座开关对应开发板的RGB LED中的红灯,打开插座开关按钮,红灯亮。
    安卓手机客户端:
gokit-android-hub(1).rar (1.98 MB, 下载次数: 100)

分享到:
回复

使用道具 举报

回答|共 23 个

倒序浏览

沙发

hello!

发表于 2015-9-30 09:54:32 | 只看该作者

不管了,先占个楼
板凳

li00000

发表于 2015-9-30 10:39:55 | 只看该作者

支持一下,Gokit开发板的外围资源还是很丰富的
地板

奋斗哥

发表于 2015-9-30 11:10:58 | 只看该作者

非常棒!!!
5#

wait-129259

发表于 2015-9-30 11:51:58 | 只看该作者

膜拜!。。。。。。。
6#

aaaaa

发表于 2015-9-30 12:43:51 | 只看该作者

,我家装修的时候厨房预留网络接口了!
7#

aaaaa

发表于 2015-9-30 12:45:02 | 只看该作者

现在想起来窗户上真该留网络接口,不在家也可以换换个空气,控制个开关!

8#

斑斑

发表于 2015-9-30 12:50:29 来自手机 | 只看该作者

aaaaa 发表于 2015-9-30 12:43
,我家装修的时候厨房预留网络接口了!

用这个方案做的是无线接入的,所以更加灵活!
9#

斑斑

发表于 2015-9-30 12:51:06 来自手机 | 只看该作者

aaaaa 发表于 2015-9-30 12:45
现在想起来窗户上真该留网络接口,不在家也可以换换个空气,控制个开关!

...

无线接入的,有wifi就可以!
10#

lyzd

发表于 2015-10-3 20:59:50 | 只看该作者

高手在人间
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

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