ESP32教程,esp32入门教程
本系列博客学习由非官方人员
半颗心脏
花大力气撰写,仅供个人技术交流分享,不做任何商业用途。如有不妥,请留言,我会及时更改。1.爬坑学新征程。虚拟机搭建esp32开发环境,打印“Hellow World”。2.巧用eclipes editor,官方教程是在Windows下搭建esp32开发环境,打印“Hellow World”。
3.了解基本的esp32的GPIO接口,开始点亮你的第一个LED并中断回调实现按键功能。
4.体验esp32强大的定时器功能,实现一个LED灯闪烁2s。
5.触摸练习esp32的pwm脉冲功能,实现呼吸效果,LED灯闪烁。
6.在esp32中实现了smartConfig和微信airKiss,一键联网,可以方便快捷的连接到路由器。
7.用GPIO中断做一个按键短按长按的回调事件,再也不用担心触发源了。
8.本地UDP客户端和服务器角色在esp32上实现,通信在LAN中实现。
9.esp32实现了本地TCP客户端和服务器的角色,可以断开和重新连接原始路由以返回数据。
10.乐心esp32 SDK编程使用rmt驱动ws2812彩灯实现彩虹渐变效果。
11.开始开发乐心esp-adf音频框架。esp32做一个蓝牙耳机,实现切换歌曲和获取歌曲信息的功能。
12.开源一个微信微信官方账号airkiss分发网esp32和LAN发现功能的项目,分享一个airkiss分发网小工具。
13.esp32内置了dns服务器,所以不需要访问网外的域名就可以返回指定的网页。
14.esp32 sdk编程实现门户强制认证。连接esp32 hotspot后,会自动弹出指定的登录界面。
15.了解本地离线语音唤醒识别框架esp-skainet,实现低成本硬件语音本地识别控制。
16.学习esp-skainet,本地语音唤醒的离线识别框架。如何修改唤醒词?如何自定义命令字?怎么做意向性动作?
17.全网上线,乐心esp32 sdk直接接入JD.COM威廉小晶宇物联网开放平台,实现丁咚音频和语音的智能控制。
18.JD.COM威廉小晶宇控制面板H5开发入门。阅读vue语法,制作自己的控制页面。
19,重磅开源,如何在微信小程序上用ble蓝牙搭配esp32和blufi!
20.一篇好文章。开发过程中编译的esp32固件太大无法正常启动?教你如何自定义分区表partitions.csv
21.esp32蓝牙分发网络blufi高度封装,集成简单,简单易用,提高了开发效率!
22.讨论程序员的“青春饭”,分享esp32中多重加密算法md5 AES CBC-ECB Sha1 Sha256的实现!
23.安信科esp32-a1s音频开发板移植了最新的esp-adf音频帧,尝试了如何实现在线文语转换播放。
25.分享esp32 SDK中实现冷暖光色温平滑调节的包,轻松集成到你的项目中。
26.分享如何在window下使用CMake进行编译,编译速度会比传统的Make编译提高一个层次。
27.Windows S10平台自带的Linux安装了ESP8266/ESP32环境,因此不需要安装额外的虚拟机。
28.安信科的ESP32-Cam摄像头开发板的二次开发采用C SDK编程,实现了MQTT远程照片传输到私有服务器。
目录一,前言二,软硬件准备三,服务器准备四,嵌入式代码详解五,私有云的效果。另外,不要把我的博客当成学习标准,我的只是一个笔记,很难忽略什么。如果有,请指出,欢迎留言!
一.导言
今天上午,乐心微信官方账号发布文章,正式发布了ESP32的芯片——S3。与ESP32-S2相比,它主要有一个蓝牙协议栈。与ESP32芯片相比,它增强了许多;
ESP32-S3 拥有 44 个可编程 GPIO(比 ESP32 多 10 个),支持所有常用外设接口,如 SPI、I2S、I2C、PWM、RMT、ADC、DAC、UART、SD/MMC 主机控制器和 TWAI 控制器等。用户可将其中的 14 个 GPIO 配置为用于 HMI 交互的电容触摸输入端。此外,ESP32-S3 搭载了超低功耗协处理器 (ULP),支持多种低功耗模式,广泛适用于各类低功耗应用场景。
不过令我失望的是,依然不支持 5G WiFi 频段。
今天给大家带来我雇主的相机开发板。我有多种学习方向。把之前的项目整理出来,给你做参考,特别是一些很常见的需求,很有意思。比如我今天给大家带来的是:
摄像头开发板实现MQTT远程拍照传输到私有服务器
。第二
TTL-USB调试工具(建议使用CP2102串行芯片,以保证足够的电压和电流)。
软件环境搭建:Linux环境搭建/发布/v3.3.2分支工具链设置:下载工具链,博主使用的HTTP版本是:gcc版本5 . 2 . 0(cross tool-ng cross tool-ng-1 . 22 . 0-97-GC 752 ad 5)Python版本:Python 2.7.17。其格式如下:
post/index . PHP http/1.1 host:www.domain.com Content-type:image/JPEG Content-length:12540“文件内容在此处”。所以服务器要按数据流接收,以PHP语言为例:
//接受数据流$ stream=file _ get _ contents( PHP://input );//数据流转换成png格式,保存在指定位置$ len=file _ put _ contents(/www/wwwroot/static/)。时间()。png ,$ stream);四。嵌入式代码详解文件的目录描述:
-1 _ take _ pic _ HTTP _ to _ cloud -components摄像头驱动组件-main用户程序 -logical实现buff app _ wifi.c/h连接路由器 -main.c主文件程序入口这里主要是熟悉http请求。
主文件逻辑代码协议详细说明:
静态void http _ test _ task(void * PV参数){//等待无线保真连接成功app _ wifi _ wait _ connected();ESP_LOGI(标签,‘Http Start’);size _ t _ jpg _ buf _ lenu int 8 _ t * _ jpg _ buf camera _ FB _ t * pic=NULLesp _ err _ t RES=ESP _ ok size _ t FB _ len=0;//配置服务器相关信息esp _ http _ client _ config _ t config={ .URL= http://www。域。com/index。PHP ,方法=HTTP_METHOD_POST,事件处理程序=_ http _事件处理程序,buffer_size=4096,timeout_ms=10000,};esp _ http _ client _ handle _ t client=esp _ http _ client _ init(config);//开始拍照pic=esp _ camera _ FB _ get();如果(!pic) { ESP_LOGE(标签,摄像头捕捉失败);} else { //拍照成功,获取其大小、尺寸等信息ESP_LOGI(标签,相机捕捉好吧,其大小为:%zu字节,pic-len);ESP_LOGI(标签,相机捕捉正常,其宽度为:%d ,图片宽度);ESP_LOGI(标签,相机捕捉好吧,其高度为:%d ,pic-height);//设置超文本传送协议请求头为图片/jpg表示图片类型RES=esp _ http _ client _ set _ header(client, Content-Type , image/jpg );if (res!=ESP_OK) { ESP_LOGE(TAG, esp_http_client_set_header结果代码:[%s],ESP _ err _ to _ name(RES));转到结尾;} //把图片放在身体里面RES=esp _ http _ client _ set _ post _ field(client,(const char *)pic-buf,pic-len);if (res!=ESP_OK) { ESP_LOGE(TAG, esp_http_client_set_post_field结果代码:[%s],ESP _ err _ to _ name(RES));转到结尾;} vTaskDelay(1000/端口tick _ RATE _ MS);//开始执行请求服务器RES=esp _ http _ client _ perform(client);//判断是否请求成功if (res==ESP_OK) { ESP_LOGI(标签, HTTPS状态=%d,内容长度=%d ,ESP _ http _ client _ get _ Status _ code(客户端),ESP _ http _ client _ get _ content _ length(客户端));} else { ESP_LOGE(TAG,执行超文本传送协议(Hyper Text Transport Protocol的缩写)请求“%s”,ESP _ err _ to _ name(RES));} }结束:{ esp _ camera _ FB _ return(pic);esp_http_client_cleanup(客户端);免费(缓冲);} ESP_LOGI(标签,‘Http End’);vtask delete(空);} 收到推送消息信息后,立刻拍照上传;案例MQTT_EVENT_DATA: ESP_LOGI(标签, MQTT _ EVENT _ DATA );printf( TOPIC=% 1 .*srn ,event-topic_len,event-topic);printf(DATA=% .*srn ,event-data_len,event-data);//开始拍照上传xTaskCreate(http_test_task, http_test_task ,8192,NULL,5,NULL);printf( esp _ get _ free _ heap _ size:% d n ,esp _ get _ free _ heap _ size());打破;五、私有云看到的效果拍照之后,图片大小15KB左右分辨率:640 x 480宽度:640像素高度:480像素
关注本人微信公众号"陶醉的飞鸟博客",发送