当前位置:   article > 正文

基于STM32使用ESP8266连接阿里云物联网平台(一)_stm32+esp8266阿里云物联网

stm32+esp8266阿里云物联网

最近对智能家居这一方面比较感兴趣,就研究了一下单片机使用ESP8266连接阿里云(我是新手,写博客只是为了复盘和加深理解,错误的地方请大佬指正)

一:写程序之前首先的是要了解整个程序的框架

        1、单片机驱动无线芯片

        2、无线芯片通过AT指令集进行相应的配置

        3、开通阿里云物联网平台

        4、连接阿里云平台(MQTT协议连接)

(整体逻辑大概就是这个意思)

1、单片机驱动无线芯片

        这里单片机我使用的是野火的STM32F103的指南者(板子上集成了无线模块)

        

首先我们根据原理图知道我们需要配置4个引脚才能驱动esp8266

  1. static void ESP8266_GPIO_Config ( void )
  2. {
  3. /*定义一个GPIO_InitTypeDef类型的结构体*/
  4. GPIO_InitTypeDef GPIO_InitStructure;
  5. /* 配置 CH_PD 引脚*/
  6. macESP8266_CH_PD_APBxClock_FUN ( macESP8266_CH_PD_CLK, ENABLE );
  7. GPIO_InitStructure.GPIO_Pin = macESP8266_CH_PD_PIN;
  8. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  9. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  10. GPIO_Init ( macESP8266_CH_PD_PORT, & GPIO_InitStructure );
  11. /* 配置 RST 引脚*/
  12. macESP8266_RST_APBxClock_FUN ( macESP8266_RST_CLK, ENABLE );
  13. GPIO_InitStructure.GPIO_Pin = macESP8266_RST_PIN;
  14. GPIO_Init ( macESP8266_RST_PORT, & GPIO_InitStructure );
  15. }
  16. /**
  17. * @brief 初始化ESP8266用到的 USART
  18. * @param 无
  19. * @retval 无
  20. */
  21. static void ESP8266_USART_Config ( void )
  22. {
  23. GPIO_InitTypeDef GPIO_InitStructure;
  24. USART_InitTypeDef USART_InitStructure;
  25. /* config USART clock */
  26. macESP8266_USART_APBxClock_FUN ( macESP8266_USART_CLK, ENABLE );
  27. macESP8266_USART_GPIO_APBxClock_FUN ( macESP8266_USART_GPIO_CLK, ENABLE );
  28. /* USART GPIO config */
  29. /* Configure USART Tx as alternate function push-pull */
  30. GPIO_InitStructure.GPIO_Pin = macESP8266_USART_TX_PIN;
  31. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  32. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  33. GPIO_Init(macESP8266_USART_TX_PORT, &GPIO_InitStructure);
  34. /* Configure USART Rx as input floating */
  35. GPIO_InitStructure.GPIO_Pin = macESP8266_USART_RX_PIN;
  36. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  37. GPIO_Init(macESP8266_USART_RX_PORT, &GPIO_InitStructure);
  38. /* USART1 mode config */
  39. USART_InitStructure.USART_BaudRate = macESP8266_USART_BAUD_RATE;
  40. USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  41. USART_InitStructure.USART_StopBits = USART_StopBits_1;
  42. USART_InitStructure.USART_Parity = USART_Parity_No ;
  43. USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  44. USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
  45. USART_Init(macESP8266_USARTx, &USART_InitStructure);
  46. /* 中断配置 */
  47. USART_ITConfig ( macESP8266_USARTx, USART_IT_RXNE, ENABLE ); //使能串口接收中断
  48. USART_ITConfig ( macESP8266_USARTx, USART_IT_IDLE, ENABLE ); //使能串口总线空闲中断
  49. ESP8266_USART_NVIC_Configuration ();
  50. USART_Cmd(macESP8266_USARTx, ENABLE);

这里我直接使用的是野火的源码(我比较懒),配置好后就可以进行初始化了

  1. void ESP8266_Init ( void )
  2. {
  3. ESP8266_GPIO_Config ();
  4. //to do
  5. //将色esp8266直接进行拉高使能
  6. Delay_ms(1000);
  7. ESP8266_USART_Config ();
  8. }

以上就算将esp进行配置好了

2、无线芯片通过AT指令集进行相应的配置

      测试esp的关键就是AT指令集了,这里我就简单说一下,我直接附加AT指令集的使用文档

        http://链接:https://pan.baidu.com/s/1sa5JOWT9iJpzXqx0Qd6Nnw 提取码:0u5a

        

直接去看CSDN博主「果果小师弟」的原创文章原文链接:https://blog.csdn.net/qq_39400113/article/details/107721178(自己懒得码)

3、开通阿里云物联网平台

https://iot.aliyun.com/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/675200
推荐阅读
相关标签
  

闽ICP备14008679号