ESP32-idf学习(三)esp32C3连接iot

一、前言

上一篇用蓝牙作为通信方式,虽然勉强完成了控制,但结果显然不是那么符合我们的预期,既然用蓝牙还需要研究一段时间,那我们就先整一些现成的,不需要研究的!iot云平台!这里当然也是通过wifi的方式。

二、开发准备

1、硬件了解

这是官方手册中wifi的特性描述,同样也是2.4g,速率150M是比我之前在stm32上用过的esp8266快的,对我的预期来说那是够够的了,毕竟我顶多就控控灯开关,上报一下传感器数据之类的。

2、例程选择

我一贯都是用mqtt连接的腾讯云,所以我现在也是选择mqtt的例程,然后这里还有ssl、tcp和ws,我选择的是tcp,ssl强调安全加密,ws是适配浏览器环境的,tcp没有加密而且轻量,直接通过1883端口通信。

3、例程分析

这个例程就比较简单了,只对连接mqtt来说的话,其实前边都不是我们需要关心的内容,直接从网络连接 example_connect 这里看起就好

这里有注释,大意就是根据在menuconfig中的选项(wifi或以太网)自动初始化对应的网络模块,而且要提前在menuconfig中设置wifi的参数。(我也是百度翻译的)

但是这个函数,我是没找到,可能不是用C来实现的吧(瞎猜的),因为这里所说的menuconfig,在vscode本来就是点一下那个设置的图标,这里配置后边再说

然后mqtt_app_start就是,mqtt连接的开始

点开,这里有一个config的结构体,但是跟我记忆中的不太一样,我记得好像这个结构体以前是输入端口,username和password之类的就行来着

点进去看看:

现在分了好几个,我将每一个都折叠了

就是mqtt的参数和任务的参数,我看了一下,broker_t设置url,credentials_t设置username、client_id、password,其他保持默认就好,具体设置后边说。至于全部参数的详细作用,其实我也并不能都说得上来,有需要大家自行百度!

三、修改例程

1、设置wifi名称和密码

点一下下边的这个设置,就会发现新大陆兄弟们

直接搜索wifi就好,然后输你的wifi名称和密码,注意是2.4g那个,下边的参数就用默认的就好,改完点右上角保存

2、设置mqtt的参数

因为是测试,所以我直接将腾讯云设备信息下边那里有直接给出来的三元组直接宏定义了,服务器地址要加上mqtt://,不要url会报错

如果是想做成通用点的程序,三元组就要通过计算了,算法官方有:

物联网通信 设备基于 TCP 的 MQTT 接入_腾讯云

服务器地址的话可以通过snprintf,例如:

char endpoint[100];
snprintf(endpoint, sizeof(endpoint), "mqtts://%s.iotcloud.tencentdevices.com", ClientID);

然后只需要在mqtt_app_start这个函数,注释掉本来的url,加上我们的参数,就实现简单的连接了

3、检验是否激活设备

烧录程序:

成功连接wifi后会显示ip地址

后边的就是mqtt订阅成功,成功激活设备了

在平台上看一看

4、增加上报led状态和接收led开/关指令

①增加头文件

②增加宏定义

topic在腾讯云上可以直接看到

③增加变量:

增加了一个灯的开关状态变量

一个任务句柄

一个环形结构

还有一个信号量

④增加函数

1、led相关

2、存储区部分

3、回调函数修改:

4、创建任务

我把原先的mqtt_app_start注释不用,自己创建了一个任务,还有前边一些初始化

任务也很简单,就是有中断有数据接收时,直接进入数据处理,如果是开关的话就执行led开/关的操作,并直接上报灯的状态。如果没有的话就5s上报一次。

但其实这里5s并不准确,因为每次上报会有数据回复,又会跳转到处理数据这里。

四、烧录验证

1、串口打印消息查看

这里是主动上报的,我加了一帧打印计数

这是控制的

2、平台查看

可以看到,数据一直有上报,并且突变时会直接上

3、实际效果

esp32C3基于idf 腾讯云mqtt控制灯亮灭视频-CSDN直播

五、总结

中断这里我把数据存到存储区,然后AI搜了一下这个环形缓冲区结构,再自己修改了下,之前都是用的静态申请空间的。

一整个流程下来,其实跟我之前STM32+ESP8266是没什么区别的。感兴趣可以对比下。

STM32+ESP8266连接腾讯IOT上传数据(四)_stm32通过esp8266上传数据到云平台-CSDN博客

比stm32+eps8266这种方法省了一个cpu,稳定性还没测,我准备到时候把功能写完,再一直挂着试试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/83247.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Axure RP11安装、激活、汉化

一:注册码 Axure RP11.0.0.4122在2025-5-29日亲测有效: 49bb9513c40444b9bcc3ce49a7a022f9

高光谱成像相机:基于高光谱成像技术的玉米种子纯度检测研究

种子纯度是衡量种子质量的核心指标之一,直接影响农作物产量与品质。传统检测方法(如形态学观察、生化分析)存在耗时长、破坏样本、依赖人工等缺陷。近年来,高光谱成像技术因其融合光谱与图像信息的优势,成为无损检测领…

Excel 中的TEXTJOIN用法(基础版),将Excel 多个单元格内容按条件合并到一个单元格

1.新建一张数据透视表 选择你需要的维度所在的列 2.点击确定生成,勾选右边的维度 3.选中单元格,通过 ShiftF3 查看函数参数 第一个参数:分隔符,用来分隔合并的文本,不需要分隔用"" 第二个参数:…

2025.05.28【Choropleth】群体进化学专用图:区域数据可视化

Load geospatial data Start by loading your geospatial data in R, and build a basic plot. Data from the package The cartography comes with a set of geospatial data included. Learn how to use it to build a choropleth map. 文章目录 Load geospatial dataData …

QT-Creator安装教程(windows)

目录 1,下载 1.1 镜像源下载 1.2 运行下载的exe文件 1.2.1 QT5 版本安装 1.2.2 QT6 版本安装 1.2.3 如何在安装完成之后,继续添加扩展包 1,下载 1.1 镜像源下载 地址:Index of /qtproject/

Deepin 23.10安装Docker

个人博客地址:Deepin 23.10安装Docker | 一张假钞的真实世界 Deepin 是基于 Debian 的国产 Linux 发行版,安装 Docker Desktop 可能会遇到兼容性问题,因为 Docker Desktop 官方主要支持 Ubuntu/Debian/Red Hat/Fedora/Arch 等主流发行版&…

ARXML解析与可视化工具

随着汽车电子行业的快速发展,AUTOSAR标准在车辆软件架构中发挥着越来越重要的作用。然而,传统的ARXML文件处理工具往往存在高昂的许可费用、封闭的数据格式和复杂的使用门槛等问题。本文介绍一种基于TXT格式输出的ARXML解析方案,为开发团队提供了一个高效的替代解决方案。 …

2026-2030工业发展解读系列:PLM/PDM系统解析报告(预览版)

1 PLM系统的核心价值与功能定位 PLM是一种贯穿产品全生命周期的战略性数字化工具,覆盖从概念设计、研发、生产到退市的全流程管理。 PLM系统功能模块包含数据管理、流程协同、项目管控等核心,支持从三维设计到生产制造的全链条数字化协同。 1.1数据管…

Go语言中的rune和byte类型详解

1. rune类型 1.1. 基本概念 1. rune是Go语言的内建类型,它是int32的别名,即32位有符号整数; 2. 用于表示一个Unicode码点,全拼Unicode code point; 3. 可以表示任何UTF-8编码的字符; 1.2. 特点 1. 每…

【中国・珠海】2025 物联网与边缘计算国际研讨会(IoTEC2025)盛大来袭!

2025 物联网与边缘计算国际研讨会(IoTEC2025)盛大来袭! 科技浪潮奔涌向前,物联网与边缘计算已成为驱动各行业变革的核心力量。在此背景下,2025 物联网与边缘计算国际研讨会(IoTEC2025)即将震撼…

Photoshop使用钢笔绘制图形

1、绘制脸部路径 选择钢笔工具,再选择“路径”。 基于两个点绘制一个弯曲的曲线 使用Alt键移动单个点,该点决定了后续的曲线方向 继续绘制第3个点 最后一个点首尾是同一个点,使用钢笔保证是闭合回路。 以同样的方式绘制2个眼睛外框。 使用椭…

# 使用 Selenium 爬取苏宁易购优质评价

使用 Selenium 爬取苏宁易购优质评价 在数据挖掘和网络爬虫领域,Selenium 是一个强大的工具,尤其适合处理动态网页内容。本文将通过一个实际案例,展示如何使用 Selenium 爬取苏宁易购上的优质评价,并将这些评价保存到本地文件中。…

Windows上用FFmpeg推流及拉流的流程概览

1. 视频采集与推流(Windows FFmpeg) 采集设备:Windows上的摄像头,比如“Integrated Camera”。 采集方式:FFmpeg通过 dshow 设备接口读取摄像头。 推流协议:你可以选择推到 RTMP 或 RTSP 服务器。 推流…

研华工控机安装Windows10系统,适用UEFI(GPT)格式安装

主要硬件 主板:AIMB-787 、CPU:i5-6500 U盘启动工具:通过网盘分享的文件:rufus-3.20.zip 链接: https://pan.baidu.com/s/1YlFfd-_EhFHCG4sEHBQ8dQ?pwdQT12 提取码: QT12 Win10 22H2 Pro 纯净版系统:通过网盘分享…

什么是数字化转型,如何系统性重构业务逻辑

“数字化转型不是把原来的流程搬到系统里,而是用数据和技术重新定义业务逻辑,提升决策速度、客户体验和组织效率。” 光这一句话,其实就够用了。 真懂的人,一听这话就点头;不懂的人,只觉得听起来挺高级。…

windows安装启动elasticsearch

elasticsearch下载地址: https://www.elastic.co/downloads/past-releases#elasticsearch 1 Elasticsearch 的 Java 要求(Elasticsearch版本选择): Elasticsearch 7.0~8.x 支持 Java 11(LTS)。Elasticsea…

thc-ssl-dos:SSL 压力测试的轻量级工具!全参数详细教程!Kali Linux教程!

简介 THC-SSL-DOS 是一款用于验证 SSL 性能的工具。 建立安全的 SSL 连接需要服务器比客户端高 15 倍的处理能力。 THC-SSL-DOS 利用这种不对称特性,通过使服务器过载并使其断网。 此问题影响当今所有 SSL 实现。供应商自 2003 年以来就已意识到这个问题&#x…

comfyui利用 SkyReels-V2直接生成长视频本地部署问题总结 1

在通过桌面版comfyUI 安装ComfyUI-WanVideoWrapper 进行SkyReels-V2 生成长视频的过程中,出现了,很多错误。 总结一下,让大家少走点弯路 下面是基于搜索结果的 ComfyUI 本地部署 SkyReels-V2 实现长视频生成的完整指南,涵盖环境配…

广告拦截器:全方位拦截,畅享无广告体验

在数字时代,广告无处不在。无论是浏览网页、使用社交媒体,还是观看视频,广告的频繁弹出常常打断我们的体验,让人不胜其烦。更令人担忧的是,一些广告可能包含恶意软件,威胁我们的设备安全和个人隐私。AdGuar…

【配置vscode默认终端为git bash】

配置vscode默认终端为git bash 点击左下角小齿轮,点击设置,搜索terminal.integrated.profiles.windows,点击在setting.json中编辑 第一部分是当前的所有的终端,第二部分是配置默认的终端"terminal.integrated.defaultProfi…