当前位置: 首页 > news >正文

为网站做一则广告友情链接平台站长资源

为网站做一则广告,友情链接平台站长资源,高新网站开发多少钱,网站建设方案概念37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&#x…

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十七:Wemos D1 ESP32 WiFi蓝牙4MB4闪存UNO R32开发板模块 UNO D1 R32(ESP32)开
发板 兼容Arduino

在这里插入图片描述
知识点:ESP32芯片

(包括:ESP32- d0wd、ESP32- d0wdq6、ESP32- d2wd、ESP32- s0wd)集成了Wi-Fi和双模式蓝牙。根据型号差异,ESP32包含一个或两个低功耗Xtensa®32位LX6微处理器(s),最大时钟速度240 MHz(通常是160 MHz)和Xtensa RAM / ROM,本地内存和JTAG接口。

在这里插入图片描述
在这里插入图片描述

处理器:
主处理器: Tensilica Xtensa 32位LX6微处理器
核心: 2 或 1(取决于变化)除ESP32-S0WD为单核外,ESP32系列所有芯片均为双核。
时钟频率:高达 240 MHz
性能:高达 600 DMIPS
超低功耗协处理器: 允许您在深度睡眠时进行 ADC 转换、计算和电平阈值。
无线连接:
的Wi-Fi: 802.11 B / G / N / E / I(802.11n标准@ 2.4GHz的高达150兆比特/秒)
蓝牙: v4.2 BR/EDR 和蓝牙低功耗 (BLE)
记忆:
内部存储器:
ROM: 448 KiB用于启动和核心功能。
SRAM: 520 KiB用于数据和指令。
RTC 快速 SRAM: 8 KiB用于从深度睡眠模式进行 RTC 启动期间的数据存储和主 CPU。
RTC 慢速 SRAM: 8 KiB用于深度睡眠模式下的协处理器访问。
电子保险丝: 1 Kibit其中 256 位用于系统(MAC 地址和芯片配置),其余 768 位保留用于客户应用,包括 Flash-Encryption 和 Chip-ID。
嵌入式闪存:Flash 通过 ESP32-D2WD 和 ESP32-PICO-D4 上的 IO16、IO17、SD_CMD、SD_CLK、SD_DATA_0 和 SD_DATA_1 内部连接。
0 MiB(ESP32-D0WDQ6、ESP32-D0WD 和 ESP32-S0WD 芯片)
2 MiB(ESP32-D2WD 芯片)
4 MiB(ESP32-PICO-D4 SiP 模块)
外部闪存和 SRAM: ESP32 最多支持四个 16 MiB 外部 QSPI闪存和 SRAM,具有基于 AES 的硬件加密,以保护开发人员的程序和数据。ESP32 可以通过高速缓存访​​问外部 QSPI flash 和 SRAM。
高达 16 MiB 的外部闪存被内存映射到 CPU 代码空间,支持 8 位、16 位和 32 位访问。支持代码执行。
多达 8 MiB 的外部闪存/SRAM 存储器映射到 CPU 数据空间,支持 8 位、16 位和 32 位访问。闪存和 SRAM 支持数据读取。SRAM 支持数据写入。
带有嵌入式 flash 的 ESP32 芯片不支持外部 flash 和外设之间的地址映射。
外设输入/输出:带有 DMA 的丰富外设接口,包括电容式触摸、ADC(模数转换器)、DAC(数模转换器)、I²C(内部集成电路)、UART(通用异步接收器/发送器) )、CAN 2.0(控制器局域网)、SPI(串行外设接口)、I²S(集成 IC 间声音)、RMII(简化的媒体独立接口)、PWM(脉宽调制)等。
安全:
支持 IEEE 802.11 标准安全功能,包括 WFA、WPA/WPA2 和 WAPI
安全启动
闪存加密
1024位OTP,客户最高768位
加密硬件加速:AES、SHA-2、RSA、椭圆曲线加密(ECC)、随机数生成器(RNG)

在这里插入图片描述

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十七:Wemos D1 R32 ESP32开发板
项目二十二:深度睡眠触摸唤醒(这里设置T0唤醒)

实验开源代码

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验一百七十七:Wemos D1 R32 ESP32开发板项目二十二:深度睡眠触摸唤醒(这里设置T0唤醒)
*/#define Threshold 40 //数值越大,灵敏度更高RTC_DATA_ATTR int bootCount = 0;
touch_pad_t touchPin;//打印 ESP32 已经从睡梦中醒来的原因
void print_wakeup_reason() {esp_sleep_wakeup_cause_t wakeup_reason;wakeup_reason = esp_sleep_get_wakeup_cause();switch (wakeup_reason){case ESP_SLEEP_WAKEUP_EXT0 : Serial.println("使用 RTC_IO 的外部信号引起的唤醒"); break;case ESP_SLEEP_WAKEUP_EXT1 : Serial.println("使用 RTC_CNTL 的外部信号引起的唤醒"); break;case ESP_SLEEP_WAKEUP_TIMER : Serial.println("定时器引起的唤醒"); break;case ESP_SLEEP_WAKEUP_TOUCHPAD : Serial.println("触摸板引起的唤醒"); break;case ESP_SLEEP_WAKEUP_ULP : Serial.println("ULP 程序引起的唤醒"); break;default : Serial.printf("唤醒不是由深度睡眠引起的: %d\n", wakeup_reason); break;}
}//打印 ESP32 已经从睡梦中醒来的原因
void print_wakeup_touchpad() {touchPin = esp_sleep_get_touchpad_wakeup_status();switch (touchPin){case 0  : Serial.println("在 GPIO 4 上检测到触摸"); break;case 1  : Serial.println("在 GPIO 0 上检测到触摸"); break;case 2  : Serial.println("在 GPIO 2 上检测到触摸"); break;case 3  : Serial.println("在 GPIO 15 上检测到触摸"); break;case 4  : Serial.println("在 GPIO 13 上检测到触摸"); break;case 5  : Serial.println("在 GPIO 12 上检测到触摸"); break;case 6  : Serial.println("在 GPIO 14 上检测到触摸"); break;case 7  : Serial.println("在 GPIO 27 上检测到触摸"); break;case 8  : Serial.println("在 GPIO 33 上检测到触摸"); break;case 9  : Serial.println("在 GPIO 32 上检测到触摸"); break;default : Serial.println("唤醒不是通过触摸板"); break;}
}void callback() {//占位符回调函数
}void setup() {Serial.begin(115200);delay(1000); //花一些时间打开串行监视器//增加引导编号并在每次重启时打印++bootCount;Serial.println("Boot number: " + String(bootCount));//也打印 ESP32 和触摸板的唤醒原因print_wakeup_reason();print_wakeup_touchpad();//在触摸板 0 (GPIO4) 上设置中断touchAttachInterrupt(T0, callback, Threshold);//将触摸板配置为唤醒源esp_sleep_enable_touchpad_wakeup();//现在去睡觉Serial.println(" 要休眠了");esp_deep_sleep_start();Serial.println("这永远不会被打印");
}void loop() {//这永远不会到达
}

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十七:Wemos D1 R32 ESP32开发板
项目二十二:深度睡眠触摸唤醒(这里设置T0唤醒)

项目串口返回情况

在这里插入图片描述

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十七:Wemos D1 R32 ESP32开发板
项目二十二:深度睡眠触摸唤醒(这里设置T0唤醒)

实验场景图
在这里插入图片描述
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十七:Wemos D1 R32 ESP32开发板
项目二十三:带定时器唤醒的简单深度睡眠(这里设置为五秒)

实验开源代码

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验一百七十七:Wemos D1 R32 ESP32开发板项目二十三:带定时器唤醒的简单深度睡眠(这里设置为五秒)
*/#define uS_TO_S_FACTOR 1000000ULL  /* Conversion factor for micro seconds to seconds */
#define TIME_TO_SLEEP  5        //时间ESP32将转入休眠状态(以秒为单位)RTC_DATA_ATTR int bootCount = 0;/*Method to print the reason by which ESP32has been awaken from sleep
*/
void print_wakeup_reason() {esp_sleep_wakeup_cause_t wakeup_reason;wakeup_reason = esp_sleep_get_wakeup_cause();switch (wakeup_reason){case ESP_SLEEP_WAKEUP_EXT0 : Serial.println("Wakeup caused by external signal using RTC_IO"); break;case ESP_SLEEP_WAKEUP_EXT1 : Serial.println("Wakeup caused by external signal using RTC_CNTL"); break;case ESP_SLEEP_WAKEUP_TIMER : Serial.println("Wakeup caused by timer"); break;case ESP_SLEEP_WAKEUP_TOUCHPAD : Serial.println("Wakeup caused by touchpad"); break;case ESP_SLEEP_WAKEUP_ULP : Serial.println("Wakeup caused by ULP program"); break;default : Serial.printf("Wakeup was not caused by deep sleep: %d\n", wakeup_reason); break;}
}void setup() {Serial.begin(115200);delay(1000); //Take some time to open up the Serial Monitor//Increment boot number and print it every reboot++bootCount;Serial.println("Boot number: " + String(bootCount));//Print the wakeup reason for ESP32print_wakeup_reason();/*First we configure the wake up sourceWe set our ESP32 to wake up every 5 seconds*/esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);Serial.println("Setup ESP32 to sleep for every " + String(TIME_TO_SLEEP) +" Seconds");/*Next we decide what all peripherals to shut down/keep onBy default, ESP32 will automatically power down the peripheralsnot needed by the wakeup source, but if you want to be a poweruserthis is for you. Read in detail at the API docshttp://esp-idf.readthedocs.io/en/latest/api-reference/system/deep_sleep.htmlLeft the line commented as an example of how to configure peripherals.The line below turns off all RTC peripherals in deep sleep.*///esp_deep_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_OFF);//Serial.println("Configured all RTC Peripherals to be powered down in sleep");/*Now that we have setup a wake cause and if needed setup theperipherals state in deep sleep, we can now start going todeep sleep.In the case that no wake up sources were provided but deepsleep was started, it will sleep forever unless hardwarereset occurs.*/Serial.println("Going to sleep now");Serial.flush();esp_deep_sleep_start();Serial.println("This will never be printed");
}void loop() {//This is not going to be called
}

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十七:Wemos D1 R32 ESP32开发板
项目二十三:带定时器唤醒的简单深度睡眠(这里设置为五秒)

项目串口返回情况

在这里插入图片描述

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十七:Wemos D1 R32 ESP32开发板
项目二十四:深度睡眠与外部唤醒(这里使用10K下拉按钮到 GPIO 34)

实验开源代码

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验一百七十七:Wemos D1 R32 ESP32开发板项目二十四:深度睡眠与外部唤醒(这里使用10K下拉按钮到 GPIO 34)
*/#define BUTTON_PIN_BITMASK 0x200000000 // 2^33 十六进制RTC_DATA_ATTR int bootCount = 0;/*
Method to print the reason by which ESP32
has been awaken from sleep
*/
void print_wakeup_reason(){esp_sleep_wakeup_cause_t wakeup_reason;wakeup_reason = esp_sleep_get_wakeup_cause();switch(wakeup_reason){case ESP_SLEEP_WAKEUP_EXT0 : Serial.println("Wakeup caused by external signal using RTC_IO"); break;case ESP_SLEEP_WAKEUP_EXT1 : Serial.println("Wakeup caused by external signal using RTC_CNTL"); break;case ESP_SLEEP_WAKEUP_TIMER : Serial.println("Wakeup caused by timer"); break;case ESP_SLEEP_WAKEUP_TOUCHPAD : Serial.println("Wakeup caused by touchpad"); break;case ESP_SLEEP_WAKEUP_ULP : Serial.println("Wakeup caused by ULP program"); break;default : Serial.printf("Wakeup was not caused by deep sleep: %d\n",wakeup_reason); break;}
}void setup(){Serial.begin(115200);delay(1000); //Take some time to open up the Serial Monitor//Increment boot number and print it every reboot++bootCount;Serial.println("Boot number: " + String(bootCount));//Print the wakeup reason for ESP32print_wakeup_reason();/*First we configure the wake up sourceWe set our ESP32 to wake up for an external trigger.There are two types for ESP32, ext0 and ext1 .ext0 uses RTC_IO to wakeup thus requires RTC peripheralsto be on while ext1 uses RTC Controller so doesnt needperipherals to be powered on.Note that using internal pullups/pulldowns also requiresRTC peripherals to be turned on.*/esp_sleep_enable_ext0_wakeup(GPIO_NUM_34,1); //1 = High, 0 = Low//If you were to use ext1, you would use it like//esp_sleep_enable_ext1_wakeup(BUTTON_PIN_BITMASK,ESP_EXT1_WAKEUP_ANY_HIGH);//Go to sleep nowSerial.println("Going to sleep now");esp_deep_sleep_start();Serial.println("This will never be printed");
}void loop(){//This is not going to be called
}

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十七:Wemos D1 R32 ESP32开发板
项目二十四:深度睡眠与外部唤醒(这里使用10K下拉按钮到 GPIO 34)

项目串口返回情况

在这里插入图片描述
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十七:Wemos D1 R32 ESP32开发板
项目二十四:深度睡眠与外部唤醒(这里使用10K下拉按钮到 GPIO 34)

实验场景图

在这里插入图片描述

http://www.dinnco.com/news/22944.html

相关文章:

  • 电子商务企业网站的推广方式软文
  • 西安北郊网站建设百度一下 你知道首页
  • asp.net网站开发与应用网站页面优化方法
  • 网页界面设计一般使用的分辨率百度地图关键词排名优化
  • 怎样自己做电影网站b站是哪个网站
  • 做中文网站的公司西部数码域名注册官网
  • 新公司董事长致辞做网站南宁seo网站排名优化公司
  • 上海网络建站模板线上网络推广怎么做
  • 做区位分析的地图网站黑帽seo排名
  • 电商类网站有几个主流程seo搜索引擎
  • 做网站的分辨率百度推广网站平台
  • 网上怎么做网站赚钱12345浏览器网址大全
  • 珠海商城网站建设网站做优化好还是推广好
  • wordpress怎么卸载甘肃seo网站
  • 做移动网站快速排盘古百度推广靠谱吗
  • 洛阳网站建设优化凡科建站网站
  • 做网站需要硬件软件seo搜索引擎优化价格
  • 做我女朋友恶搞网站外链seo
  • 个人网站可以做论坛吗网络营销总结
  • 贺州网站seo石嘴山网站seo
  • 大众点评网站团购怎么做青岛seo软件
  • 福州做公司网站厦门人才网招聘官网
  • 一个网站绑定多个域名 卖域名网络推广都有哪些方式
  • 北京网站建设培训优化关键词的方法包括
  • 有心学做网站百度提交网站的入口地址
  • 阿里云 iis 多个网站怎么做盲盒
  • 学生怎么制作网站南宁seo全网营销
  • 网站推广建设加盟seo优化推广技巧
  • 环球资源外贸网中文版seo网站关键词优化价格
  • 漯河哪个网站推广效果好百度推广官网入口