正点原子STM32F103+ESP8266使用工程模板接入机智云的详细步骤

正点原子STM32mini开发板+ESP8266接入机智云

博主是一位刚刚接触STM32的小白,在朋友的建议下开始捯饬机智云,虽然机智云的接入方式已经十分简单,但奈何博主过于小白,在学习的过程中因为经验不足走了很多弯路,具体可以见我的另一篇博客 链接 。所以在此就写一篇小白教程希望能帮助到大家。
本教程适用于正点原子STM32mini开发板

机智云平台设置

  1. 首先登陆机智云开发者中心,新建一个产品
    创建新产品
  2. 填写产品分类,产品名称和技术方案填写产品分类,产品名称和技术方案
  3. 按照开发向导根据需要设定数据点设定数据点

固件烧写

要将机智云配套的GAgent固件烧写进ESP8266中,才能实现与机智云平台的通信。

  1. 下载所需要的GAgent固件和ESP8266烧录软件,这两项可以从机智云官网和乐鑫官网下载。GAgent固件ESP8266烧录软件GAgent固件ESP8266烧录软件
  2. 将ESP8266正确连接到电脑,根据机智云官方的教程烧录固件。烧写教程
    注意:
    1. 需要使用串口转USB芯片,没有串口转USB的可以使用正点原子STM32开发板上的芯片,只需要将连接RXD/TXD与单片机串口的跳线帽拔下来,就可以使用了。
    2. IO_0口需要稳定接地
    3. 如果烧写失败,请多次尝试或更换较短的杜邦线
    4. 烧写速度可能较慢,请耐心等待。

代码包下载

在机智云选择MCU开发,下载“其他平台”的代码包。
其中Product Secret可以在产品基本信息中找到

下载解压后可以得到三个文件夹和一个指导手册以及一个日志文件

模板下载

可以使用博主已经修改过的正点原子机智云例程 链接

代码移植

为了简化代码移植的步骤,我们直接在已经移植完成的工程中覆盖刚刚下载的代码包中Gizwits和Utils文件夹的方法

  1. 将Gizwits和Utils文件夹直接覆盖复制到下载好模板中
  2. 在MDK中打开模板工程
  3. 修改gizwits_product.c
    1. 在gizwitsEventProcess()函数中添加不同事件所需要进行的操作,如控制LED灯
    2. 在userHandle()函数中添加传感器信息获取并将数据传入currentDataPoint中,如
      void userHandle(void)
      {
      	currentDataPoint.valueLED0=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8);
      }
      
    3. 在mcuRestart()函数中加入以下两行代码,作用是STM32软件复位
      void mcuRestart(void)
      {
      	__set_FAULTMASK(1);
      	NVIC_SystemReset();
      }
      
    4. 将uartWrite()函数中的部分代码换为如下
      for(i=0; i<len; i++)
      {
          USART_SendData(USART3, buf[i]);//STM32 test demo
      	while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET);
       	if(i >=2 && buf[i] == 0xFF)
      	{
        		USART_SendData(USART3, 0x55);//STM32 test demo
      		while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET);
      	}
      }
      
    5. 在gizwits.h中声明gizTimerMs();函数,即添加
      	void gizTimerMs(void);
      

硬件连接

开发板ESP8266
PB10RXD
PB11TXD
GNDGND
5VVCC

IO_0和RST均悬空

网络配置

  1. 首先要下载机智云产品调试APP 链接
  2. 开发板连接电脑,打开串口调试助手,波特率115200
  3. 打开手机APP,可以直接跳过登陆,不影响使用
  4. 点击右上角的加号
  5. 选择一键配置
  6. 输入WiFi名和密码,***注意此时手机必须连接在该WiFi下***
  7. 选择厂家乐鑫
  8. 在此界面等待
  9. 按下开发板上的KEY1,进入AirLink模式,此时串口助手显示如图
  10. 点击shoujiAPP上的我已完成以上步骤
  11. 等待连接完成即可.
希望能帮到大家
### 回答1: STM32F103ESP8266是常用的嵌入式系统开发模块。STM32F103是一款具有高性能、低功耗的ARM Cortex-M3内核的微控制器,而ESP8266则是一款低成本、高集成度的WiFi模块。下面是一个关于这两个模块的源码的简要说明。 STM32F103的源码: 在STM32F103的源码中,开发者可以使用Keil或者CubeMX等开发工具进行开发。开发者需要编写C语言代码,通过使用相应的库函数和寄存器配置,实现所需的功能。通常情况下,首先需要设置GPIO引脚,然后选择合适的外设进行配置,例如串口、定时器、ADC等等。源码中也包含了中断处理函数,用于处理外部事件的中断请求。开发者可以根据自己的需求,编写相应的源码来实现自己的功能。 ESP8266的源码: ESP8266的源码通常使用C语言进行开发。开发者可以使用Arduino IDE或者ESP-IDF等开发工具进行开发。ESP8266提供了丰富的库函数和API接口,开发者可以通过这些函数和接口,实现与WiFi相关的功能,例如连接到无线网络、发送和接收数据等。开发者还可以通过AT指令与模块进行通信,以完成一些底层的配置,例如WiFi模式切换、网络的连接和断开等。开发者可以根据自己的需求,编写相应的源码来实现自己的功能。 总结: STM32F103ESP8266都是广泛应用于嵌入式系统开发的模块。STM32F103的源码开发主要是基于ARM Cortex-M3内核的微控制器,而ESP8266的源码开发则主要是针对WiFi模块。开发者可以根据自己的需求,选择相应的开发工具和编程方法来进行开发。无论是STM32F103还是ESP8266,都提供了丰富的库函数和API接口,开发者可以通过合理编写源码来实现各种复杂的功能。 ### 回答2: STM32F103是一款32位ARM Cortex-M3内核的微控制器,而ESP8266是一款低成本且高性能的Wi-Fi模块。在使用STM32F103ESP8266进行开发时,一般是将它们连接在一起,实现Wi-Fi功能。 STM32F103的源码可以使用Keil MDK等开发工具来编写和烧录,可以通过引脚连接STM32F103ESP8266进行通信,完成数据的收发功能。通过编写源码,我们可以利用STM32F103的丰富外设资源,如GPIO、UART、SPI等功能,控制ESP8266模块的连接和数据传输。 在源码中,我们可以设置STM32F103的引脚,将其与ESP8266的引脚连接,确保相互之间能够正常通信。通过串口通信,可以与ESP8266模块进行命令交互,例如发送AT指令来配置Wi-Fi网络和连接服务器。同时,也可以通过SPI或者I2C等接口与ESP8266模块进行数据的收发,实现与其他设备的通信。 此外,在源码中我们还可以设置STM32F103的定时器和中断,以实现网络连接的超时判断和数据的定时发送。通过编写合适的源码,我们可以灵活地控制和利用STM32F103ESP8266的功能,并实现复杂的应用,如远程控制、物联网等等。 综上所述,STM32F103ESP8266结合使用,通过编写源码实现数据的收发控制。这样的组合可以在嵌入式系统中实现Wi-Fi功能,为应用带来更多的便利和可能性。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值