ESP32C3对接阿里云生活物联网平台

2023-11-05

1.装好ESP32-VSCode开发环境

基于VSCode的ESP32开发环境的搭建

2.git阿里云代码

esp-aliyun

3.先编译例程,看看能否编译成功

在这里插入图片描述
在这里插入图片描述

4.创建分区表-增加ota分区

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

5.查看分区空间

可以看到引用的是我们自定义的空间分区
在这里插入图片描述

*******************************************************************************
# ESP-IDF Partition Table
# Name, Type, SubType, Offset, Size, Flags
nvs,data,nvs,0x9000,16K,
otadata,data,ota,0xd000,8K,
phy_init,data,phy,0xf000,4K,
ota_0,app,ota_0,0x10000,1M,
ota_1,app,ota_1,0x110000,1M,
fctry,data,nvs,0x210000,16K,
*******************************************************************************

要注意最后一个

fctry,data,nvs,0x210000,16K,

阿里云的设备是一机一码的,到时候我们需要将阿里云设备的四元组烧录到0x210000地址里面

6.擦除整片Flash

在这里插入图片描述
将…components\esptool_py\esptool\esptool.py更换成你的位置

python D:\APP\esp_idf_tools\.espressif\frameworks\esp-idf-v4.4\components\esptool_py\esptool\esptool.py erase_flash

注意:erase_flash是擦除整片flash,你在上面保存得四元组/wifi的账号密码都会被擦除

7.未烧录四元组情况下,看看会报什么错

在这里插入图片描述
没有烧录四元组就会报 wrapper_product: HAL_GetProductParam nvs_open failed with 1102 错误

8.阿里云四元组

8.1方法一:将四元组生成bin/烧录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.1.1四元组生成bin

components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py 修改成自己的目录位置

python D:/APP/esp_idf_tools/.espressif/frameworks/esp-idf-v4.4/components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py generate single_mfg_config.csv single_mfg.bin 0x4000

在这里插入图片描述

8.1.2烧录bin

components\esptool_py\esptool\esptool.py 修改成自己的目录位置

python D:\APP\esp_idf_tools\.espressif\frameworks\esp-idf-v4.4\components\esptool_py\esptool\esptool.py write_flash 0x210000 single_mfg.bin

在这里插入图片描述

8.1.3复位,看看有什么效果

在这里插入图片描述

8.2方法二:将四元组烧录到代码中

如果你觉得上面的四元组生成bin,再烧录很麻烦,可以试试下面这个方法(适合调试使用,不适合量产)

// 产品设备信息设置函数声明
int HAL_SetProductKey(char *product_key);
int HAL_SetProductSecret(char *product_secret);
int HAL_SetDeviceName(char *device_name);
int HAL_SetDeviceSecret(char *device_secret);
 
void app_main()
{
    {// 代码中配置产品设备信息,用于调试
        HAL_SetProductKey("*********");
        HAL_SetProductSecret("************");
 
        HAL_SetDeviceName("**************");
        HAL_SetDeviceSecret("*****************************");
    }
}

9.配网

9.1方法一:手机配网(一键配网),让esp32连接上wifi

9.1.1首先在阿里云平台上,将设备开启使用公版App控制

注意:一定要选择"一键配网",否则会一直在扫描通道,无法配网
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

9.1.2配网一直显示 passwd err

[crt] zconfig_get_ssid_passwd(326): SSID1: [*******]
[crt] zconfig_get_ssid_passwd(362): passwd err

解决方法:检测清楚你的四元组是否正确

9.2方法二:将WiFi账号密码写在代码里

void app_main()
{
    { // 设置wifi账号密码
        const char *ssid = "*************";
        const char *password = "*****************";
 
        conn_mgr_set_wifi_config_ext((const uint8_t *)ssid, strlen(ssid), (const uint8_t *)password, strlen(password));
    }
}

待续…

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ESP32C3对接阿里云生活物联网平台 的相关文章

随机推荐

  • C++学习——拷贝构造,拷贝赋值,静态变量,单例对象,成员指针

    十七 拷贝构造和拷贝赋值 1 浅拷贝和深拷贝 1 如果类中包含指针形式的成员变量 缺省的拷贝构造函数只是复制了指针本身 而没有复制所指向的内容 这种拷贝方式称为浅拷贝 2 浅拷贝会导致不同的对象之间的数据共享 如果数据在堆区 析构函数还会引
  • K8s系列---【资源不足:0/3 nodes are available: 1 Insufficient cpu, 2 node(s) had taint {node-role.kubernetes...

    1 背景 我用KubeSphere创建了一个工作负载 在增加副本数量时 报了下面的错 2 报错 0 3 nodes are available 1 Insufficient cpu 2 node s had taint node role
  • python中的insert函数_Python 列表 insert() 使用方法及示例

    Python 列表 insert 使用方法及示例 insert 方法将元素添加到列表中的指定索引处 insert 方法的语法是list insert index element insert 参数 insert 函数采用两个参数 index
  • The connection to the server localhost:8080 was refused - did you specify the right host or port?解决

    问题分析 环境变量 原因 kubernetes master没有与本机绑定 集群初始化的时候没有绑定 此时设置在本机的环境变量即可解决问题 问题图片 解决方式 步骤一 设置环境变量 具体根据情况 此处记录linux设置该环境变量 方式一 编
  • ubuntu中自带的ufw防火墙

    ufw是一个基于主机的 host based iptable防火墙 我使用的操作系统是Ubuntu10 04 ufw防火墙是默认安装的 下面是我用到的一些ufw命令 根据man文档整理 1 查看防火墙的状态 sudo ufw status
  • 2014年3月3日星期一(DEMO8-3,ALPHA混合)

    单位的电脑运行DX11时 好多问题 但是没法上网 因此 以后在家进行DX11 在单位进行软引擎 因为一是以后会有大例子 需要较长时间 二是从书上看的东西 问题的解决方法不用在网上找 大不了拷到优盘里 言归正传 进行8 3 实际上是ALPHA
  • Qt中的窗口类及其特点

    目录 常用的窗口类 窗口的显示内嵌窗口 QWidget内嵌窗口演示 QWidget不内嵌窗口演示 QDialog类型的窗口特点 QMainWindows窗口的特点 总结 常用的窗口类 常用的窗口类有 3 个 在创建 Qt 窗口的时候 需要让
  • 不出意外的话,2023年是AI大模型元年

    这两天听的最多的新闻莫过于 谁谁谁 AI 大模型 面向全社会开放使用 文心一言 WPSAI 讯飞星火 百川智能等等 2023年 AI大模型注定在历史上增添了浓妆淡抹的一幕 未来 AI 将与各个软件应用如影随形 如云计算一般成为基础能力 按照
  • dvwa靶场的简单练习

    此文章仅为记录自己打靶场的过程 一 dvwa靶场的搭建 1 phpstudy的下载安装以及配置 下载phpstudy 官网链接 小皮面板 phpstudy 让天下没有难配的服务器环境 xp cn 下载好后直接安装 选盘看个人喜好 安装后如图
  • spring 01 :基础(IoC控制反转、DI依赖注入)、整合Junit、整合web

    struts web层 比较简单 ValueStack值栈 拦截器 hibernate dao层 知识点杂 spring service层 重要 会多少用多少 gt 了解 spring day01 基础 IoC控制反转 DI依赖注入 整合J
  • 《数据安全法》今日实施,中国信通院联合百度等企业发起“数据安全推进计划”

    9月1日讯 数据安全法 今天正式实施 个人信息保护法 也将于11月1日实施 这标志着我国数据安全制度建设进入了新的阶段 发展数字经济 加快培育数据要素市场 必须把保障数据安全放在突出位置 为推动法律法规及监管要求的贯彻落实 促进数据安全技术
  • Raid0、Raid1、Raid5及Raid10的区别

    博主推荐谷歌搜索 看Youtube视频 国外学习网站 Github必备神器 SockBoom 或者网址 SockBoomhttps sockboom shop auth register affid 212828 一 概况 Raid Red
  • Python中 ''.JOIN()的用法

    Python join 方法 描述 将序列中的元素以指定的字符连接生成一个新的字符串 语法 语法 sep join seq 参数说明 sep 分隔符 可以为空 seq 要连接的元素序列 字符串 元组 字典 返回值 返回通过指定字符连接序列中
  • 机器自主学习创造新数据

    近年来 人工智能 AI 的发展带来了许多革命性的改变 其中 生成式AI Generative AI 也被称为AIGC Artificial IntelligenceGenerated Content 引起了人们的极大关注 生成式AI是一种使
  • 内存回收

    内存回收 内存状态分为 使用 未使用 可回收 这几点有啥区别 使用 标记状态已使用 未使用 使用地址到结束地址 可回收 标记状态为回收 怎么判断内存可回收 因为调用释放接口了 怎么回收性能高 批量回收 不要回收太频繁 避免磁盘碎片 磁盘内碎
  • QT基础:QPainte 绘制文本并设置动态设置字体演示

    QPainte 是QT里面的一个绘制控件 这里演示的是 用 QPainte 绘制一个文本 并通过 ui 上的 fontComboBox 控件 改变文本字体后触发 widget 槽函数 update 来刷新界面 演示过于简单 适合初学者食用
  • 揭开gRPC神秘面纱

    一 什么是RPC RPC Remote Procedure Call 远程过程调用 它是一种通过网络从远程计算机程序上请求服务 而不需要了解底层网络技术的思想 RPC 是一种技术思想而非一种规范或协议 常见 RPC 技术和框架有 应用级的服
  • el-submenu实现单个菜单折叠

    以上的效果就是 我打开 系统管理 折叠框 然后再打开 采集服务器 折叠框 这样一来的话就会让这个navMenu显得很高 严重的情况 就会撑破整个页面 怎么办呢 element代码实现如下
  • 进程和线程、协程的区别

    一 进程 进程是程序一次动态执行的过程 是程序运行的基本单位 每个进程都有自己的独立内存空间 不同进程通过进程间通信来通信 进程占据独立的内存 所以上下文进程间的切换开销 栈 寄存器 页表 文件句柄等 比较大 但相对比较稳定安全 协程切换和
  • ESP32C3对接阿里云生活物联网平台

    文章目录 1 装好ESP32 VSCode开发环境 2 git阿里云代码 3 先编译例程 看看能否编译成功 4 创建分区表 增加ota分区 5 查看分区空间 6 擦除整片Flash 7 未烧录四元组情况下 看看会报什么错 8 阿里云四元组