硬件准备:
主板:ESP32开发板
OELD屏幕:0.96寸 128*64 IIC通信
OELD屏幕-主连接图:
SDA:GPIO21
SCL:GPIO22
GND:GND
VCC:3V3
开始编程:
Vs Code 的PlatformIO IDE 插件 Arduino框架
引入U8G2
查看是否引入成功
main文件:
代码:
开始运行:#include <Arduino.h> #include <U8g2lib.h> #include <Wire.h> U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2( U8G2_R0, /* clock=*/ 22, /* data=*/ 21, /* reset=*/ U8X8_PIN_NONE); void setup(void) { u8g2.begin(); u8g2.enableUTF8Print(); //中文必要设置 } uint8_t z_y=20; uint8_t z_x=0; void loop(void) { u8g2.setFont(u8g2_font_unifont_t_chinese2); //含有中文的字库 //u8g2.setFont(u8g2_font_ncenB14_tr); //没有中文的字库 u8g2.firstPage(); do { u8g2.setCursor(z_x, z_y); //动态改变位置 u8g2.print("你好,世界!"); //中文 u8g2.setCursor(10,40); u8g2.print("Hello,world!"); //普通英文 } while ( u8g2.nextPage() ); delay(1000); z_y++; }
运行结果:
PID控制算法是结合比例、积分和微分三种环节于一体的控制算法,它是连续系统中技术最为成熟、应用最为广泛的一种控制算法。
相信很多人都有把绿植给养死的经历,可能是浇水过多、忘记浇水、较长时间不在家不能浇水等,本文介绍一种可以灵活定制的智能浇花方案。
MicroPython 在 ESP32 上支持线程(Thread)功能,通过_thread模块实现。线程允许程序并发执行多个任务,适合处理需要同时运行的场景,例如传感器数据采集和网络通信。
掌控板3.0升级了主控,还主打AI。带有双麦克风阵列,增加了音频解码芯片,板载了一个1W喇叭,还把之前的单色屏幕换成了1.47寸的彩色屏幕,有更多的可玩性。
使用了 MicroPython 库,通过 定时器(Timer) 和 ADC(模数转换器) 功能来实时读取传感器数据。使用定时器可以实现高精度、非阻塞、低资源消耗的周期性任务,保证实时性和可靠性,特别适用于嵌入式系统中的多任务处理和低功耗场景。
ESP32的DAC函数可以实现真正的模拟输出。
ESP32 没有Arduino输出 PWM 的 analogWrite(pin, value) 方法,取而代之的 ESP32 有一个 LEDC 来实现PWM功能。
本文学习如何使用ESP32开发板来进行多线程的开发。
ESP8266有三种工作模式,分别为:AP,STA,AP混合STA
ESP32有四个SPI外设,分别为SPI0、SPI1、HSPI和VSPI。
ESP32有2个硬件I2C总线接口,接口可以配置为主机或从机模式。