4. 真正的提交到EEPROM中保存
EEPROM.write();并不能保证断电不丢失,需要提交.
5. EEPROM中读取数据
/*#include <Arduino.h> #include <EEPROM.h> bool flag = false; void setup() { Serial.begin(115200); EEPROM.begin(4096); } void loop() { if (Serial.available()) { char temp = Serial.read(); if (temp != 'x') { EEPROM.write(1, temp); EEPROM.commit(); Serial.print("写入EEPROM:"); Serial.println(EEPROM.read(1)); } else { Serial.print("EEPROM里的数据是:"); Serial.println(EEPROM.read(1)); } } }
4. 获取格式化的时间
timeClient.getFormattedTime();
5.获取时间戳(格林威治时间读秒)
timeClient.getEpochTime();
6.获取天(从NTP服务客户端开启至今的天数)
程序启动当天是1
7. 获取时分秒
Serial.println(timeClient.getHours());
8.单独设置时间偏移
timeClient.setTimeOffset(3600*8);
9. 单独设置更新频率
timeClient.setUpdateInterval(1000);
10. 例子
#include <Arduino.h> #include "WiFi.h" #include "NTPClient.h" const char *ssid = "anleng"; const char *password = "al77776666"; WiFiUDP ntpUDP; // 创建一个WIFI UDP连接 NTPClient timeClient(ntpUDP, "ntp1.aliyun.com", 60*60*8, 30*60*1000); void setup(){ Serial.begin(115200); WiFi.begin(ssid, password); while ( WiFi.status() != WL_CONNECTED ) { delay ( 500 ); Serial.print ( "." ); } timeClient.begin(); } void loop() { timeClient.update(); Serial.println(timeClient.getFormattedTime()); delay(1000); }
#include <Arduino.h> #include "BluetoothSerial.h" BluetoothSerial bt1; void setup() { Serial.begin(115200); delay(5000); bt1.begin("ESP32BLUE"); Serial.println("蓝牙串口透传已经打开"); } void loop() { if (Serial.available()) { bt1.write(Serial.read()); } if (bt1.available()) { Serial.write(bt1.read()); } delay(20); }
相信很多人都有把绿植给养死的经历,可能是浇水过多、忘记浇水、较长时间不在家不能浇水等,本文介绍一种可以灵活定制的智能浇花方案。
MicroPython 在 ESP32 上支持线程(Thread)功能,通过_thread模块实现。线程允许程序并发执行多个任务,适合处理需要同时运行的场景,例如传感器数据采集和网络通信。
掌控板3.0升级了主控,还主打AI。带有双麦克风阵列,增加了音频解码芯片,板载了一个1W喇叭,还把之前的单色屏幕换成了1.47寸的彩色屏幕,有更多的可玩性。
使用了 MicroPython 库,通过 定时器(Timer) 和 ADC(模数转换器) 功能来实时读取传感器数据。使用定时器可以实现高精度、非阻塞、低资源消耗的周期性任务,保证实时性和可靠性,特别适用于嵌入式系统中的多任务处理和低功耗场景。
ESP32的DAC函数可以实现真正的模拟输出。