esp32相关操作
文章平均质量分 58
使用esp32进行开发,我希望从事到物联网相关工作中去,所以esp32技术栏会有硬件操作以及连接阿里云物联网平台相关操作(连接百度等其他云端大同小异)
bird1999625
热爱嵌入式以及物联网相关技术,自学三年,带着喜欢一直走下去
展开
-
ESP32驱动DHT11
这篇文章讲一下ESP32如何驱动DHT11这一款常见的传感器,由于我也是吃的现成的,找的官方的驱动库,但是在这里做一个分享,简单教大家用法直接贴代码:这是DHT11.h用法:DHT dht(Pin_DHT11, DHT11); 这是创建温湿度传感器的控制类程序开始之后调用这个类的dht.begin()函数初始化,就能用了,读取信息代码如下。 float h = dht.readHumidity(); // 定义一个变量读取dht11的湿度值 float t原创 2021-04-10 19:45:25 · 4487 阅读 · 2 评论 -
ESP32驱动0.96寸OLED
这个分享由于不是我自己写的驱动库,所以没啥好说的,这是ESP32的开源库里面有的,而且已经被认证了的,我也用过,没什么大问题,不过我还是很讨厌用这种小屏幕,小家吧气的,我之前更过驱动TFTLCD,那个好用一些,我下面直接贴代码,然后简略说一下用法代码部分Wire.begin(); // 开启IIC用来驱动0.96oeldoled.init(); // SSD1306 0.96 OLED原创 2021-04-10 19:28:29 · 4209 阅读 · 0 评论 -
ESP32驱动喇叭(syn6288),UTF-8转Unicode,包含中文驱动
本文讲讲ESP32驱动喇叭,说实话,我当初为了驱动好这个喇叭,整了三天都没整出来,而且还是我在公司实习的时候,组长一直问,这么简单还没整出来,到底是不是你人的问题,挺离谱的,但是真的挺坑的,本来SYN6288这个语音合成芯片已经是串口驱动了,比较简单,但是难在这个芯片本身他不支持UTF-8格式字符串!这是最离谱的,因为单片机的字符串格式基本都是UTF-8,而直接拷贝其存好的GBK转码字符库,对单片机而言相当大,没有多少单片机吃得下的,所以后面专门研究了一下午的UTF-8转Unicode的方法,网上没有资料是原创 2021-04-10 19:02:29 · 4541 阅读 · 4 评论 -
esp32驱动SPI-TFTLCD
这篇文章讲一下使用ESP32驱动SPI-TFTLCD说明:这里直接贴出源代码,这个代码肯定是在别的地方找不到的,因为是我根据官方的STM32驱动TFT的代码硬改过来的,工作量也比较大,驱动代码也比较长,这里其实底层原理就是利用ESP32驱动IO模拟SPI,执行向屏幕内的命令寄存器写值,写入显示数据的过程,代码过长直接贴出,用过很久肯定是没问题的,但是优化空间应该是有的,如果你驱动失败,大概率是SPI屏幕型号不同,但别急,一样能用,拿到屏幕的厂家提供的驱动,把他底层的寄存器写的值改到我们的底层里面,就可以了原创 2021-04-10 18:45:32 · 4639 阅读 · 1 评论 -
(ESP32学习16)ESP32_CAM获取图片并且保存文件名为当前时间
上两篇博文分别ESP32_CAM获取图片以及ESP32_CAM上面那个SD卡的使用方法,而这一篇教大家获取图片之后以当前时间为文件名保存到我们的SD卡里面,然后大家就可以用读卡器看到里面的图片了(ESP32_CAM好像对SD卡大小有要求,不能太大)OK,直接上代码,已经跑过了的,大家自己看看吧#include "esp_camera.h"#include "FS.h"#include <SPI.h>#include <SD.h>#include "SD_MMC.h"#i原创 2020-06-20 00:21:23 · 3141 阅读 · 0 评论 -
(ESP32学习15)ESP32_CAM -- SD卡的使用以及获取目前时间的方法
这一篇博文讲述ESP32_CAM自带的那个SD卡座的使用方法以及ESP32连接网络后获取目前时间的方法SD卡座支持一般的SD小卡,而且有大小限制,我记得限制是8GB以下还是多少,不过一般我们也不可能用得到那么大的SD卡给ESP32用,我买的一批2GB的卡才5块钱一张,下面的代码里面罗列了包括例程以及网上的资料在内的SD卡操作方法 (包括 路径的创建删除列出,文件的写入读取重命名以及添加删除)而时间获取在我们的使用中也相当常见,上一篇博文我说了要更ESP32_CAM拍摄图片后存储到SD卡的操作,而我们将原创 2020-06-16 03:06:09 · 4706 阅读 · 2 评论 -
(ESP32学习14)ESP32_CAM获取图片
接下来2-3篇博文将会更ESP32_CAM的也就是那个小的带有摄像头接口的ESP32的用法首先要说说这几天玩下来对这个东西的看法其实很早之前就买过这个东西,但是没有想要做过任何关于图片获取的东西玩,所以这个东西一直吃灰,但是心里对这个东西是一直怀有期待的,但是这几天玩下来,我可以很直接地告诉大家这个东西:“在绝大多数情况下,这个东西玩玩可以,但是嵌入到项目里面很难”。1.因为首先,这个东西用的和我们之前用的那个ESP32长方形那种板子用的是一样的核心,也就是说他们之间的外设使用是通用的,但是由于本来E原创 2020-06-12 03:06:08 · 6253 阅读 · 3 评论 -
(ESP32学习13)驱动TFTLCD(SPI接口)
本篇博文教大家ESP32 驱动TFT(SPI驱动),本文给大家的库直接适用于2寸(240*320)的SPI-TFT,但实际上这种驱动移植适用于所有的SPI驱动的TFT屏幕,底层代码把LCD初始化里面的寄存器参数改一改就适用了(这些寄存器参数在你买的屏幕的官方驱动里面有)首先我们要知道我们要把移植的代码写在什么地方这就是我们的代码要移植到的地方看看驱动效果直接给大家上代码,由于我们使用的是SPI,不受IO限制,我在底层写了一个IO绑定函数(lcd_io_set),我们直接用这个函数把我们要连接的原创 2020-06-08 02:29:00 · 12064 阅读 · 3 评论 -
C/C++---字符分布分割得到数字,适用于STM32/ESP32等等
上一篇ESP32博文我说要更一篇字符分割的,实际上,这篇博文适用于ESP32,STM32等等等等所有的C与C++代码原理:在一个有首有尾特定的字符串中依次取出数字,我们这里用b@[data0]@[data1]@[data2]e,代表我们的字符串,'b’是字符串的开头,'e’是字符串的结尾,而中间用@分割,填入数字(支持小数),把这样的字符串再反向用分步切割加强制转化的方法把这些数字再一次取出来作用:这个其实非常有用,我们的MCU可以通过协议接收别的MCU或者电脑发出的字符串,再把字符串里面的信息提取出来原创 2020-06-08 01:29:42 · 2047 阅读 · 3 评论 -
(ESP32学习11)串口的使用(发送和接收)
首先串口这种很重要的东西应该早点讲的,但是串口发送简单,读取起来是要废一番脑筋的,所以下面有两个部分,第一部分只有ESP32的几个串口使能和发送的讲解,第二部分就包含串口接收,我们将要把读取的数据再由我们的调试串口打印出来,下一篇我还会更一篇通用博文,用C语言分几步直接从字符串中把数据截取出来,这个无论STM32还是ESP32还是别的都通用我们将要使用到HardwareSerial这个自带的库,Arduino IDE中编程,将串口映射到别的IO上直接使用首先第一部分:串口使能与开启以及发送,直接先上代码原创 2020-06-05 01:46:17 · 25809 阅读 · 15 评论 -
(ESP32学习10)内部存储的使用(Flash-EEPROM)
我们这一篇要使用ESP32的内部存储空间来实现掉电存储一些关键数据的功能,由于在ESP32上实现比STM32简单太多了,所以代码不长,驱动也是ESP32驱动库里面自带的,所以并不难话不多说先上代码,大伙儿品品其实很简单哈,核心就四个函数,申请空间函数,写入函数,保存函数,读取函数,我这里用一个IO读取其状态来代表读取还是写入状态(不知道IO操作的看我之前的博文),然后写入的值移植在0-100之间变化,所以你在更换状态之后就可以看到写模式最后写入的值,而且你关机重启,他仍然处于读取状态,读取的值任然是之前原创 2020-06-04 15:43:30 · 13395 阅读 · 3 评论 -
(ESP32学习9)PWM的输出
这一篇给大家讲讲ESP32输出PWM 的操作,我手里有一款360度的舵机 (MG 996R),来作为实验测试的模块,驱动他运动先给大家讲讲舵机的驱动吧 , 虽然之前在STM32的博文里面的其中一篇讲PWM的博文已经讲过了,但在这里再讲一遍,我们手里的舵机模块基本都是靠时基脉冲中的占空比调节来控制的,那再具体再说的通俗一点呢?就是比如我的时基为20ms , 要求舵机转到0度的所要求的的占空比为0.5ms , 那么我们就需要以20ms为一个周期 ,每个周期内的高电平时间为0.5ms(这就是占空比),然后其余时原创 2020-06-04 02:14:13 · 10809 阅读 · 2 评论 -
(ESP32学习8)单核使用FreeRTOS测试队列进行任务间通信
我上一篇博文更的是双核版的队列测试,基本在那里说的很清楚了,那里的代码注释也多的多,这里单核版本有一点不一样的地方,但实现起来比双核的要简单,所以直接给大家代码,如果不理解就去看我上一篇博文,里面说明和注释都非常清楚给大家代码,这里实现了两个进程间使用一个int数据类型的队列进行通信,当然这里应该也是支持结构体多类型的,想试试的可以去上一篇博文看看怎么弄的QueueHandle_t queue; //单核多进程测试队列,这是队列的句柄TaskHandle_t Task1; //任务0的句柄原创 2020-06-02 18:37:42 · 1559 阅读 · 0 评论 -
(ESP32学习7)双核使用队列进行任务间通信
这里是调用双核的方法哈,和我们单核使用的方法不兼容,因为有一些函数是不一样的,不通用,但是下一篇博文我会更一篇单核使用队列进行任务间通讯的问题队列是什么?队列是可以从一个任务向其他任务以并发安全的方式发送消息的机制,也就是说他的目标是实现任务间的通讯,比如A任务向名为Queue的队列中发布了数据,那么B任务就可以从Queue这个队列中又把数据给取出来,并且,这个数据是复制式的,也就是说把数据复制一份送入队列,B任务取出后对原来A的数据完全不会造成影响(实际上是形象的描述,本质上是通过一系列指针实现的),原创 2020-06-02 18:30:31 · 4515 阅读 · 1 评论 -
(ESP32学习6)双核CPU的调用
本来之前从来没有用过双核做东西,但是突然意识到他好像是双核的,所以找了一些资料更第一篇双核的调用,还是挺有趣的博文会持续更FreeRTOS与双核相关内容,这一章先做一件最简单的事情:在两个核上创建简单任务让他们跑起来先看代码再讲解#include <soc/soc.h> #include <soc/rtc_cntl_reg.h>void Task1code( void *pvParameters );void Task2code( void *pvParameters )原创 2020-06-01 03:11:47 · 21138 阅读 · 5 评论 -
(ESP32学习5)FreeRTOS使用第一步:任务的创建与删除
首先我之前也很少在ESP32上使用FreeRTOS,一般都是在stm32上用,但是看过我之前STM32教程的兄弟们应该明白FreeRTOS之所以出现在这些物联网芯片上的原因,他完全免费并且经过时间的积累受用面以及用户与资料的积累都相当可观了,现在FreeRTOS也是使用最多的嵌入式系统没有之一,毕竟免费,白嫖谁还不愿意啊,但是其系统核心与STM32上 没有区别,都是管理者的身份,目的是为了帮我们更加科学得进行进程间转换直接上代码:注释的比较清楚了下面的代码启用了两个任务,并且在执行10次之后进行删除,如原创 2020-05-30 15:28:21 · 1982 阅读 · 0 评论 -
ESP32 Aduino IDE 报错 println was not declared in this scope
这完全是个脑短路错误哈,很多人写别的代码写习惯了,直接就用println,实际上ESP32打印信息是通过Serial 打印出来的,必须指明,所以应该写Serial.println(在这个之前要先打开串口 Serial.begin(115200) ;//115200是波特率)...原创 2020-05-30 15:17:14 · 1891 阅读 · 0 评论 -
(ESP32学习4)ESP32 外部中断的使用
这一节给大家讲讲ESP32外部中断的使用其实在loop循环函数里面读取对饮应引脚的值是可以实现和外部中断差不多的效果的,但是我们这里使用Ardunio ESP32 库里面的外部中断函数来完成我们的中断,但是大家尽量不要再中断函数里面执行太长时间的代码,否则的话就直接用循环读取的方法,我这里作为演示,因为我们代码很简单只有中断演示的部分,所以在里面加了一个消抖时间(因为我使用杜邦线把引脚拉高拉低所以一定会出现很大抖动),这个消抖时间如果太长在主函数需要cpu的时候就会托住整个执行。所以消抖是否要加,加多长时原创 2020-05-30 14:50:21 · 6356 阅读 · 0 评论 -
(ESP32学习3)ESP32 WIFI连接
这一章教大家使用Arduino IDE开发让ESP32连接wifi至于连接WIFI之后,ESP32就有无限的可能了,之后会教大家与阿里云的交互以及一些别的东西,这个是可以连接手机热点的,使用之前在代码里面把用户名和密码改了就行,然后有时候开机会出现移植连接不上的情况,重启一下即可。关于下载程序,点击IDE左上方那个指向右边的箭头即可,他会自动编译然后向检测到的ESP32 端口进行烧录 , 这时候会一直显示等待,你按下boot按钮然后等到开始下载后放开即可。上代码#include "WiFi.h"原创 2020-05-30 13:25:26 · 7154 阅读 · 2 评论 -
(ESP32学习2)ADC与DAC的使用
ESP32有两个ADC,每个ADC有多个通道,同一时间每个ADC只能采集一个通道ADC输出关键字:Serial.println(analogRead(35)); //analogRead(35)获取指定IO口的模拟电压数据(该方法将阻塞直到采集完成);数据范围为0~2^12-1,即0~4095.ESP32 DAC有两个脚:25 26DAC输出关键字:dacWrite(25, 100); //25,26 就是两个DAC引脚,后面的值取值范围时0-255,具体输出电压是 200/255*电源原创 2020-05-23 04:01:15 · 4504 阅读 · 3 评论 -
ESP32下载程序失败没反应
板子上有一个boot按键,在进入下载提示之后按下,直到进入下载后放开,就行了如果是ESP32CAM那就是IO0,同样,进入下载等待后io0接地按下复位,下载完后,不再把io0接地,按下复位程序就开始跑了...原创 2020-05-23 03:22:47 · 4772 阅读 · 0 评论 -
(ESP32学习1)IO的输出高低电平与上下拉输入
使用的是Arduino IDE , 函数非常简单,但有一些需要注意的地方,我第一篇文章是给IDE换主题,大家有不喜欢目前IDE配色主题的可以去看看先给大家看看ESP32的外设图开启输出模式的关键字pinMode(32, OUTPUT ); // 开启引脚输出模式(有个别引脚不可以设置输出模式,在文章后面会提到)digitalWrite(32,HIGH); //输出高电平,LOW就是低电平开启输入模式的关键字//目前没有找到下拉输入关键字,也不知道能不能这样设置下拉,如果有知道的人可以告原创 2020-05-23 03:04:00 · 19650 阅读 · 2 评论 -
(ESP32学习0)Ardunio IDE 的安装与换色(换主题)
我的STM32系列还没有更完,先把ESP32的教程同步更一点更上,这个是第一篇ESP32的教程,先教大家安装Ardunio IDE后给环境换成黑色护眼主题,也就是换色(这个很重要哈,网上资料也不多,我这里可以帮大家换成效果很不错的配色,毕竟默认配色看起来实在是拉胯),我习惯用这个环境,也方便安装ESP32的库第一步:下载Ardunio IDE(记住自己安装的位置)官网地址:https://www.arduino.cc/en/Main/Software这个是官网地址哈,直接在里面下载下来即可下载下来后原创 2020-05-09 05:19:46 · 1204 阅读 · 1 评论