• “龙江二号”微卫星传回地月合影 2019-04-18
  • 中国驻泰国大使考察合艾国光中学孔子课堂 2019-04-18
  • 【清园20年】感恩大回馈!半价!半价! 2019-04-18
  • 中央纪委紧盯节点 4年来通报曝光问题近4000起 2019-04-13
  • 2013环球企业领袖宁夏圆桌会议嘉宾云集 2019-04-13
  • 《魔兽世界》未解之谜 那些仍不能被玩家们踏足的领地 2019-04-11
  • 钱江潮评 让高质量发展插上人才的翅膀 2019-04-10
  • 习近平两会期间谈社会主义核心价值观 2019-04-02
  • 文脉颂中华——黄河新闻网 2019-04-02
  • 陈小林的专栏作者中国国家地理网 2019-03-29
  • 中英航母大战谁能赢歼151枚炸弹就能炸瘫女王 2019-03-22
  • 独特“光捕捉器”可控制分子生化性质 2019-03-22
  • 女性之声——全国妇联 2019-03-19
  • 【理上网来·辉煌十九大】德国北威州经济部长:十九大报告表明中国有能力为世界做出更多贡献 2019-03-11
  • 全国小麦收获进度过八成 2019-03-07
  • 打印

    广东11选5压大小: [创新制造展示] 【21ic DIY秀】+基于STM32单片机+机智云远程控制与监控系统

    [复制链接]
    1867|34
    跳转到指定楼层
    楼主
    本帖最后由 一路向北lm 于 2019-3-31 17:47 编辑

    本次DIY视频链接如下:
    https://v.youku.com/v_show/id_XNDExOTg1NjgwOA==.html?spm=a2hzp.8253869.0.0
    本次设计的所有资料(代码工程 、引脚分配  工具  调试助手 )打包分享给大家!  



    先来个段子:
    学妹:学长,最近闲吗?有个事情想麻烦你一下?
    我:还好吧,不是很忙,学妹有什么需要帮忙的吗?
    学妹:我不会单片机,我们老师让我做一个有关单片机的毕业设计,这个该如何是好?我:交给我吧,没有你学长做不到的。(在女生面前吹牛,大家可以原谅?。?/font>
    学妹:好??!嗖嗖嗖,一堆文件飞了过来!
    我:什么? stm32? 还联网? 还要远程控制?  还要监控? 厉害了我的学妹!
    学妹:我就选的是这个题目,感觉不难吧?
    我:还可以吧,是需要费些时日。
    学妹:伟大的学长,你就是我的左手右脚,我一步也离不开你。
    我:我评估了下,这个东西得做二十年了。
    学妹:什么?你要纠缠我20年??!
    我:如果注定你是我的,还在乎这20年,一个指令就可以收了你!
    学妹:你要干嘛?
    我:我先送你的礼物,两颗心,选一个?
          
    学妹:哇??!好厉害,我都要了!
    我:没出息的样子!哈哈哈!
    学妹:哼,别扯这么多没用的,开始做吧!
    我:好的,正式开始DIY之旅?。?!

    题目:基于STM32单片机远程控制与监控系统

    1.写在前面的话:本次DIY也是为了提高自己的动手能力,虽然自我感觉良好。在二姨家的这段岁月感觉自己也参加了几个类似的活动,期间收获很大,读研期间虽然老师布置的东西多,任务中,但我依然不负使命,积极参加二姨家的活动,学习大家的经验,这个比什么都重要,此贴也可以为感兴趣的初学者的一个参考!


    2.初步规划: (??檠⌒停?/font>
    从学妹的角度从发,我决定选择:STM32F103C8T6 作为主控芯片(大学期间学的都是F1系列,大家接触到的第一个都应该是F103ZET6吧),这里选择C8T6 可以节约成本,引脚数更少,不至于资源浪费。说到远程呢?必须要有一个WIFI???,这样可以一键连接我们的Internet,说到一键入网,哈哈哈!我自己都会觉得很牛的!然后就是需要一些传感器了,这里我选择了两个传感器:
    1. DHT11温湿度传感器,可以实时监测当前环境的温湿度(主要是便宜,也可以满足要求?。?/font>
    2. MQ-2 可燃气体监测,这个??榭梢约嗖饣肪持惺欠裼锌扇计宕嬖?,接口处有模拟量和数字量,为了方便这里我们直接用单片机的GPIO去检测该??榈氖至慷丝?,发生电平突变时,就意味着存在可燃气体。
        接下来就是输出端口的控制,本次DIY尽可能的满足生活需要,在一些宿舍和房间布置该diy装置,实时的查看效果,选择了带光耦隔离的继电器???,这样可以消除交流市电带来的干扰,进一步?;さテ?。选择三路继电器输出,可以外接三路家庭控制电路。

    3.购买??椋?/strong>
    3.1 STM32F103C8T6最小系统,买回来就是这个样子,不是很贵,但是很多外设足够我们自己使用。焊接好排针如下图,这里预留了SWD下载调试接口,使用STlink 或者Jlink下载还是美滋滋的!
      

      3.2这个是联网的wifi???,采用ESP8266 MOD 可以支持多台APP同时连接控制,??榛辜尤肓薈H340下载芯片,可以轻松实现各种云端的SDK固件烧写。
       
    4.焊接组装:
    底板采用万用洞洞板+排针引出(可以拆拔),我们再需要最小系统的时候可以将从底板上取下,可以重复利用,人性化设计理念
      整体焊接图如下:
         
      可燃气体检测??榫植客迹?br />   
      温湿度传感器局部图:
      
      继电器??榫植客迹?br />   
    串口打印信息口输出,可以连接至PC端输出信息。


    5.电路原理图部分:   STM32F103C8T6 最小原理图如下, 包括下载调试SWD接口 所有的IO 排针引出,BOOT选择电路, 电源滤波稳压电路,电源指示灯,调试指示灯电路 晶振电路 复位电路 RTC时钟电路等。附上PDF文件  



    6.调试部分:(注:调试代码仅供大家参考,可下载最终工程代码
       STM32F103c8t6的调试:
       附上测试程序,通过ST-link 或者Jlink烧写到STM32 最小系统即可完成对PC13 引脚  LED指示灯闪烁。


    1. //头文件
    2. #include "stm32f10x.h"
    3. #include "GPIOLIKE51.h"

    4. //函数声明
    5. void GPIO_Configuration(void);

    6. //=============================================================================
    7. //文件名称:Delay
    8. //功能概要:延时
    9. //参数说明:nCount:延时长短
    10. //函数返回:无
    11. //=============================================================================

    12. void Delay(uint32_t nCount)
    13. {
    14.   for(; nCount != 0; nCount--);
    15. }


    16. //=============================================================================
    17. //文件名称:main
    18. //功能概要:主函数
    19. //参数说明:无
    20. //函数返回:int
    21. //=============================================================================
    22. int main(void)
    23. {
    24.           GPIO_Configuration();
    25.     while (1)
    26.         {
    27.                 PCout(13)=1;
    28.                 Delay(0xfffff);
    29. //                Delay(0xfffff);
    30. //                Delay(0xfffff);
    31. //                Delay(0xfffff);
    32.                 PCout(13)=0;
    33.                 Delay(0xfffff);
    34. //                Delay(0xfffff);
    35. //                Delay(0xfffff);
    36. //                Delay(0xfffff);               
    37.     }
    38. }

    39. //=============================================================================
    40. //文件名称:GPIO_Configuration
    41. //功能概要:GPIO初始化
    42. //参数说明:无
    43. //函数返回:无
    44. //=============================================================================
    45. void GPIO_Configuration(void)
    46. {
    47.   GPIO_InitTypeDef GPIO_InitStructure;
    48.   
    49.   RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC , ENABLE);                                                  
    50. //=============================================================================
    51. //LED -> PC13
    52. //=============================================================================                        
    53.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
    54.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    55.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    56.   GPIO_Init(GPIOC, &GPIO_InitStructure);
    57. }
    复制代码
       继电器驱动调试:   设计了三路继电器,在没有接入云端之间需要完成对继电器的硬件驱动,这里我们先以标准库为例,后面需要改为HAL库,这里只是为了完后对继电器的单独控制的调试工作。驱动代码如下,附上测试
    1. #include "led.h"

    2. void LED_Init(void)
    3. {
    4. GPIO_InitTypeDef GPIO_InitStructure;
    5. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
    6. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;
    7. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    8. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    9. GPIO_Init(GPIOC, &GPIO_InitStructure);
    10. }

    11. #ifndef __LED_H
    12. #define __LED_H
    13. #include "stm32f10x.h"

    14. #define   K3_ON GPIO_ResetBits(GPIOC,GPIO_Pin_13)
    15. #define   K3_OFF GPIO_SetBits(GPIOC,GPIO_Pin_13)

    16. #define   K2_ON GPIO_ResetBits(GPIOC,GPIO_Pin_14)
    17. #define   K2_OFF GPIO_SetBits(GPIOC,GPIO_Pin_14)

    18. #define   K1_ON GPIO_ResetBits(GPIOC,GPIO_Pin_15)
    19. #define   K1_OFF GPIO_SetBits(GPIOC,GPIO_Pin_15)
    20. void LED_Init(void);

    21. #endif

    复制代码
       DHT11温湿度传感器调试:先使用标准库,通过串口助手实时打印DHT11 温湿度传感器的温度,这里使用了火哥的测试代码打包如下:
    1. #ifndef __DHT11_H
    2. #define        __DHT11_H

    3. #include "stm32f10x.h"
    4. #include "bsp_SysTick.h"

    5. #define HIGH  1
    6. #define LOW   0

    7. #define DHT11_CLK     RCC_APB2Periph_GPIOB
    8. #define DHT11_PIN     GPIO_Pin_11                  
    9. #define DHT11_PORT                GPIOB

    10. //带参宏,可以像内联函数一样使用,输出高电平或低电平
    11. #define DHT11_DATA_OUT(a)        if (a)        \
    12.                                         GPIO_SetBits(GPIOB,GPIO_Pin_10);\
    13.                                         else                \
    14.                                         GPIO_ResetBits(GPIOB,GPIO_Pin_10)
    15. //读取引脚的电平
    16. #define  DHT11_DATA_IN()           GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10)

    17. typedef struct
    18. {
    19.         uint8_t  humi_int;                //湿度的整数部分
    20.         uint8_t  humi_deci;                 //湿度的小数部分
    21.         uint8_t  temp_int;                 //温度的整数部分
    22.         uint8_t  temp_deci;                 //温度的小数部分
    23.         uint8_t  check_sum;                 //校验和
    24.                                  
    25. }DHT11_Data_TypeDef;

    26. void DHT11_GPIO_Config(void);
    27. static void DHT11_Mode_IPU(void);
    28. static void DHT11_Mode_Out_PP(void);
    29. uint8_t Read_DHT11(DHT11_Data_TypeDef *DHT11_Data);
    30. static uint8_t Read_Byte(void);

    31. #endif /* __DHT11_H */







    32. #include "bsp_dht11.h"

    33. /*
    34. * 函数名:DHT11_GPIO_Config
    35. * 描述  :配置DHT11用到的I/O口
    36. * 输入  :无
    37. * 输出  :无
    38. */
    39. void DHT11_GPIO_Config(void)
    40. {               
    41.         /*定义一个GPIO_InitTypeDef类型的结构体*/
    42.         GPIO_InitTypeDef GPIO_InitStructure;

    43.         /*开启DHT11_PORT的外设时钟*/
    44.         RCC_APB2PeriphClockCmd(DHT11_CLK, ENABLE);

    45.         /*选择要控制的DHT11_PORT引脚*/                                                                                                                           
    46.           GPIO_InitStructure.GPIO_Pin = DHT11_PIN;        

    47.         /*设置引脚模式为通用推挽输出*/
    48.           GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   

    49.         /*设置引脚速率为50MHz */   
    50.           GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

    51.         /*调用库函数,初始化DHT11_PORT*/
    52.           GPIO_Init(DHT11_PORT, &GPIO_InitStructure);                  

    53.         /* 拉高GPIOB10        */
    54.         GPIO_SetBits(DHT11_PORT, GPIO_Pin_10);         
    55. }

    56. /*
    57. * 函数名:DHT11_Mode_IPU
    58. * 描述  :使DHT11-DATA引脚变为上拉输入模式
    59. * 输入  :无
    60. * 输出  :无
    61. */
    62. static void DHT11_Mode_IPU(void)
    63. {
    64.            GPIO_InitTypeDef GPIO_InitStructure;

    65.                   /*选择要控制的DHT11_PORT引脚*/        
    66.           GPIO_InitStructure.GPIO_Pin = DHT11_PIN;

    67.            /*设置引脚模式为浮空输入模式*/
    68.           GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU ;

    69.           /*调用库函数,初始化DHT11_PORT*/
    70.           GPIO_Init(DHT11_PORT, &GPIO_InitStructure);         
    71. }

    72. /*
    73. * 函数名:DHT11_Mode_Out_PP
    74. * 描述  :使DHT11-DATA引脚变为推挽输出模式
    75. * 输入  :无
    76. * 输出  :无
    77. */
    78. static void DHT11_Mode_Out_PP(void)
    79. {
    80.          GPIO_InitTypeDef GPIO_InitStructure;

    81.                  /*选择要控制的DHT11_PORT引脚*/                                                                                                                           
    82.           GPIO_InitStructure.GPIO_Pin = DHT11_PIN;        

    83.         /*设置引脚模式为通用推挽输出*/
    84.           GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   

    85.         /*设置引脚速率为50MHz */   
    86.           GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

    87.         /*调用库函数,初始化DHT11_PORT*/
    88.           GPIO_Init(DHT11_PORT, &GPIO_InitStructure);                  
    89. }

    90. /*
    91. * 从DHT11读取一个字节,MSB先行
    92. */
    93. static uint8_t Read_Byte(void)
    94. {
    95.         uint8_t i, temp=0;

    96.         for(i=0;i<8;i++)   
    97.         {         
    98.                 /*每bit以50us低电平标置开始,轮询直到从机发出 的50us 低电平 结束*/  
    99.                 while(DHT11_DATA_IN()==Bit_RESET);

    100.                 /*DHT11 以26~28us的高电平表示“0”,以70us高电平表示“1”,
    101.                  *通过检测 x us后的电平即可区别这两个状 ,x 即下面的延时
    102.                  */
    103.                 Delay_us(40); //延时x us 这个延时需要大于数据0持续的时间即可                     

    104.                 if(DHT11_DATA_IN()==Bit_SET)/* x us后仍为高电平表示数据“1” */
    105.                 {
    106.                         /* 等待数据1的高电平结束 */
    107.                         while(DHT11_DATA_IN()==Bit_SET);

    108.                         temp|=(uint8_t)(0x01<<(7-i));  //把第7-i位置1,MSB先行
    109.                 }
    110.                 else         // x us后为低电平表示数据“0”
    111.                 {                           
    112.                         temp&=(uint8_t)~(0x01<<(7-i)); //把第7-i位置0,MSB先行
    113.                 }
    114.         }
    115.         return temp;
    116. }
    117. /*
    118. * 一次完整的数据传输为40bit,高位先出
    119. * 8bit 湿度整数 + 8bit 湿度小数 + 8bit 温度整数 + 8bit 温度小数 + 8bit 校验和
    120. */
    121. uint8_t Read_DHT11(DHT11_Data_TypeDef *DHT11_Data)
    122. {  
    123.         /*输出模式*/
    124.         DHT11_Mode_Out_PP();
    125.         /*主机拉低*/
    126.         DHT11_DATA_OUT(LOW);
    127.         /*延时18ms*/
    128.         Delay_ms(18);

    129.         /*总线拉高 主机延时30us*/
    130.         DHT11_DATA_OUT(HIGH);

    131.         Delay_us(30);   //延时30us

    132.         /*主机设为输入 判断从机响应信号*/
    133.         DHT11_Mode_IPU();

    134.         /*判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行*/   
    135.         if(DHT11_DATA_IN()==Bit_RESET)     
    136.         {
    137.                 /*轮询直到从机发出 的80us 低电平 响应信号结束*/  
    138.                 while(DHT11_DATA_IN()==Bit_RESET);

    139.                 /*轮询直到从机发出的 80us 高电平 标置信号结束*/
    140.                 while(DHT11_DATA_IN()==Bit_SET);

    141.                 /*开始接收数据*/   
    142.                 DHT11_Data->humi_int= Read_Byte();

    143.                 DHT11_Data->humi_deci= Read_Byte();

    144.                 DHT11_Data->temp_int= Read_Byte();

    145.                 DHT11_Data->temp_deci= Read_Byte();

    146.                 DHT11_Data->check_sum= Read_Byte();


    147.                 /*读取结束,引脚改为输出模式*/
    148.                 DHT11_Mode_Out_PP();
    149.                 /*主机拉高*/
    150.                 DHT11_DATA_OUT(HIGH);

    151.                 /*检查读取的数据是否正确*/
    152.                 if(DHT11_Data->check_sum == DHT11_Data->humi_int + DHT11_Data->humi_deci + DHT11_Data->temp_int+ DHT11_Data->temp_deci)
    153.                         return SUCCESS;
    154.                 else
    155.                         return ERROR;
    156.         }
    157.         else
    158.         {               
    159.                 return ERROR;
    160.         }   
    161. }

    162.          


    163. /*************************************END OF FILE******************************/
    复制代码
       MQ-2 可燃气体??榈魇裕?
       这个??椴僮骱芗虻?,类似于按键操作,只需要去检测相应的GPIO管脚的电平高低即可!这里和按键一起驱动,因为我们需要一个按键来连接网络,调    试的驱动代码如下。
    1. static void MX_GPIO_Init(void)
    2. {

    3.   GPIO_InitTypeDef GPIO_InitStruct;

    4.   /* GPIO Ports Clock Enable */
    5.   __HAL_RCC_GPIOD_CLK_ENABLE();
    6.   __HAL_RCC_GPIOA_CLK_ENABLE();
    7.   __HAL_RCC_GPIOB_CLK_ENABLE();
    8.         __HAL_RCC_GPIOC_CLK_ENABLE();

    9.   /*Configure GPIO pin : KEY1_Pin */
    10.   GPIO_InitStruct.Pin = KEY1_Pin;
    11.   GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    12.   GPIO_InitStruct.Pull = GPIO_NOPULL;
    13.   HAL_GPIO_Init(KEY1_GPIO_Port, &GPIO_InitStruct);

    14.   /*Configure GPIO pin : KEY2_Pin */
    15.   GPIO_InitStruct.Pin =  KEY2_Pin;
    16.   GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    17.   GPIO_InitStruct.Pull = GPIO_NOPULL;
    18.   HAL_GPIO_Init(KEY2_GPIO_Port, &GPIO_InitStruct);
    19.         
    20.   GPIO_InitStruct.Pin =K1_Pin;
    21.   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    22.   GPIO_InitStruct.Pull = GPIO_PULLUP;
    23.         GPIO_InitStruct.Speed=GPIO_SPEED_FREQ_HIGH;  //key1
    24.   HAL_GPIO_Init(K1_GPIO_Port, &GPIO_InitStruct);
    25.         
    26.         GPIO_InitStruct.Pin =K2_Pin;
    27.   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    28.   GPIO_InitStruct.Pull = GPIO_PULLUP;
    29.         GPIO_InitStruct.Speed=GPIO_SPEED_FREQ_HIGH;  //key2
    30.   HAL_GPIO_Init(K2_GPIO_Port, &GPIO_InitStruct);
    31.         
    32.         GPIO_InitStruct.Pin =K3_Pin;
    33.   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    34.   GPIO_InitStruct.Pull = GPIO_PULLUP;
    35.         GPIO_InitStruct.Speed=GPIO_SPEED_FREQ_HIGH;  // MQ
    36.   HAL_GPIO_Init(K3_GPIO_Port, &GPIO_InitStruct);
    37.         
    38.         
    39.         GPIO_InitStruct.Pin =MQ_Pin;
    40.   GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    41.   GPIO_InitStruct.Pull = GPIO_NOPULL;
    42.   HAL_GPIO_Init(MQ_GPIO_Port, &GPIO_InitStruct);
    43.         
    44.         
    45.         HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13, GPIO_PIN_SET);
    46.         HAL_GPIO_WritePin(GPIOC,GPIO_PIN_14, GPIO_PIN_SET);
    47.         HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15, GPIO_PIN_SET);
    48. }
    复制代码

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?注册

    x

    评论

    21ic小喇叭 2019-3-14 17:21 回复TA
    @一路向北lm :遇到审核问题可以找我,我还奇怪呢,你以前的帖子呢 
    一路向北lm 2019-3-14 17:20 回复TA
    @21ic小喇叭 :已经做好了,就是整理帖子了 
    一路向北lm 2019-3-14 17:20 回复TA
    @21ic小喇叭 :已经坐好了,就是整理帖子了 
    一路向北lm 2019-3-14 17:20 回复TA
    @21ic小喇叭 :我的帖子老是要审核,就重新发了一个 
    21ic小喇叭 2019-3-14 17:18 回复TA
    先等为敬 
    来自 2楼
     楼主 | 2019-3-31 11:05 | 只看该作者
    本帖最后由 一路向北lm 于 2019-3-31 11:20 编辑

    ESP8266wifi??榈牡魇裕?/strong>
    对ESP8266的测试我们采用AT指令,连接电脑,打开串口助手软件,选择相应的COM端口即可。测试AT指令简单测试如下:

    1.AT:测试??槭欠翊嬖?,期待返回值:OK

    2.AT+RST 重启???/strong>

    3.AT+GMR 查看版本信息

    4.ATE0/ATE1(关闭,打开回显) 我们为了方便需要关闭回显。

    5.AT+CWMODE =2 设为AP热点模式(电脑无线网卡可以搜索到相关热点)
    ???  
    6.设置AP热点模式(AT+CWSAP_DEF ="sanqi","1234567890",5,3)其含义为:热点名称sanqi,密码 1234567890  使用通道5 加密方式为WPA2_PSK
      ???   

    好了,剩下的AT 指令大家就慢慢琢磨,这里不再演示了!








    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    来自 3楼
     楼主 | 2019-3-31 11:23 | 只看该作者
    本帖最后由 一路向北lm 于 2019-3-31 13:26 编辑

    机智云固件SDK的烧录(为了和第三方的云端通讯,我们必须要在esp8266中烧写第三方的库,下面是烧写第三方库的具体流程。)
    1.下载机智云SDK固件包

    进入机智云官网,开发者中心->下载中心->GAgent


    本次设计用的是 ESP8266,所以我们选择 ESP8266 对应的 GAgent 固件 (也可以下载旧版本,根据个人意愿吧)


    附上下载后的固件,省的大家再去下载了。


    2.准备SDK烧录软件
    准备好 机智云GAgent 固件后,需要一个固件的烧写工具。固件下载工具,我们用的是机智云官方推荐的乐鑫原厂固件烧写工具。打开界面如下

    同时也附上该烧写工具和一些配置文件,提供给大家下载。


    3.烧录SDK固件按照以下地址填充对应路径文件,分别包括以下文件:
    1. blank.bin文件  地址为0x3fe000
    2.boot_v1.5.bin文件  地址为0x00000
    3.esp_init_data_default.bin文件  地址为0x3fc000
    4.GAgent_00ESP826_04020024_17062808.bin文件,地址为0x01000
    该文件位于下载的机智云SDK库中,分为四合一文件和单独文件两个版本,这里选择单文件版本。
    烧写软件配置如下,配置完毕后先按住ESP8266wifi??榈南略匕醇透次话醇?,点击软件的start 先送复位按钮,等到下载进度在运行时松开另一个按键。








    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    来自 4楼
     楼主 | 2019-3-31 13:39 | 只看该作者
    本帖最后由 一路向北lm 于 2019-3-31 14:06 编辑

    机智云与STM32单片机通讯与调试过程:将机智云固件SDK烧录到??橹锌梢猿⑹越辛油ㄐ欧治韵?个步骤:
    1.添加一个小项目,加入如下图数据点,这里只有三路继电器和温度湿度和可燃气体数据。


    选取联网方案,这里选择wifi 芯片选择stm32F103 C8  也可以选择公共芯片,后期需要移植。然后选择生成代码包。



    2.获取调试机智云APP。在机智云下载中心-> 开发和调试工具中可以下载,这里选择安卓APP


    附上APP工具,需要可以点此链接下载


    3.修改按键引脚,实现连接网络操作。打开工程,定位到main.h 修改默认的联网的按键引脚,这里我设计的板卡按键引脚是PB11 因此改为PB11  PB10暂时备用
    同时也添加了需要的继电器引脚和MQ-2可燃气体引脚。

    我们再来看下main.c中按键联网的方式:
    按键key1 这里我们备用,硬件电路保留。


    添加了key2 使用长按操作可以配置入网。


    4.添加底层操作,打通机智云下行数据的通讯。
    定位到gizwits_product.c 文件下,添加下行用户执行操作,如下 添加了按键K1 K2 K3 操作。






    5.添加传感器驱动,打通机智云上行数据的通讯。
    定位到gizwits_product.c 文件下,在userHandle函数中添加 上行数据代码。如下 利用定时器间隔传输数据,添加了温度、湿度和可燃气体的上传。










    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    来自 5楼
     楼主 | 2019-3-31 14:10 | 只看该作者
    本帖最后由 一路向北lm 于 2019-3-31 14:37 编辑

    整体调试,需要解决了以下四个问题
    连接电路,一切准备就绪,就等着上电了!



    1.串口是否有数据输出?
    很不错,上电串口打印了数据:一次设备都可以正常初始化,等待连接网络!



    2.上电是否可以通过按键连接网络?
    打开机智云APP ,手机先连接家庭的路由器,或者别人手机的热点,建议热点名称和密码不要太复杂,点击一键配置。



    DIY的板字上电,长按key2按键,等待APP引导入网。
    经过几十秒的等待,可以发现已经连接到网络上了,真是有一大惊喜。




    3.APP是否可以控制三路继电器?
       添加继电器底层的HAL库,既可以进行测试,发现APP上的三个按键可以灵活的控制继电器的开关。


    4.APP上是否可以显示温度和湿度的变化?
      需要单独编写DHT11 的HAL库驱动,完成对温湿度的读取,然后进行对机智云端的上传。


    5.改变可燃气体的浓度APP上是否会发生改变?
    使用火机对着可燃气体???,可以看到APP端检测的变化。



    通过一个星期的系统调试,以上要求都已已经完成!







    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    6
    | 2019-3-15 08:59 | 只看该作者
    楼主??! 真是可以的??!
    7
     楼主 | 2019-3-15 12:53 | 只看该作者
    零三翟邢止胃 发表于 2019-3-15 08:59
    楼主??! 真是可以的??!

    哈哈,一般,逗大家开心
    8
     楼主 | 2019-3-16 21:30 | 只看该作者
    已更新,欢迎围观
    9
    | 2019-3-17 13:27 | 只看该作者
    为什么都没有完整的?好像都是大概框架
    10
    | 2019-3-17 13:29 | 只看该作者
    楼主能发个完整版给我不?
    11
     楼主 | 2019-3-18 10:26 | 只看该作者
    穆功义 发表于 2019-3-17 13:29
    楼主能发个完整版给我不?

    正在更新中
    12
     楼主 | 2019-3-18 10:27 | 只看该作者
    穆功义 发表于 2019-3-17 13:27
    为什么都没有完整的?好像都是大概框架

    还没更新完
    13
     楼主 | 2019-3-18 15:44 | 只看该作者
    穆功义 发表于 2019-3-17 13:29
    楼主能发个完整版给我不?

    30号之前,必须是完整的!
    14
    | 2019-3-21 21:54 | 只看该作者
    这个可以,谢谢分享,坐等更新
    15
     楼主 | 2019-3-22 16:20 | 只看该作者
    lucky-kang 发表于 2019-3-21 21:54
    这个可以,谢谢分享,坐等更新

    感谢支持
    16
     楼主 | 2019-3-31 14:45 | 只看该作者
    穆功义 发表于 2019-3-17 13:29
    楼主能发个完整版给我不?

    已经更新完了
    17
     楼主 | 2019-3-31 14:45 | 只看该作者
    lucky-kang 发表于 2019-3-21 21:54
    这个可以,谢谢分享,坐等更新

    已更新完
    18
    | 2019-3-31 19:02 | 只看该作者
    楼主这个真棒,强力推荐
    19
    | 2019-3-31 20:57 | 只看该作者
    这个做的不赖 ,膜拜大佬
    20
     楼主 | 2019-4-1 19:29 | 只看该作者

    感谢支持
    扫描二维码,随时随地手机跟帖
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    我要发帖 投诉建议 创建版块 申请版主

    快速回复

    您需要登录后才可以回帖
    登录 | 注册
    高级模式

    论坛热帖

    关闭

    热门推荐上一条 /4 下一条

    快速回复 广东快乐十分走势图 返回列表
  • “龙江二号”微卫星传回地月合影 2019-04-18
  • 中国驻泰国大使考察合艾国光中学孔子课堂 2019-04-18
  • 【清园20年】感恩大回馈!半价!半价! 2019-04-18
  • 中央纪委紧盯节点 4年来通报曝光问题近4000起 2019-04-13
  • 2013环球企业领袖宁夏圆桌会议嘉宾云集 2019-04-13
  • 《魔兽世界》未解之谜 那些仍不能被玩家们踏足的领地 2019-04-11
  • 钱江潮评 让高质量发展插上人才的翅膀 2019-04-10
  • 习近平两会期间谈社会主义核心价值观 2019-04-02
  • 文脉颂中华——黄河新闻网 2019-04-02
  • 陈小林的专栏作者中国国家地理网 2019-03-29
  • 中英航母大战谁能赢歼151枚炸弹就能炸瘫女王 2019-03-22
  • 独特“光捕捉器”可控制分子生化性质 2019-03-22
  • 女性之声——全国妇联 2019-03-19
  • 【理上网来·辉煌十九大】德国北威州经济部长:十九大报告表明中国有能力为世界做出更多贡献 2019-03-11
  • 全国小麦收获进度过八成 2019-03-07
  • 北京pk10网址 北京pk10高手技术分享 乐彩竞彩足球胜平负 秒速时时彩有官网吗 德阳彩票大奖 七星彩特区彩票论坛 北京pk10直播结果 北京PC28开奖结果 网易彩票中心 快赢481开奖视频 北京pk10怎么玩最稳妥 秒速飞艇走势规律 ck棋牌 双色球开奖结果双今天 中国体彩顶呱刮nba 秒速时时彩有假吗