收藏官网首页
查看: 3873|回复: 195

【STM 32】之智能温控器(PCB、MCU源码和APP源码下载)

 

3

主题

23

帖子

1272

积分

金牌会员

Rank: 6Rank: 6

积分
1272
发表于 2016-8-19 19:47:39 | 显示全部楼层 |阅读模式
成为机智云开发者
本帖最后由 Genius 于 2016-9-6 09:44 编辑

智能温控器特点: 能够使办公环境更舒适,空调更节能,自动调节温湿度,这一切后建筑更绿色…
原创声 明,转载请注明出处:http://club.gizwits.com/thread-3332-1-1.html
机智云智能硬件创新大赛:http://club.gizwits.com/thread-2646-1-1.html
作者:夏天罂 粟      看到机智云的这个活动有点晚,犹豫是否要参加一下这个活动。不管是否能完成,我申请几块开发板了,支持一下机智云,同时也熟悉一下机智云的各个开发环节,后面会提出一些建议。周日(8月14日)才把PCB投出,周四回来焊接组装,正在调试。言归正传,我要做的是一个简单实用的产品。智能温控器。
      
产品功能: 控制中央空调风机盘管的通断阀,风机高中低转速。
应用环境: 楼宇中央空调的风机盘管控制,可以运用于写字楼、工厂等环境。

应用场景
        (1)夏天天气温度比较高,早上到办公室打开办公室空调,室内温度需要很长时间才能降下来。用户可以通过智能温控器把中央空调提前打开。
        (2)有时候下班时忘记关闭空调,可以通过手机软件关闭,或者在温控器设置定时关闭。
       (3)办公室、厂房空间比较大,温控器采样温度与出口温度不一致,用户可以通过手机软件设定温度和风速进行微调。
       (4)为了防止有人故意把空调温度设置过低或者过高,可以通过手机APP将面板进行锁定。
        (5)结合机智云平台数据分析,物业利用温控器的开通时间进行合理收费,不需要根据办公面积收费。

后面会陆续把原理图、PCB、软件代码、APP的UI和APP代码上传上来。

[ 项目名称 ] 基于STM32ESP8266的智能温控器
[
项目概述 ] 主要用于控制中央空调的风机。
[
硬件准备 ] 机智云GOkit2开发板,壳体,烙铁和示波器等等。
[
使用软件环境
]
                    单片机开发:KEIL5.1
                    UI设计:AI
                   APP设计:Android Studio 2
[ 相关源码 ] 回帖可见相关源码:原理及PCB、MCU源码、APP源码(基于Android Studio2)
游客,如果您要查看本帖隐藏内容请回复

如果您需要Gokit APP for Android  Studio源码,请投我一票,6号夏天** 智能温控器    我将发送给你。谢谢! 投票页面   

[ 项目介绍 ]
(1)  视频1操作

(2)  视频2 设备调试

(3)  视频3 设备调试

(4)  做好的APP界面(基于GOkit的APP进行修改,还是用的机智云)

登陆截图

登陆截图

控制页面截图

控制页面截图



[ 详细介绍 ]
       一、体系结构图
                      二、硬件篇(主要器件、BOM表和原理图)
                     三、硬件篇(焊接完成)
                     四、设备数据点定义篇
                     五、MCU代码篇
                    六、APP界面UI部分
      七、APP程序篇(陆续补充中)




一、 体系结构图
这里所说的温控器是楼宇中央空调的控制面板,是比较常见的面板。传统面板不带通讯模块,及时有也是RS485,用来统一控制,没有实质和用户打交道。
这款智能温控器是在传统温控器基础之上增加了WIFI模块,用户通过APP或微信控制更加人性化,更加简单。

系统结构图

系统结构图

(1)  智能温控器通过WIFI连接到机智云服务器,用户可以通过APP来设置和控制中央空调。
(2)  用户可以远程开启和关闭办公室空调。
(3)  管理员可以查看大楼空调运行情况,可以根据开启时间收费。
(4)  可以和楼宇BA控制系统对接,提升大楼智能化水平。
(5)  可以通过微信将设备控制权分享给同事。

目标: 办公环境更舒适,空调更节能,这一切后建筑更绿色…

二、硬件篇(结构图、原理图和主要BOM)

产品内部系统结构图




1 电源DCDC部分
12V转4.5V。开关电源是12V输出,继电器用的是12V类型的

2、主芯片
Stm32F103C8T6


3、晶振



4、Cypress的触摸芯片

5、电平转换芯片

6、段式液晶驱动芯片

7、蜂鸣器驱动
8、ESP8266WIFI模块

主要BOM器件和成本估算
方案总体成本估算  60+元
1 MCU stm32           5
2 触摸芯片           2元
3 LCD驱动芯片         2元
4 LCD段式液晶         4元
5 NTC热敏电阻          1+元
6 继电器型号 7A?        5+元
7 液晶背光板(含液晶背光) 3元
8 WIFI模块           12元
9开关电源 及 DCDC      12元
10蜂鸣器             1元
11 壳体            10元
三、硬件篇(焊接完成)
      (1)补充一下PCB布板图 反面

(2)PCB正面


(3)PCB 的3D图


(4)PCB焊接完成


(5)PCB焊机水平还不错吧。 能看到ST和乐鑫的芯片模块。



(6)和电源主板相连接(借用公司的电源板,上面有开关电源、继电器和DCDC)


(7)PCB正面,触摸区域,NTC热敏电阻和段式液晶LCD


(8)点亮OK了,帅吧。壳体是阿里上的公模
[size=0.83em]IMG_1958.JPG (1.36 MB, 下载次数: 0)
下载附件
[color=rgb(153, 153, 153) !important]4 天前 上传





下片把MCU代码资源上传上来。期待着!!
四、设备数据点定义篇
       温控器主要的操作有
      (1)冷水阀、热水阀的通断(四管制),用户理解就是制冷制热
      (2)风速 高中低三速 调整
      (3)温度调节
      (4)WIFI功能模式切换,softAP 和 airlink模式
      (5)故障上报
      (6)面板锁定(手机下发命令)
      (7)低温保护, 低于5摄氏度时启动空调

下图为设备数据点图
五、MCU代码篇   
  (1)MCU程序整体部分


(2)MCU程序用户处理部分


(3)串口事件部分


(4) 处理用户部分代码
void userHandle(void)
{
    uint8_t ret  = 0;
    static uint32_t lcdLastTimer = 0;
    static uint32_t capLastTimer = 0;
    static uint8_t last_cap=0;
    uint8_t cap_id=0;
    static uint16_t cap_time_count=0;
        static uint16_t cap_time_count1=0;         
     if((gizwitsGetTimerCount()-lcdLastTimer) > LCD_TIME_MAX) //timeout = 2S
     {
                                touch_scan();
        
                static uint8 power_on=0;
                ReadADCPoll(&temperature_c);
                if(0x00 == power_on)
                {
                    power_on=1;
                    memset_my(g_showBuff, 0x00, sizeof(g_showBuff));
            //        show_mode_signal();
                    return;
                }
                show_temperature(temperature_c.cur_temp, RT);
                show_mode_signal();
            //    show_time();                      //20160122时间不准,去掉显示时间
                lcd_reload();   
                if(temperature_c.backlight > 0)
                {
                    temperature_c.backlight--;
                    lcd_backlight(temperature_c.backlight);
                }
               
                if(temperature_c.sync_delay > 0)
                {
                    temperature_c.sync_delay--;
                    if(0x00 == temperature_c.sync_delay)
                    {
                        temperature_c.sync_flag = 1;
                    }
                }

         lcdLastTimer = gizwitsGetTimerCount();
      }


      if((gizwitsGetTimerCount()-capLastTimer) > CAP_SCAN_PERIOD) //timeout = 2S
      {
                  auto_rev_opt(&temperature_c);
                  led_buzzer_ctrl(0,0);        
          cap_id=GET_TOUCH_NUMBER();
          if (last_cap!=cap_id)
          {
              last_cap =cap_id;
          }
          else
          {
              if (0!=cap_id)
              {
                cap_pad[cap_id- 1].touch = 1; //for relay ctrl
                led_buzzer_ctrl(logicch2phych[cap_id-1],1);
                led_buzzer_ctrl(5,1);
              }
          }
          if (cap_id == 1)
          {
              cap_time_count++;
              if (cap_time_count > 5000 / CAP_SCAN_PERIOD)
              {
                  gizwitsSetMode(SoftAp_Mode);
                  cap_time_count = 0;
                  lcd_init();
              }
          } else
          {
              cap_time_count = 0;
          }

          if (cap_id == 4)
          {
              cap_time_count1++;
              if (cap_time_count1 > 5000 / CAP_SCAN_PERIOD)
              {
                  gizwitsSetMode(AirLink_Mode);
                  cap_time_count1 = 0;
                  lcd_init();
              }
          } else
          {
              cap_time_count1 = 0;
          }
                  capLastTimer = gizwitsGetTimerCount();
      }
                        
}

(5)功能为触摸按键检测 、温度检测和 LCD刷新代码部分


void smart_frame(uint8_t cmd[],uint8_t buff[])
{
    uint8_t data[5],state=0;
        if ((cmd[0]!=9)&&(cmd[0]!=6)) return ;
    if (cmd[1]!=3) return ;
        if (cmd[3]!=0) return ;
        if (cmd[4]!=0) return ;
        IWDG->KR=0xaaaa;
    smart_frame_buff *wifi_data = (smart_frame_buff *)buff;
    if (wifi_data->action==0x02)
    {
        //read;
       send_state_frame();
        //state|=((temperature_c.temp_param.mode<<2)&0x12);
    }
    if (wifi_data->action==0x01)
    {
        if (wifi_data->attrr_flags&0x01)
        {
           temperature_c.temp_param.on_off=(((wifi_data->attrr_value_L & 0x01)!=0 )?1:0);
        }
        if (wifi_data->attrr_flags&0x02)
        {
            temperature_c.temp_param.lock=(((wifi_data->attrr_value_L&0x02)!=0)?1:0);
        }
        if (wifi_data->attrr_flags&0x04)
        {
            temperature_c.temp_param.mode=((wifi_data->attrr_value_L&0x0c)>>2);
        }
        if (wifi_data->attrr_flags&0x08)
        {
            temperature_c.temp_param.speed=((wifi_data->attrr_value_L&0x30)>>4);
        }
        if (wifi_data->attrr_flags&0x16)
        {
            temperature_c.temp_param.limit_t=BIN2BCD(wifi_data->attrr_value_H);
        }
        //write
                led_buzzer_ctrl(5,1);
                temperature_c.backlight = 60;
        ctrl_reply();
    }
}


详细代码请查阅本主题帖代码附件,谢谢!
六、APP界面UI部分

(1)登陆界面,取名智能温控器。 还有一个小绿叶,


      


(2)控制界面
主要模式切换,温度调整、风速调节和面板锁定。



绿色代表环保。

283

主题

614

帖子

2039

积分

社区运营

Rank: 8Rank: 8

积分
2039
发表于 2017-1-6 10:42:00 | 显示全部楼层
淡积云 发表于 2016-9-1 17:07
支持下楼主的工作!很详细哦。特别是用了Android Studio。机智云给出的APP源码都是eclipse下开发的。很想知 ...

机智云APP开源框架的源码可快速开发配套app(目前提供ios、Andriod版本),不仅无缝的支持设备到设备的互联,还能完成不同类型的消息推送,如:邮件推送、短信推送、百度推送和极光推送。
Eclipse版本下载地址:https://github.com/gizwits/GizOpenSource_AppKit_Android/archive/master.zip
Android Studio版本下载地址:https://github.com/gizwits/GOpenSource_AppKit_Android_AS
介绍机智云开源框架(GizOpenSource_AppKit_Android) 是开源的适用于物联网的软件框架,用于无缝的支持设备到设备的互联。能帮助开发者快速构建物联网生态系统,实现设备间互联,加速智能设备的应用开发。其包含Wi-Fi类智能硬件app通用功能的一套源码。只要是使用机智云协议的产品,开发者开发配套的app时都可以直接使用该框架的源码实现快速开发,从而缩短app的开发周期短、降低开发成本。请注意:使用机智云物联网开源APP之前,需要先在机智云开发平台创建您自己的产品和应用。开源App需要使用您申请的AppId、AppSecret以及您自己的产品ProductKey才能正常运行。具体申请流程请参见:http://docs.gizwits.com/hc/

3

主题

23

帖子

1272

积分

金牌会员

Rank: 6Rank: 6

积分
1272
 楼主| 发表于 2016-8-22 17:40:47 | 显示全部楼层
本帖最后由 夏天罂粟 于 2016-8-22 17:44 编辑
夏天** 发表于 2016-8-22 17:23
四、设备数据点定义篇
       温控器主要的操作有
      (1)冷水阀、热水阀的通断(四管制),用户理解 ...

五、MCU代码篇   
  (1)MCU程序整体部分

MCU程序总体

MCU程序总体


(2)MCU程序用户处理部分

用户处理部分

用户处理部分


(3)串口事件部分

串口处理流程

串口处理流程


(4) 处理用户部分代码
void userHandle(void)
{
    uint8_t ret  = 0;
    static uint32_t lcdLastTimer = 0;
    static uint32_t capLastTimer = 0;
    static uint8_t last_cap=0;
    uint8_t cap_id=0;
    static uint16_t cap_time_count=0;
        static uint16_t cap_time_count1=0;         
     if((gizwitsGetTimerCount()-lcdLastTimer) > LCD_TIME_MAX) //timeout = 2S
     {
                                touch_scan();
        
                static uint8 power_on=0;
                ReadADCPoll(&temperature_c);
                if(0x00 == power_on)
                {
                    power_on=1;
                    memset_my(g_showBuff, 0x00, sizeof(g_showBuff));
            //        show_mode_signal();
                    return;
                }
                show_temperature(temperature_c.cur_temp, RT);
                show_mode_signal();
            //    show_time();                      //20160122时间不准,去掉显示时间
                lcd_reload();   
                if(temperature_c.backlight > 0)
                {
                    temperature_c.backlight--;
                    lcd_backlight(temperature_c.backlight);
                }
               
                if(temperature_c.sync_delay > 0)
                {
                    temperature_c.sync_delay--;
                    if(0x00 == temperature_c.sync_delay)
                    {
                        temperature_c.sync_flag = 1;
                    }
                }

         lcdLastTimer = gizwitsGetTimerCount();
      }


      if((gizwitsGetTimerCount()-capLastTimer) > CAP_SCAN_PERIOD) //timeout = 2S
      {
                  auto_rev_opt(&temperature_c);
                  led_buzzer_ctrl(0,0);        
          cap_id=GET_TOUCH_NUMBER();
          if (last_cap!=cap_id)
          {
              last_cap =cap_id;
          }
          else
          {
              if (0!=cap_id)
              {
                cap_pad[cap_id- 1].touch = 1; //for relay ctrl
                led_buzzer_ctrl(logicch2phych[cap_id-1],1);
                led_buzzer_ctrl(5,1);
              }
          }
          if (cap_id == 1)
          {
              cap_time_count++;
              if (cap_time_count > 5000 / CAP_SCAN_PERIOD)
              {
                  gizwitsSetMode(SoftAp_Mode);
                  cap_time_count = 0;
                  lcd_init();
              }
          } else
          {
              cap_time_count = 0;
          }

          if (cap_id == 4)
          {
              cap_time_count1++;
              if (cap_time_count1 > 5000 / CAP_SCAN_PERIOD)
              {
                  gizwitsSetMode(AirLink_Mode);
                  cap_time_count1 = 0;
                  lcd_init();
              }
          } else
          {
              cap_time_count1 = 0;
          }
                  capLastTimer = gizwitsGetTimerCount();
      }
                        
}

(5)功能为触摸按键检测 、温度检测和 LCD刷新代码部分


void smart_frame(uint8_t cmd[],uint8_t buff[])
{
    uint8_t data[5],state=0;
        if ((cmd[0]!=9)&&(cmd[0]!=6)) return ;
    if (cmd[1]!=3) return ;
        if (cmd[3]!=0) return ;
        if (cmd[4]!=0) return ;
        IWDG->KR=0xaaaa;
    smart_frame_buff *wifi_data = (smart_frame_buff *)buff;
    if (wifi_data->action==0x02)
    {
        //read;
       send_state_frame();
        //state|=((temperature_c.temp_param.mode<<2)&0x12);
    }
    if (wifi_data->action==0x01)
    {
        if (wifi_data->attrr_flags&0x01)
        {
           temperature_c.temp_param.on_off=(((wifi_data->attrr_value_L & 0x01)!=0 )?1:0);
        }
        if (wifi_data->attrr_flags&0x02)
        {
            temperature_c.temp_param.lock=(((wifi_data->attrr_value_L&0x02)!=0)?1:0);
        }
        if (wifi_data->attrr_flags&0x04)
        {
            temperature_c.temp_param.mode=((wifi_data->attrr_value_L&0x0c)>>2);
        }
        if (wifi_data->attrr_flags&0x08)
        {
            temperature_c.temp_param.speed=((wifi_data->attrr_value_L&0x30)>>4);
        }
        if (wifi_data->attrr_flags&0x16)
        {
            temperature_c.temp_param.limit_t=BIN2BCD(wifi_data->attrr_value_H);
        }
        //write
                led_buzzer_ctrl(5,1);
                temperature_c.backlight = 60;
        ctrl_reply();
    }
}


详细代码请查阅本主题帖代码附件,谢谢!






3

主题

23

帖子

1272

积分

金牌会员

Rank: 6Rank: 6

积分
1272
 楼主| 发表于 2016-9-21 11:33:42 | 显示全部楼层
YSJason 发表于 2016-9-20 16:39
你好已经投票了  麻烦发一下Gokit APP for Android  Studio源码  QQ 527675007

你好!  在1楼有下载,  Gokit2.rar  这个就是。

7

主题

40

帖子

1642

积分

金牌会员

Rank: 6Rank: 6

积分
1642
发表于 2016-8-19 20:27:02 | 显示全部楼层
成为机智云开发者
顶起,楼主加油!

3

主题

23

帖子

1272

积分

金牌会员

Rank: 6Rank: 6

积分
1272
 楼主| 发表于 2016-8-21 10:00:36 | 显示全部楼层
本帖最后由 夏天罂粟 于 2016-8-22 20:04 编辑

二、硬件篇(结构图、原理图和主要BOM)

产品内部系统结构图

结构图.png


1 电源DCDC部分
12V转4.5V。开关电源是12V输出,继电器用的是12V类型的
power.png
2、主芯片
Stm32F103C8T6
主芯片.png

3、晶振

晶振.png

4、Cypress的触摸芯片
触摸芯片.png

5、电平转换芯片
电平转换芯片.png

6、段式液晶驱动芯片
段式液晶驱动芯片.png

7、蜂鸣器驱动
蜂鸣器.png
8、ESP8266WIFI模块
WIFI.png

主要BOM器件和成本估算
方案总体成本估算  60+元
1 MCU stm32           5
2 触摸芯片           2元
3 LCD驱动芯片         2元
4 LCD段式液晶         4元
5 NTC热敏电阻          1+元
6 继电器型号 7A?        5+元
7 液晶背光板(含液晶背光) 3元
8 WIFI模块           12元
9开关电源 及 DCDC      12元
10蜂鸣器             1元
11 壳体            10元





283

主题

614

帖子

2039

积分

社区运营

Rank: 8Rank: 8

积分
2039
发表于 2016-8-21 15:58:52 | 显示全部楼层

小伙伴,你好。
你是第27个参赛者。
欢迎加入开源大赛群,一起交流讨论
机智云开源硬件大赛 583190709

2

主题

6

帖子

54

积分

注册会员

Rank: 2

积分
54
发表于 2016-8-22 16:51:47 | 显示全部楼层
我也来顶一下

3

主题

23

帖子

1272

积分

金牌会员

Rank: 6Rank: 6

积分
1272
 楼主| 发表于 2016-8-22 16:56:38 | 显示全部楼层
夏天罂粟 发表于 2016-8-21 10:00
二、硬件篇

产品内部系统结构图

三、硬件篇(焊接完成)
      (1)补充一下PCB布板图 反面

温控器PCB反面

温控器PCB反面

(2)PCB正面

温控器PCB正面

温控器PCB正面


(3)PCB 的3D图

3D图1

3D图1

3D图2

3D图2


(4)PCB焊接完成

PCB焊机完成

PCB焊机完成


(5)PCB焊机水平还不错吧。 能看到ST和乐鑫的芯片模块。

放大PCB

放大PCB


(6)和电源主板相连接(借用公司的电源板,上面有开关电源、继电器和DCDC)

和电源连接图

和电源连接图


(7)PCB正面,触摸区域,NTC热敏电阻和段式液晶LCD

PCB正面图

PCB正面图


(8)点亮OK了,帅吧。壳体是阿里上的公模
IMG_1958.JPG

下片把MCU代码资源上传上来。期待着!!

3

主题

23

帖子

1272

积分

金牌会员

Rank: 6Rank: 6

积分
1272
 楼主| 发表于 2016-8-22 17:23:32 | 显示全部楼层
成为机智云开发者
夏天罂粟 发表于 2016-8-22 16:56
三、硬件篇(焊接完成)
      (1)补充一下PCB布板图 反面

四、设备数据点定义篇
       温控器主要的操作有
      (1)冷水阀、热水阀的通断(四管制),用户理解就是制冷制热
      (2)风速 高中低三速 调整
      (3)温度调节
      (4)WIFI功能模式切换,softAP 和 airlink模式
      (5)故障上报
      (6)面板锁定(手机下发命令)
      (7)低温保护, 低于5摄氏度时启动空调

下图为设备数据点图

数据点1

数据点1

数据点2

数据点2




3

主题

23

帖子

1272

积分

金牌会员

Rank: 6Rank: 6

积分
1272
 楼主| 发表于 2016-8-22 17:54:56 | 显示全部楼层
本帖最后由 夏天罂粟 于 2016-8-31 01:07 编辑
夏天** 发表于 2016-8-22 17:40
五、MCU代码篇   
  (1)MCU程序整体部分

六、APP界面UI部分

(1)登陆界面,取名智能温控器。 还有一个小绿叶,


      

登陆界面

登陆界面



(2)控制界面
主要模式切换,温度调整、风速调节和面板锁定。

控制界面

控制界面


绿色代表环保。



七、智能温控器APP设计

(1)    环境搭建
官方提供APP源码是基于Eclipse版本,发现ANDROID Studio 2非常强大,谷歌的确很厉害,就想法设法把源码导入到AS2里,最后发现开发APP还是很方便的。借助机智云的帮助文档,请教了同事,自己再捣鼓,期间遇到了不少问题,最后解决了。
本人提供Gokit2源码,无需再花费精力导入了,有问题欢迎指出来。

(2)    程序结构
用户只对界面编写和提供APP必要信息,一个简单APP就完成了。

APP结构图

APP结构图

(3)    添加APP必要信息
在\java\com\gizwits\openSource\CommonModule\GosConstant.java文件中修改自己在
// 在机智云开发者账号下申请的App_ID
public static final String App_ID ="6a790993c68c4ca1a35542c3da5fa4dd";
// 在机智云开发者账号下申请的App_Screct(必须与上述App_ID对应)
public static final String App_Screct = "05948ea8c30f47b7aa021b7d26e10ddd";
// 在机智云开发者账号下创建的产品ProductKey
public static final String device_ProductKey = "164286c6b98a4ff3bfc2e934d5c2bfdd";

(4)    APP的UI

代码结构

代码结构
将做好的界面切图,生成PNG格式,保存在drawable-xhdpi文件夹中。
然后在layout中编写界面,格式xml。

(5)    如果是简单的界面,可以直接用Design界面进行拖拉。
如果比较复杂,在text中编写,一般新手会在这儿费力气,建议先学习一下格式,我也花费不少时间。这个地方Android Studio优势就明显了,无需运行就能看到界面。

界面编写

界面编写
就说明一下智能按钮(雪花),这是一个图片,没有搞多复杂。<ImageView
   
android:id="@+id/mode_cool"   // ID名称 JAVA代码中需要用到
   
android:layout_width="wrap_content"
   
android:layout_height="wrap_content"
   
android:gravity="center"
   
android:src="@drawable/cool"/>   // 图片名称,保存在
drawable-xhdpi文件夹中

(6)    程序实现
就拿Gokit源码中\ControlModule\GosDeviceControlActivity.java进行了修改
举个简单按钮,按键制冷模式。
在初始化initViews()里对按键进行初始化,  
   modeCool = (ImageView) findViewById(R.id.mode_cool);

在初始化事件里initEvents()对按键进行监听

modeCool.setOnClickListener(new OnClickListener() {   @Override
   
public void onClick(View v) {   

  try {         
                sendJson(KEY_MODE, 0); //发送数据到机智云           
                 modeSet.setText("制冷");

             }
catch (JSONException e) {


         e.printStackTrace();      }
   }


});


这样按键功能就实现了。
如果需要更新按键状态,handler里case UPDATE_UI:
增加对某个要刷新数据。
Handler handler = new Handler() {  

(7)    关于调试
可以利用机智云的虚拟设备进行调试APP,这个是非常方便的。硬件没有问题了,再进行联调,这样好确定问题点在哪儿。
APP要写东西太多了,我只能简单写写。如果有什么新体会后面再补充。



2

主题

6

帖子

54

积分

注册会员

Rank: 2

积分
54
发表于 2016-8-24 10:38:28 | 显示全部楼层
这么冷清。。。我来顶一个

2

主题

201

帖子

588

积分

高级会员

Rank: 4

积分
588
发表于 2016-8-25 16:51:20 | 显示全部楼层
又一大作,看起来棒棒哒

3

主题

23

帖子

1272

积分

金牌会员

Rank: 6Rank: 6

积分
1272
 楼主| 发表于 2016-8-25 22:39:38 | 显示全部楼层
成为机智云开发者
林林 发表于 2016-8-25 09:41
做的不错!!!

谢谢!!

1

主题

171

帖子

1333

积分

金牌会员

Rank: 6Rank: 6

积分
1333
发表于 2016-8-26 10:55:30 | 显示全部楼层
不错不错,赞赞赞

3

主题

23

帖子

1272

积分

金牌会员

Rank: 6Rank: 6

积分
1272
 楼主| 发表于 2016-8-26 21:08:57 | 显示全部楼层

谢谢夸奖,请投我一票。

7

主题

40

帖子

1642

积分

金牌会员

Rank: 6Rank: 6

积分
1642
发表于 2016-8-29 11:12:05 | 显示全部楼层
投啦投啦楼主

0

主题

1

帖子

326

积分

中级会员

Rank: 3Rank: 3

积分
326
发表于 2016-8-30 09:37:22 | 显示全部楼层
成为机智云开发者
太好了,就是MCU的代码少几个C文件?编译不过去?

0

主题

12

帖子

1185

积分

金牌会员

Rank: 6Rank: 6

积分
1185
发表于 2016-8-30 14:31:49 | 显示全部楼层
设计的不错,挺有创意的。也很实用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

QQ|加入QQ群

© 2011-2016 Gizwits ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表