STM32之串口通信WIFI上云

一、W模块的原理与应用

  • 基本概念

如果打算让硬件设备可以通过云服务器进行通信(数据上报/指令下发),像主流的云服务器有阿里云、腾讯云、华为云,以及其他物联网云平台:巴法云.......,硬件设备需要通过TCP/IP协议栈和云服务器建立连接。

通信的前提是需要建立链接,建立连接的前提是开发板有能力连接云服务器,需要借助WIFI模组实现,比较主流的是ESP系列的WIFI模块(ESP8266-01S)。

  • 模式说明
  • 硬件接线
  • 指令说明

巴法云平台提供了ESP8266的接入文档,大家可以根据巴法云平台的接入文档对WIFI模块进行参数设置。

  1. 测试指令
  1. 设置模式
  1. 连接热点
  1. 使能透传
  1. 建立连接
  1. 进入透传

二、物联网云平台的基本概述

随着物联网技术的快速发展,越来越多的设备需要接入网络以实现智能化功能,物联网平台应运而生。

物联网云平台(IoT Cloud Platform)是物联网生态系统中的核心组件,它通过提供一系列功能和服务,连接物联网设备、处理数据、支持应用开发,并确保整个系统的安全性和可扩展性。

  1. 创建主题
  1. 订阅主题

当硬件设备订阅主题成功后,则属于主题的订阅者,此时如果云服务器向该主题推送消息,则所有订阅了该主题的设备都会收到该消息。

注意:向巴法云发送消息时,必须按照以上的字段进行消息的构造,并且每一条消息都必须以"\r\n"作为结束标志。

  1. 发布消息
  1. 远程控制

可以使用巴法云平台提供的微信小程序(巴法云)推送消息,当然也可以选择把巴法云接入到米家APP,这样可以通过小爱同学进行语音控制。

作业:要求通过巴法云的微信小程序点击灯泡设备(小程序会推送消息给云服务器),要求本地设备订阅灯泡主题,所以本地设备作为订阅者,可以收到来自云服务器的消息,要求根据云服务器下发的指令来对开发板的LED灯进行控制。

提示:巴法云和本地设备的TCP长连接是60s左右,所以应该确保60s内维持心跳,所以可以使用定时器实现心跳的定时发送。

三、设备利用ESP8266获取心知天气

  • 登录账号
  • 添加产品
  • 得到秘钥
  • 使用流程
  • 程序设计

大家可以看到,可以利用HTTP服务向心知天气的服务器来请求天气信息,HTTP协议是支持GET请求。

接口地址:api.seniverse.com/v3/weather/now.json?key=your_api_key&location=beijing&language=zh-Hans&unit=c

作业:自己注册心知天气的账号,利用HTTP协议的GET请求获取广州的天气信息并输出到PC端的上位机软件。

四、JSON格式的构造与解析

  • 基本概念

一般使用HTTP协议或者MQTT协议,服务器或者客户端在网络中传输数据时都采用JSON格式(JavaScript Object Notation,JavaScript对象表示法),JSON不是编程语言,JSON是一种轻量的数据交换方式,常用于网络通信中。

  • 数据格式

JSON的格式中一般是由对象和数组构成,对象中包含键值对的无序序列,并且在JSON格式中对象是用 { } 表示的,键值对是由键和值组成,键的名称必须是字符串 " " ,值的类型则是任意的( 整数、浮点数、字符串、NULL、布尔型、对象、数组 ), 并且如果值的类型是对象或者数组,是可以进行嵌套的。在JSON格式中数组是用 [ ] 表示的。 一般JSON格式最外层都是一个对象。 另外,对象中如果有多个键值对,则中间使用英文逗号进行分隔,并且键值对中 键和值 中间使用冒号 : 。一般服务器的响应数据的格式都采用JSON格式,并且是以字符串的形式进行返回。

  • 移植流程

所以可以在MCU中移植cJSON库,cJSON库采用了C语言进行设计,可以对JSON格式的数据进行解析以及可以构造JSON格式,需要从代码托管网站Github、Sourceforge、Gitee下载开源的库源码包。

作业:移植cJSON库到STM32工程中,并对心知天气的JSON数据进行JSON解析,获取广州的温度,并输出到串口调试助手。

拓展作业:要求利用WIFI模块实现接入AI大模型,本地设备把提问内容发给大模型,大模型把响应结果通过串口进行接收。 提示:定义的缓冲区要大一些,可能需要修改启动文件的堆栈大小。

相关推荐
点灯小铭6 小时前
基于单片机的多功能LCD音乐播放器设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
shansz20207 小时前
暂时无法解决的关于STM32F103的RTC日期更新问题
stm32·嵌入式硬件·实时音视频
2501_927773077 小时前
嵌入式——时序IIC
单片机·嵌入式硬件
LS_learner10 小时前
针对VMware Workstation虚拟机无法联网问题排查
嵌入式硬件
项目題供诗10 小时前
51单片机入门(七)
单片机·嵌入式硬件·51单片机
来自晴朗的明天11 小时前
1、光耦隔离电路
单片机·嵌入式硬件·硬件工程
国科安芯12 小时前
面向星载芯片原子钟的RISC-V架构MCU抗辐照特性研究及可靠性分析
单片机·嵌入式硬件·架构·制造·risc-v·pcb工艺·安全性测试
三伏52213 小时前
Cortex-M3权威指南Cn第十章——笔记
笔记·单片机·嵌入式硬件·cortex-m3
独处东汉13 小时前
freertos开发空气检测仪之按键输入事件管理系统设计与实现
人工智能·stm32·单片机·嵌入式硬件·unity
小灰灰搞电子13 小时前
STM32/GD32 字节对齐详解
stm32·单片机·嵌入式硬件