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大模型,本地设备把提问内容发给大模型,大模型把响应结果通过串口进行接收。 提示:定义的缓冲区要大一些,可能需要修改启动文件的堆栈大小。

相关推荐
wenchm1 小时前
细说STM32单片机FreeRTOS将任务通知用作计数信号量的方法及其应用实例
stm32·单片机·嵌入式硬件
尚久龙2 小时前
STM32接收红外遥控器的遥控信号
stm32·单片机·嵌入式硬件
LaoZhangGong1233 小时前
测试W5500的第3步_使用ioLibrary库创建TCPServer
单片机·嵌入式硬件
plmm烟酒僧3 小时前
基于 STM32 的 PC ARGB 风扇控制器设计与实现
stm32·单片机·嵌入式硬件·argb·台式电脑风扇·机箱散热·pwm风扇控制
夜月yeyue3 小时前
手撕I2C和SPI协议实现
linux·c++·stm32·单片机·嵌入式硬件
O。o.尊都假都4 小时前
STM32之串口通信蓝牙(BLE)
stm32·单片机·嵌入式硬件
海绵宝宝的月光宝盒5 小时前
[STM32] 5-1 时钟树(上)
c语言·笔记·stm32·单片机·嵌入式硬件
O。o.尊都假都6 小时前
STM32之蜂鸣器和按键
stm32·单片机·嵌入式硬件
陌夏微秋7 小时前
STM32单片机GUI系统1 GUI基本内容
stm32·单片机·嵌入式硬件·硬件架构·硬件工程·智能硬件