![](https://img-blog.csdnimg.cn/5f3d81d61ee243fc8e829f989360649e.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ESP单片机
文章平均质量分 89
WIFI 模块入门学习
编程圈子
编程圈子,谢厂节的博客
展开
-
Esp8266学习1. Node-mcu基于Arduino IDE1 开发环境设置
Esp8266开发板 Node-mcu基于Arduino IDE 开发环境设置一、下载Aruino IDE二、安装开发板驱动程序三、Arduino IDE设置1. 点文件-首选项,在附加板开发网址输入:2. 工具-开发板-开发板管理器,输入 esp82663. 设置端口四、编译运行示例程序一、下载Aruino IDE这里使用 1.8.14 版本。https://www.arduino.cc/en/Main/Software下载后安装。另外要准备开发板。我这里使用的是太极创客的node-mcu开发板原创 2022-04-04 10:46:20 · 5469 阅读 · 0 评论 -
Esp8266学习2. Node-mcu基于Arduino IDE2.0.3设置及基本操作
点击菜单 Tools-Board-Boards Manager。第一个按钮是编译,第二个按钮烧写。点击Tools-Port-选择对应的开发板端口。使用WiFiClient类用来管理TCP连接。搜索ESP8266,点击Install。烧写后可以看到开发板的LED灯在闪烁。引用库 选择NodeMUC 1.0开发板。这里使用 2.0.3 版本。提示下载库时点击YES。把开发板连接到电脑,原创 2023-01-11 16:13:56 · 578 阅读 · 0 评论 -
ESP8266学习3. 基于安信可开发环境搭建
ESP -12F WIFI模块开发入门1 开发环境搭建一、开发板环境二、安装开发环境一、开发板环境编程方式:无操作系统的 8266 SDK开发模式编译环境:安信可一体化编译器开发套件:8266 开发板、温湿底传感器二、安装开发环境安信可一体化开发环境下载链接:https://docs.ai-thinker.com/ai_ide_install...原创 2022-03-29 23:38:01 · 3384 阅读 · 0 评论 -
Esp8266学习4. 基于Arduino的PWM与红外信号处理
在使用 PWM 技术时,需要根据具体的应用场景选择合适的 PWM 频率和分辨率,以及合适的占空比范围和切换速率,以达到最优的控制效果。例如,在控制 LED 亮度时,可以通过调节 PWM 信号的占空比来控制 LED 的亮度,占空比越大,LED 灯亮度越高,反之亦然。在红外遥控器中,每一个按键通常对应一个特定的红外信号,这个红外信号的发送周期一般是固定的,以确保遥控器能够正确地发送信号,并且接收器能够正确地解码信号。在红外通信中,通过对载波信号进行调制,将数字信号转换为红外信号,从而实现数据或控制信号的传输。原创 2023-03-09 09:46:56 · 2182 阅读 · 0 评论 -
Esp8266学习5. 红外信号收发实验
ESP8266 支持通过红外接收器和红外LED进行红外收发功能。ESP8266的红外收发功能需要借助外部库,常用的库有IRremoteESP8266、IRremote、IRLib2等。IRremoteESP8266库是专门为ESP8266芯片设计的红外收发库,它支持多种协议,包括NEC、Sony、RC5、RC6等,还支持学习和发送红外信号。另外IRremote库和IRLib2库也是常用的红外收发库,但这两个库不是专门为ESP8266设计的,需要进行相应的适配。data 要发送的数据。原创 2023-03-18 18:50:15 · 1597 阅读 · 1 评论 -
Esp8266学习6. ArduinoOTA的使用
ESP8266 提供了 OTA(Over-The-Air)升级功能,可以通过 Wi-Fi 网络升级设备,而无需连接 USB 线进行编程。ESP8266使用的是ArduinoOTA库,开源地址:占用更多的存储空间;升级需要使用IDE,且电脑要和开发板在同一个网络内;使用的网络端口不能充当普通串口用来查看日志等作用。但由于它对OTA功能进行了高度的封装,使用起来极为简单,升级时省去了物理连线的麻烦。原创 2023-04-08 11:16:34 · 564 阅读 · 0 评论 -
Esp8266学习7. 点亮JMD0.96C-1 OLED屏
ESP8266具有一个I2C控制器,通常称为I2C主机。这个I2C控制器可以用来连接各种I2C外设,如传感器、显示屏等。SDA(Serial Data Line):通信数据线SCL(Serial Clock Line):时钟线这两个引脚的位置可以根据具体的ESP8266开发板而有所不同。引入Wire库:在Arduino代码中引入Wire库,该库提供了与I2C通信相关的函数。原创 2023-08-17 16:43:25 · 1184 阅读 · 0 评论 -
ESP-C3入门1. VSCode+IDF 开发环境
本文使用ESP-C3-MINI-1芯片,它是一款通用型 Wi-Fi 和低功耗蓝牙 (Bluetooth LE) 模组。选择其中的ESP-IDF:Configure ESP-IDF extension,下面代码主要针对GPIO3,GPIO4,GPIO5口进行操作。点击菜单: View-Command Palette,输入。ESP-IDF Build projec,选择: UART。最后勾选 运行 ERP-IDF命令提示符环境,点击完成。修复完成后点击“下一步”,按提示完成安装步骤。原创 2022-12-15 09:21:17 · 1512 阅读 · 0 评论 -
ESP-C3入门2. Clion+IDF 开发环境搭建
进行更改时,要确认编译器的路径是否正确,对于不同的芯片,编译器的路径有所不同,所以每改一个文件都要确认下文件中编译器文件的路径。图中Environment Variables是对串口和IDF_PATH路径进行设置,串口根据电脑实际情况进行修改。本文使用windows11开发环境 , 按前文相关操作已经安装了IDF。另外需要安装CLion软件,安装过程较简单,这里不详细说明。按照下图示例,添加一个esp32编译工具链设置。windows平台下,文件后面要加上扩展名。原创 2023-01-27 16:26:37 · 817 阅读 · 0 评论 -
ESP-C3入门3. 基于IDF的GPIO基本操作
ESP32-C3有22个物理GPIO管脚,编号从0~21。每个管脚可用作通用IO,或连接一个内部的外设信号。原创 2022-12-15 22:51:33 · 568 阅读 · 0 评论 -
ESP-C3入门4. NVS非易失性存储使用
官网文档地址删除名称为"nvs"的默认nvs分区。如果分区已经被初始化了,则先要执行反初始化。handle :由nvs_open返回的句柄将任何挂起的更改写入非易失性存储。原创 2023-01-14 18:15:26 · 2012 阅读 · 1 评论 -
ESP-C3入门5. 使用通用计时器
获取时间戳周期性任务本文主要内容参考官网API文档本文主要代码参考来自这里ESP32-C3 有2个定时器组,每个组有2个定时器,共有4个定时器。每组定时器包括一个普通定时器和一个看门狗定时器。在1每个通用硬件定时器都是基于16位预分频器和64位自动重载功能的向上/向下计数的64位通用定时器。原创 2023-01-28 15:20:06 · 778 阅读 · 0 评论 -
ESP-C3入门6. 使用UART串口
UART0UART1UART2其中UART0用作下载、调试串口,引脚不可改变,UART1和UART2的引脚是可以设置的。原创 2023-01-30 14:28:09 · 1711 阅读 · 0 评论 -
ESP-C3入门7. WIFI 操作 扫描WIFI列表
ESP-C3 是一种小型,低功耗的 Wi-Fi 模块,具有集成的 TCP/IP 协议栈,可以方便地与其他电子设备进行连接。它的 Wi-Fi 功能是通过芯片内部的 ESP32 控制器来实现的。ESP-C3 可以用作一个独立的 Wi-Fi 芯片,也可以嵌入到其他电子设备中,以实现远程控制和数据采集等功能。热点模式(AP)客户端模式(STA)在 AP 模式下,ESP-C3 可以当作一个无线路由器,允许其他设备连接到它;而在 STA 模式下,ESP-C3 可以连接到其他的 Wi-Fi 热点。原创 2023-02-14 08:33:50 · 853 阅读 · 1 评论 -
ESP-C3入门8. 连接WiFi并打印信息
本文介绍ESP-IDF连接WiFi的方法和事件机制原创 2023-02-14 13:21:30 · 1006 阅读 · 0 评论 -
ESP-C3入门9. 创建TCP Server
BSD Sockets API 是一个常见的跨平台TCP/IP套接字API, 有时被称为POSIX Sockets或 Berkeley Sockets。socket()bind()accept()shutdown()close()select()poll()fcntl()另外lwIP还支持ioctl()非标准的功能。原创 2023-02-15 17:39:25 · 1096 阅读 · 1 评论 -
ESP-C3入门10. 创建TCP Client
具体来说,在两个任务中,需要使用不同的套接字句柄(socket handle)来访问相同的服务器地址和端口。发送和接收数据时,需要在每个任务中使用不同的套接字句柄来分别发送和接收数据。在发送和接收数据时,将不同的套接字分别用于不同的任务,从而实现并发的发送和接收。另外,使用RTOS任务的好处还在于可以方便地控制任务的优先级、堆栈大小等参数,以及在需要的时候暂停、恢复、删除任务等操作。需要注意的是,如果两个任务共用同一套接字句柄来进行发送和接收,那么就可能会出现竞争条件,导致数据错误或不完整。原创 2023-02-16 11:02:46 · 506 阅读 · 0 评论 -
ESP-C3入门11. 创建最基本的HTTP请求
本文介绍ESP32-C3芯片使用IDF创建最基本的HTTP请求的方法。原创 2023-02-20 14:02:09 · 598 阅读 · 0 评论 -
ESP-C3入门12. HTTPS请求、堆内存使用及JSON处理
本文主要内容接上节《创建最基本http请求》的文章。ESP32 IDF创建http请求的基本流程:在https请求中,有一些进行一些额外的步骤,包括 证书的验证和捆绑。首先要获取远程服务器的证书;如果ESP32 IDF无法验证证书,则需要使用esp_http_client_set_cert_info函数将服务器证书的SHA-1指纹添加到ESP32 IDF的证书信任列表中。如果ESP32 IDF无法连接到远程服务器,则可能需要设置代理服务器。证书已经内置在ESP32的固件中,无需单独管理证书,可以直接原创 2023-02-25 10:06:36 · 1142 阅读 · 0 评论 -
ESP-C3入门13. SoftAP模式
在ESP-IDF中,当一个设备通过WiFi连接到ESP32的WiFi热点时,ESP32会触发一个连接事件。这个事件会包含一个结构体system_event_sta_connected_t,其中包含连接设备的MAC地址(event->mac)和连接设备在该AP热点下的AID(event->aid)。在ESP-IDF中,AID的范围是1~16,代表连接的设备数量。其中,event->aid代表的是连接设备在AP热点下的AID(Association ID),AID是一个整数值,表示AP热点中连接的设备的编号。原创 2023-02-25 13:12:22 · 816 阅读 · 0 评论 -
ESP-C3入门14. 实现基本的web server
在ESP-IDF中,我们可以使用httpd_ws_frame_t结构体表示WebSocket帧,使用httpd_ws_send_frame_async函数异步发送WebSocket帧。该函数需要传入一个httpd_req_t结构体作为参数,该结构体表示HTTP请求和响应。这个函数接收两个参数:httpd_handle_t类型的HTTP服务器句柄和httpd_uri_t类型的URI配置。在URI处理器函数中,我们可以通过HTTP请求信息结构体指针httpd_req_t获取HTTP请求的各种参数和数据。原创 2023-03-02 14:47:05 · 1072 阅读 · 0 评论 -
ESP-C3入门15. SmartConfig配网测试
ESP32主要有以下配网方式:采用组播/广播方式,将WIFI信息编码到IEEE802.11底层通讯帧实现配网。配网时将ESP32置于AP热点模式,手机连接此热点建立通讯,把WIFI账号和密码发给模块。微信提出的一种配网方式,支持通过微信小程序配网。通过低功耗蓝牙来传输WIFI账号与密码实现配网。ESP32的example有完整的SmartConfig demo,可以直接创建项目使用。配网主要执行以下流程:(2)注册事件处理函数为 WIFI_EVENT、IP_EVENT 和 SC_EVENT 注册事件处理原创 2023-03-21 13:38:26 · 584 阅读 · 0 评论 -
ESP-C3入门16. 低功耗蓝牙广播
0x00:广播标志0x01:不完整的16位服务UUID列表0x02:完整的16位服务UUID列表0x03:不完整的32位服务UUID列表0x04:完整的32位服务UUID列表0x05:不完整的128位服务UUID列表0x06:完整的128位服务UUID列表0x07:本地名称0x08:TX功率级别0x09:蓝牙名称0x0A:简单配对的Hash C0x0B:简单配对的随机数R0x0C:设备ID0x0D:服务数据0x0E:制造商特定数据。原创 2023-03-28 08:21:44 · 826 阅读 · 0 评论 -
ESP-C3入门17. 低功耗蓝牙GATT Server
GATT (Generic Attribute Profile) 是蓝牙低功耗 (Bluetooth Low Energy, BLE) 协议栈中的一部分,它定义了 BLE 设备之间交换数据的格式和规范。GATT 是基于属性 (attribute) 和服务 (service) 的概念,通过将数据封装在属性中,从而实现设备之间的通信。在 GATT 中,一个服务表示一个特定的功能,一个服务可以包含多个属性。每个属性都有一个唯一的标识符 (UUID),可以用来识别它们。属性可以是只读的 (Read),也可以是可写的原创 2023-03-31 15:26:49 · 1196 阅读 · 0 评论 -
ESP-C3入门18. 低功耗蓝牙SPP Server端功能测试
GATT是一种基于属性的协议,它定义了一组属性,这些属性可以用于描述设备的服务和特征。原创 2023-04-06 08:21:31 · 877 阅读 · 1 评论 -
ESP-C3入门19. RSA算法加密、解密的实现
官方文档地址:ESP-IDFv5里集成了 Mbed TLSv3.1.0版本。实现RSA加密与解密主要是以下步骤:生成RSA密钥对:RSA加密算法需要一个公钥和一个私钥。在ESP-IDF提供的加密库中有生成RSA密钥对的函数。本文重点放在加密、解密,生成RSA密钥对的过程本文不作介绍。加密数据:要加密数据,需要使用公钥对数据进行加密。我们使用mbedtls_rsa_pkcs1_encrypt()函数来实现RSA加密。这个函数接受明文数据、公钥和输出缓冲区作为参数,并将加密后的数据存储在输出缓冲区中。原创 2023-06-20 14:42:17 · 633 阅读 · 0 评论 -
ESP-C3入门20. CentOS开发环境及Jenkins流水线
ESP-IDF 需要python3.7以上版本,如果yum仓库版本比较低,则需要手动下载安装。意思是系统中缺少 Jenkins 软件包的公钥,因此无法验证软件包的真实性。cmake 升到 3.16以上。bash要升到 4 以上。原创 2023-07-25 19:08:13 · 509 阅读 · 0 评论 -
ESP-C3入门21. I2C接口点亮1306驱动的OLED屏
地址:Espressif/ssd1306 是 Espressif Systems 开发的用于 SSD1306 驱动芯片的库,用于在 ESP32 和 ESP8266 上控制 SSD1306 型号的 OLED 显示屏。这个库提供了一组函数和接口,使得开发者可以在 ESP-IDF 框架中方便地控制和管理这种类型的 OLED 显示屏。OLED 控制:该库允许你控制 SSD1306 驱动的 OLED 显示屏,包括初始化、绘制图像、显示文本等。原创 2023-08-17 20:06:37 · 834 阅读 · 0 评论 -
ESP-C3入门22. 基于VSCODE使用内置JTAG调试程序
在ESP32中,内置了一个用于JTAG调试的特殊程序,称为“ESP32 JTAG调试引导模式”。JTAG(Joint Test Action Group)是一种用于测试和调试电路板的标准接口。在嵌入式系统开发中,JTAG可以用于芯片的调试、程序下载、固件更新等操作。ESP32的JTAG调试引导模式允许通过JTAG接口连接到芯片,以便进行硬件级别的调试和分析。原创 2023-09-01 14:20:08 · 1003 阅读 · 0 评论 -
ESP-C3入门23. I2C读写外部存储器
I2C 是一种串行同步半双工通信协议,总线上可以同时挂载多个主机和从机。I2C 总线由串行数据线 (SDA) 和串行时钟线 (SCL) 线构成。这些线都需要上拉电阻。ESP32-C3 上通常包含两个 I2C 控制器(I2C0 和 I2C1),它们可以分别用于不同的设备或任务。I2C 控制器数量ESP32-C3 通常配备了两个独立的 I2C 控制器,分别命名为 I2C0 和 I2C1。引脚分配每个 I2C 控制器都需要两个引脚:SDA(数据线)和 SCL(时钟线)。原创 2023-09-05 08:26:33 · 435 阅读 · 3 评论 -
ESP-C3入门24. 使用中断监控GPIO口
创建一个用于处理 GPIO 中断的函数。// 处理中断事件的代码这里的IRAM_ATTR属性用于将中断处理函数存储在内部 RAM 中,以减少延迟。原创 2023-09-05 09:46:25 · 740 阅读 · 4 评论