📢 协会培训计划

下载中心提供了一些提到的软件,以下是个人整理的一些网络资源,仅代表个人观点,有需要的同学可以查看

蓝色字都是跳转教程的链接

培训内容 预计时间 负责人 培训地点
引导培训见面会 2024年10月18日19:30 陈健锋 T3-307
万用表使用基础与基本电路认识培训计划 2024年10月25日19:30 黄海东 T3-307
C语言与STM32基础培训计划 2024年11月2日19:30 黄泉清 L2-413、L2-403
GPIO——按键、红外传感器循迹培训计划 2024年11月9日19:30 庞儿茗 L2-413、L2-403
STM32与HC05蓝牙串口通信培训计划 2024年11月15日19:30 王旭晖 L2-413、L2-403
TB6612电机驱动直流电机培训计划 2024年11月22日19:30 陈健锋 L2-413、L2-403
I2C-OLED的显示培训计划 2024年11月29日19:30 胡志勇 L2-413、L2-403
绘制PCB-立创EDA培训计划 2024年12月2日19:30 黄海东 L2-413、L2-403
后续更新时间表,敬请期待!




编程语言基础

随着嵌入式系统的广泛应用,对系统性能的要求也日益提高。C语言作为嵌入式系统开发的主要编程语言,其优化策略的研究具有重要意义。通过对C语言程序的优化,可以提高系统的执行效率,减少内存占用,降低功耗,从而满足嵌入式系统的实际需求。下面是一些关于学习C语言的网络资源。因人而异,挑选认为合适自己学习的最为适宜。

大一的小伙伴可以先不学Python,因为Python是面向对象编程,而C语言是面向过程编程,两者有很大的区别。如果想要学习Python,可以等到大二再学习,因为大二一些同学会有Python的课程,那时再学习Python会更容易上手。


Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。


硬件基础知识

电路基础在嵌入式开发中至关重要,它帮助开发者设计和调试硬件,选择和连接元件,处理模拟与数字信号,排查故障,优化功耗,以及确保电磁兼容性。此外,掌握电路知识还有助于PCB设计和通信接口的实现,从而提高系统的性能和稳定性。整体而言,电路基础是构建高效可靠的嵌入式系统的核心要素。

找到了两篇详细讲述MCU概念及架构的文章,有点长,想要了解的小伙伴可以看一下。
  • 一文看懂ARM Cortex-M处理器: CSDN链接

  • MCU的基本概念、原理、分类、特点和应用:CSDN链接


单片机的协议

    常见接口技术: GPIO(通用输入输出接口)、
    UART(串口通信协议)、
    而这个有时候就需要使用串口助手,有网页与本地两种版本,本地版本在下载中心可下载。
    I2C、SPI等接口协议的基础学习与应用。
  • STM32上常用的几个通信协议简介及相关代码: CSDN链接


开发环境及其固件库

  • 标准库是STM32官方提供的软件开发包,它提供了一系列的函数和宏定义,用于简化STM32的开发工作。标准库包含了GPIO、UART、I2C、SPI等接口协议的基础学习与应用,标准库的代码量相对较大,但是它的功能比较全面,适合初学者学习和使用。
    这时候就需要使用到Keil或者IAR等IDE,我们这里使用的是Keil,Keil是一款非常流行的嵌入式开发工具,它支持多种微控制器和开发板,包括STM32系列。Keil提供了丰富的开发工具和功能,包括代码编辑、编译、调试、仿真等,可以大大提高开发效率。keil在我们的下载中心可以下载到。

    keil5下载:戳我下载

  • 安装完并配置完了,那教程呢?这肯定少不了江科大,所以....戳我看哔哩哔哩江科大的STM32教程
  • 当然,还有很多人或者团体写了教程,其中嘉立创也写了很多入门教程与移植历程,我给出了STM32F103C8T6的例子:
    STM32入门教程        STM32模块移植手册
  • 或者有我们粤嵌线上平台账号的同学,可以看里面的课程,讲的真的很好。

    HAL库是ST公司目前主力推的开发方式。它的出现比标准库要晚,但其实和标准库一样,都是为了节省程序开发的时期,而且HAL库尤其的有效。自从ST公司推出HAL库来替代原有的标准库,HAL库开始慢慢的被广大STM32开发者所接受,现在已经在实际的项目开发中大量使用,HAL库使得项目的移植变得简单容易,但是对于初学者而言,刚开始接触有些晦涩难懂。建议先把标准库学会。

    HAL库的编程环境可以多样,比如Keil、IAR、STM32CubeIDE等,可以使用STM32CubeMX搭配keil和直接使用STM32CubeIDE.这些均可以在我们的下载中心可以下载到。
    视频教程必然是KeySking,缺点就是更新有点久,至今都没有更新完:哔哩哔哩KeySking

    还有就是野火的,野火的教程比较详细,而野火的教程用的是STM32F103ZET6,STM32F4的,但是原理是一样的,可以参考一下:哔哩哔哩野火        野火在线文档

    我们用的比较少,就不再细讲...

    PCB设计与制作

    这里我们的教程推荐的是立创EDA专业版.其他的EDA工具,如kicad,Altium Designer等我这也不放出教程了,感兴趣的小伙伴可以了解一下。

    立创EDA标准版:网页版直达


    立创EDA专业版:网页版直达


    标准版官方教程:点我直达


    专业版官方视频教程:哔哩哔哩视频

    嘉立创目前是每个月上限领取两张打印PCB的券,工艺为有铅喷锡的,如果通过嘉立创的PCB设计考试,可以把一张有铅喷锡换成沉金工艺的。
    沉金工艺具有高导电性、耐腐蚀性、美观等优点,适用于高频、高速信号传输的PCB;喷锡工艺成本低,焊接性能良好,适用于一般信号传输和成本敏感型产品。制造商需根据产品要求选择合适工艺。
    当然,我们了解目前可以不用了解这些,因为目前我们设计的PCB要求的性能不会这么高,所以不太用纠结是沉金还是有铅喷锡(白嫖就完事了!)
    翻了翻,嘉立创居然有免费打样的教程!

    嘉立创官方免费打板攻略:免费打板


    而捷配也有免费打样,2024年9月19日捷配又改革了,个人每月领取一张1-6层免费打样券 单双面板,铝基板,3张 订单总金额≤200元全部减免, 4层板,5张 订单总金额≤300元全部减免, 6层板,5张 订单总金额≤500元全部减免。也算能免费打板了:免费打板


    机器视觉

    视觉处理,顾名思义是指对视觉图像进行预处理,以获得我们想要的目标,并将其提供给计算机进行处理。图像就是数据。常见的视觉处理可以有python、matlab、c++进行对图像进行提取图像、图像裁剪、灰度变换、二值化处理、均值滤波、特征提取、边缘检测、大金算法等等等的图像操作。这时候我们就要用python的opencv或者matlab来对图像的处理了。 这时候我们就需要学习python或者Matlab了,当然,我们也可以用c++来进行图像处理,但是c++的库比较少,所以用python或者matlab来处理图像是比较方便。

    opencv学习教程:菜鸟教程的opencv文字教程

    opencv-python学习教程:黑马程序员图像处理OpenCV入门教程

    matlab学习教程:MATLAB图像处理教程

    matlab学习教程:matlab图像处理基础文字版

    OpenMV是一个开源的机器视觉模块,它集成了摄像头、处理器和传感器,可以用于图像处理和机器视觉任务。OpenMV模块具有以下特点:

    1. 开源:OpenMV模块的源代码是开源的,用户可以根据自己的需求进行修改和定制。

    2. 低成本:OpenMV模块的价格相对较低,适合预算有限的用户。

    3. 高性能:OpenMV模块集成了高性能的处理器和摄像头,可以处理复杂的图像处理任务。

    4. 灵活:OpenMV模块可以连接到各种传感器和执行器,实现更复杂的机器视觉任务。

    5. 简单易用:OpenMV模块提供了丰富的API和示例代码,用户可以轻松地开始使用。

    但是最好不要买某瞳的Openmv,溢价太严重,我的建议是去淘宝买一个STM32H750的开发板,商家并提供Openmv的固件,自己烧录进去,再买一个二十出头的OV5640摄像头,这样性价比更高。(或者自己做一个OpenMV这个更便宜)

    协会在2024-2025学期进行了OpenMV的培训,大家都或多或少的懂了一些怎么视觉处理,作为一款入门级的视觉模块,它不需要很复杂的部署环境,只需要下载好python环境和OpenMVIDE就可以直接使用。

    OpenMVIDE下载链接: 星瞳国内下载 OPENMV官方下载

    虽然星瞳溢价严重但是他们的教程还是不错的:星瞳教程

    我们学习完openmv就可以考虑让他和stm32串口连接实时传输数据,这样就可以实现openmv负责视觉处理,得到处理结果并预期的让openmv传输命令让stm32负责控制,这样就可以实现一个简单的视觉系统了。但是要怎么实现他们之间的通信呢?OpenMV与STM32单片机通信

       在嵌入式系统和计算机视觉领域,OpenMV和OpenCV代表了两种不同的技术路径。OpenMV作为一个集成了摄像头和微控制器的硬件模块,主要面向初学者和简单的嵌入式应用,使用Python编程语言,提供了简化的API和内置的例程,适合基本的图像处理任务。然而,其功能和性能相对有限,难以应对复杂的计算机视觉需求。 相比之下,OpenCV作为一款开源的计算机视觉库,具有强大的功能和广泛的应用场景。它支持多种编程语言,如C++和Python,并能在Linux等操作系统上高效运行。OpenCV不仅提供了丰富的图像处理和计算机视觉算法,还支持深度学习模块,使其在处理复杂任务时表现出色。特别是,OpenCV可以与Linux操作系统紧密结合,利用Linux的强大计算能力和灵活性,运行诸如YOLO(You Only Look Once)等先进的实时目标检测模型。这种组合不仅能够实现高效的图像处理和目标识别,还能根据具体需求进行高度定制和优化,为复杂的计算机视觉应用提供了强大的支持。

       接触嵌入式Linux我们需要了解一些基本知识,如树莓派、香橙派、鲁班猫、jetson、立创泰山派类似的linux开发板,我们称为微电脑,他们就是一个独立的系统,接上鼠标键盘显示器就可以使用(甚至可以使用他们打游戏),大多Linux开发板都支持Ubuntu,这个系统很适合在嵌入式Linux上使用,结合我们之前学习的opencv就可以在Linux开发板上使用opencv进行图像处理了。 如何流畅的使用这个系统,我们就需要学会如何使用Ubuntu的操作,如安装软件、使用终端、文件管理、网络配置等操作。Linux Ubuntu 入门基本命令

      或者有我们粤嵌线上平台账号的同学,可以看里面的课程,讲的真的很好。

    蓝色字都是跳转教程的链接

       我们学习Linux首先是需要了解Linux是什么,我们一般指的是GUN/linux ,它是一种免费使用和自由传播的类UNIX操作系统,它是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
      嵌入式Linux开发板,大多都可以使用Ubuntu,他是由Debian衍生而来,Ubuntu的版本号是根据年月来命名的,而你问我Debian是什么,它由Linux内核衍生而来。少数的Linux开发板使用的是其他系统,如树莓派使用的是Raspbian OS(基于Debian),香橙派使用的是Orange Pi OS(基于arch Linux)。说了这么多Linux,其实他们几乎是通用的,少部分的命令可能跟其他Linux开发板不一样。
    比如基于debian的Linux开发板,使用apt-get来安装软件,而基于arch的Linux开发板使用pacman来安装软件。
      一般购买的嵌入式Linux开发板(无emmc版本),都有选择有无储存卡(SD卡)的套餐,储存卡是用来装系统的,有没有都可以自己准备,发到货的时候都是一张空的SD卡,需要自己烧录系统,下面是常见嵌入式Linux开发板烧录系统的教程:
    树莓派烧录系统及其配置新系统教程
    鲁班猫烧录系统及其其他完整教程
    香橙派烧录系统教程

      进去之后就是连接开发板,如果我们不想用额外的显示器显示那个linux开发板的界面怎么办?很简单,使用串口连接Linux开发板配置wifi网络,并使用Windows的Realvnc(VNC Viewer)与Linux开发板连接。我们以树莓派为例:用串口登陆树莓派配置wifi网络  使用 VNC 远程访问树莓派(注意,其他linux开发板可能不会自带vnc,所以需要自己安装)如果不想使用串口连接,也可以使用网线连接,使用ssh连接,香橙派首次通过网线SSH连接
      Ubuntu这类的系统毕竟是系统,所以让你的开发板保证软件最新版本很重要,我们以Ubuntu为例子,apt是Ubuntu的包管理器,
    apt-get update
    是更新软件包列表
    apt-get upgrade
    是更新软件包
    apt-get install
    是安装软件包
    apt-get remove
    是删除软件包
    apt-get autoremove
    是删除不需要的软件
    apt-get clean
    是清理软件包缓存

    这个支持它的软件源默认是官方自带的软件园,所以需要更换软件源,使用阿里源,清华源,中科大源,网易源,阿里源,腾讯源,华为源,这些源都是免费的,但是需要自己手动配置,不同版本有不同的软件源版本,这里网上有教程,可以自己搜索,我就不放出来了,在Ubuntu24.04之前都可以采用更改/etc/apt/sources.list文件,在Ubuntu24.04之后,需要使用
    apt-get install software-properties-common
    ,然后使用
    add-apt-repository
    命令添加源,最后使用apt-get update更新软件包列表。
      不同芯片框架的软件源的也不一样,一般有X86、ARM、RISC-V,MIPS这些框架,但是arm框架很乱,一般在嵌入式Linux的框架为aarch64,可以在命令行输入:
    uname -a
    查看,进而更换对应的软件源。更换完软件源再输入apt-get update更新软件包列表。

      我们如果需要一些开发的话,可能需要不同的版本软件,比如numpy的版本需要不同的版本,我们需要那个版本的话,我们再主环境需要更换版本,只能卸载了之后才能更换,这样跟麻烦,那我们有什么方法可以快捷的同时使用不同版本的软件呢?
    答案是有的,我们可以使用虚拟环境,但是虚拟环境有很多,比如python自带的env,还有conda,甚至类似docker的虚拟环境,但是这些虚拟环境都有不同的使用方法,这里我们使用conda,conda是python的包管理器,可以用来管理python的包,也可以用来管理python的虚拟环境,还可以用来管理python的版本,这里我们使用conda来管理python的虚拟环境,而嵌入式Linux就不需要使用anaconda这么全的conda,我们只需要使用它的虚拟环境就可以,所以我们推荐使用miniconda。
    miniconda是conda的轻量级版本,因为篇幅太长了,我就丢出教程了Ubuntu 20.04版本快速安装 Miniconda
    希望大家能熟练使用miniconda。
      在Linux上,我们可以使用pip来安装python的包,一些常见的pip命令,可以看教程菜鸟教程的pip教程
    我这里还是建议大家更换pip源为阿里源,直接在命令窗口输入
    pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
    pip config set install.trusted-host mirrors.aliyun.com

    上节讲了Linux的一些命令基础以及miniconda的安装,如何使用conda创建虚拟环境,并使用虚拟环境安装opencv。
    我们下载完miniconda之后,打开终端,输入以下命令,查看conda是否安装成功,以及conda的版本。
    conda --version
    如果安装成功,会显示conda的版本号,如果安装失败,会显示conda not found。
    接下来,我们了解一些conda的命令:
    conda create -n myenv python=3.10
    为创建一个名为"myenv"的虚拟环境,并使用python3.10作为解释器,python版本可以根据自己项目来选择。这其中,"myenv"是可以自己定义的名字。
    conda activate myenv
    激活"myenv"虚拟环境。
    conda deactivate
    退出"myenv"虚拟环境。
    conda remove -n myenv --all
    删除"myenv"虚拟环境。
    conda update --all
    升级全部库
    conda update package_name
    升级一个包,package_name是包的名字
    conda list
    查看已安装的包
    conda remove opencv
    移除一个包,package_name是包的名字
    conda install opencv
    安装一个包,当然,也可以用pip安装,安装与卸载的前提是你需要进到那个环境中再执行响应的命令。
      说了这么多,使用的顺序就是:
    1.创建虚拟环境 2.激活虚拟环境
    3.安装opencv 4.使用opencv

    第一步:创建名字叫cv的虚拟环境:
    conda create -n cv python=3.10
    第二步:激活虚拟环境:
    conda activate cv
    第三步:安装opencv-python:
    pip install opencv-contrib-python
    在这之前需要把opencv的源更换为阿里源或者其他源,更换源步骤可以看上一节教程。opencv-contrib-python和opencv-python的区别是opencv-contrib-python包含了opencv的contrib模块,而opencv-python只包含了opencv的python模块。
    第四步:使用opencv:
    但是怎么在嵌入式Linux使用opencv呢?我们可以看下一节教程。

      这篇教程我们使用的是香橙派zero3,为什么使用这个呢?因为便宜,99块钱1G运存版本(当然,可以买2G运存版本)加上32G闪迪储存卡和二十来块的USB摄像头,就可以使用在你的项目搭载上opencv了(doge),当然,可能还有其他便宜的方案,但是这个作为入门设备我觉得也是不错的选择,香橙派zero3是全志H618的芯片,自带千兆网口,蓝牙五等等,具体可以去官网了解。 香橙派zero3官网
      看到这里大家都是一脸懵的,第一次我也不会配置这些啊,好多我都要自己配置好难怎么办?你放心咧,我这已经配置好有Ubuntu的镜像了,几乎就是烧录镜像进去就可以用了,但是我配置了什么呢?答案是有:
    1.安装Ubuntu22.04镜像
    2.香橙派zero3第一次配网
    3.安装miniconda
    4.创造虚拟环境名为"cv",python版本为3.10
    5.配置pip源为阿里源
    7.安装了jupyter
    8.安装了opencv-python,ultralytics(YOLOv8)和onnx
    9.sudo的账号密码都是orangepi


    有需要自己配置的同学也可以等我后面有空更新教程跟着来配置。


      

    那我们要怎么烧录已经配置好的镜像呢?


    1.下载镜像:选用32G的闪迪或者其他读取速度高的储存卡,但是因为镜像太大了,我就没有放上云盘,而放在实验室的电脑上,文件夹目录在D盘的orangepi文件夹,大家可以拷贝下来或者在实验室的电脑上烧录。
    2.烧录镜像:使用win32diskimager,这个软件在下载中心有,大家可以下载下来,然后打开软件,检查插入储存卡的盘符,选择镜像文件,然后点击写入,等待完成即可。读卡器可以自己准备也可以询问学长借用。
    win32diskimager使用界面
    3.烧录完成之后,储存卡插入香橙派zero3,将15W或者以上的type-c充电器保证香橙派供电(这个需要自己准备,购买的开发板没有!,一般自己手机都会有符合这个的充电器)。
      我们配置的镜像不需要使用显示器再配置,直接使用网页连接jupyter就可以了。
    配置的镜像中,默认连接的WiFi名称为orangepi,密码也是orangepi。所以我们需要在电脑打开热点,将热点名称设置为orangepi,密码:orangepi。后面会教大家怎么改自己连接的WiFi以及香橙派名字,以防大家连接WiFi的时候混淆了。
    orangepi连接WiFi
    4.连接成功之后,我们在下面看到我这个香橙派的ip地址是192.168.137.115,我们打开jupyter需要知道orangepi的ip地址,在浏览器输入192.168.137.115:8888就可以看到jupyter的界面了,如果需要密码的话,jupyter默认密码是12345678
    jupyter界面

      这个就需要我们自己去学jupyter的基本用法了:这里有几个文章可以参考一下
    jupyter opencv的用法:Jupyter Notebook + OpenCV 完美组合
    Jupyter Notebook 使用技巧:15个应该掌握的Jupyter Notebook 使用技巧
    这个我们只需要看它的使用方法部分就好:一文弄懂Jupyter的配置与使用
    Jupyter Notebook 保姆级别教程:良心总结!Jupyter Notebook 从小白到高手

      我们想要USB摄像头能不能用怎么办?我已经在code文件夹放cv.ipynb,打开那个文件,然后点击运行,就可以看到实时显示的视频流了。
    cv.ipynb

      我们在代码中使用cv2.VideoCapture(0),0表示使用第一个摄像头,如果想要使用第二个摄像头,可以改为1,以此类推,但是怎么知道呢?我们只需要在终端输入ls /dev/video*,就可以看到摄像头对应的设备号。

      写到了本篇教程的最后,很明显,嵌入式Linux是一个系统,跟Windows一样,如果我们直接关机的话,可能会造成系统崩溃,所以我们需要使用halt命令来关机,halt命令会等待所有进程结束,然后关闭系统。打开终端,输入以下命令就可以关机了,等待香橙派的灯不再闪烁就可以拔掉电源
    sudo halt

      YOLO(You Only Look Once)算法是一种先进的实时目标检测方法,通过将图像划分为网格单元,并在每个单元内预测边界框和类别概率,实现了高效的目标检测。与传统的两步检测方法不同,YOLO将目标检测视为一个回归问题,从而大幅提升了检测速度。其核心思想是利用一个单一的卷积神经网络(CNN)直接预测目标的类别和位置,这使得YOLO能够在保持高准确率的同时,处理速度极快,适合实时应用场景,如自动驾驶、视频监控和机器人视觉等。此外,YOLO的架构经过多次迭代优化,最新版本在精度和速度上均有显著提升,进一步巩固了其在目标检测领域的领先地位。

    搭建部署YOLOv8的教程,这里已经包含从准备数据集到训练模型,再到部署模型,最后到使用模型的教程了:从0开始搭建部署YOLOv8系列教程


    这个是yolo的官方文档,Ultralytics YOLO 文档


      我们写完代码之后,总是要手动执行,这样很麻烦,所以我们可以使用代码自启动,这样就可以自动执行代码了。
      我们以Ubuntu为例,使用代码自启动,需要使用到systemd,systemd是Linux的系统和服务管理器,可以用来管理系统的服务和进程,我们使用systemd来管理代码自启动。
      首先,我们需要创建脚本,我们可以用nano创建一个脚本,打开终端,输入以下命令:
    nano /home/orangepi/code/start_pi.sh
    然后复制并修改以下代码:
    
    #!/bin/bash
    # 加载Conda环境变量,orangepi是香橙派zero3的用户名,miniconda3是miniconda的安装目录
    source /home/orangepi/miniconda3/etc/profile.d/conda.sh
    								
    # 激活虚拟环境,cv是虚拟环境的名字,/home/orangepi/code是代码的目录,pi.py是代码的文件名
    conda activate cv
    								
    # 运行Python脚本
    /home/orangepi/miniconda3/envs/cv/bin/python /home/orangepi/code/pi.py
    按下ctrl+s保存,然后按下ctrl+x退出,然后给这个脚本给予权限,输入以下命令:
    sudo chmod +x /home/orangepi/code/start_pi.sh
    代码自启动自然是,创建一个新的 systemd 服务文件,输入以下命令:
    sudo nano /etc/systemd/system/pi.service
    然后复制并修改以下代码:
    									[Unit]
    Description=Run pi.py in cv Conda Environment
    After=network.target
    								
    [Service]
    Type=simple
    ExecStart=/home/orangepi/code/start_pi.sh
    WorkingDirectory=/home/orangepi/code
    StandardOutput=inherit
    StandardError=inherit
    Restart=always
    User=orangepi
    								
    [Install]
    WantedBy=multi-user.target
    重新上电一下,输入以下命令,查看服务是否启动成功:
    sudo systemctl status pi.service
    如果服务启动成功,会显示active (running),如果服务启动失败,会显示inactive (dead)。
    我们就可以使用代码自启动了。

    乐鑫ESP32物联网

    ESP32是一款功能强大的Wi-Fi和蓝牙双模微控制器,广泛应用于物联网项目。它兼容Arduino IDE,支持使用Arduino代码进行编程。ESP32拥有丰富的外设接口和强大的处理能力,适合开发智能家居、无线传感等应用。

    Arduino基础非常适合新手的开发、掌握基本编程语法和常用函数,结合ESP32的硬件特性,可以快速上手开发各种创意项目。

    看完这两个教程并跟着做项目估计就能很流畅的使用ESP32开发项目: 1.ESP32 Arduino 教程 ----- 2.ESP32超详细教程-使用VSCode(基于Arduino框架)

    当然,使用esp32最重要的是物联网,既然使用esp32连接网络,我们就需要知道STA和AP协议是什么意思,STA是连接WiFi,AP相当于创造一个热点,在ESP32可以让两个模式都共存。当然这里有更详细的文章介绍这个: WIFI模块无线网络工作模式AP和STA的区别

    我们现在就要连接网络进行中国移动OneNet物联网互联:ESP32/ESP8266上云——Onenet物联网平台同步MQTT

    当然,我们也可以使用ESP32阿里云的服务器,这里也有详细的教程:STM32+ESP8266(ESP32)+MQTT+阿里云物联网平台

    (还没写完。。。)

    相比Arduino,ESP-IDF提供了更底层的控制和更高的性能,但学习曲线较陡。Arduino则以其简单易用的IDE和广泛的社区支持,适合初学者和快速原型开发。我们就不提供太多的教程。

    ESP32教程(基于ESP-IDF)ESP32入门级开发课程

    由于ESP32-C3采用开源的RISC-V指令集架构,与ESP32-S系列使用的ARM Cortex-M3架构不同,因此在使用PlatformIO进行烧录时,需要在配置文件添加一行代码。 在platformio.ini文件中添加一行代码:
    [env:esp32-c3-devkitm-1]
    platform = espressif32
    board_build.flash_mode = dio
    board = esp32-c3-devkitm-1
    framework = arduino
    lib_deps =
    还在更新中...