ESP32 Arduino接口与气体传感器图,工作,代码
这个应用程序说明涵盖了ESP32 Arduino接口与气体传感器图及其工作。介绍了所使用的气体传感器,并提到了ESP32 arduino代码。
关于气体传感器
我们在家庭和办公室的天花板上看到过用于探测火灾或烟雾的烟雾探测器。MQ-02型气体传感器能够检测各种气体,如H2,酒精,LPG, CH4和烟雾。它对烟的反应非常快。图为MQ-02版气体传感器。
当气体进入它的线圈区域时,它产生电压。电压取决于气体浓度,即气体浓度越高,输出电压越高。该电压由arduino或基于ESP32板的单片机或MCU读取。根据电压测量,根据编程采取适当的措施。
气体传感器(MQ-02) | ESP32板或arduino板 |
---|---|
供应 | Arduino上的Vcc (+5V) ESP32板为3V3 |
地面 | 接地 |
模拟输出 | A0引脚(模拟输入) |
数字输出 | arduino或ESP32数字输入 |
表中提到了MQ-02板的引脚布局及其与arduino或ESP32板的接口。的优点和缺点气体传感器类型>>.
关于ESP32单板
ESP32板内置32位微处理器。它有只读存储器和SRAM。它支持wifi和蓝牙低能耗规格。你可以使用arduino,ESP32或ESP8266接口气体传感器。
ESP32单板的特点如下:
•CPU: Xtensa®单/双核32位LX6微处理器
•内存:448 KB ROM, 520 KB SRAM
时钟:内部8 MHz振荡器,内部RC振荡器,外部2 MHz到60 MHz晶体振荡器等。
•定时器:两个定时器组,一个RTC定时器和RTC看门狗。
•外设接口:34个gpio, 4个SPI, 2个I2S, 2个I2C, 3个UART, CAN 2.0, 1个主机(SD/eMMC/SDIO), 1个从机(SDIO/SPI)。
•ADC: 12位SAR ADC,最多可达18通道。
•DAC: 2 x 8位DAC
•传感器:10 ×触摸传感器,霍尔传感器
•红外:IR (Tx/Rx)
•PWM:电机PWM, LED PWM可达16路
•安全性:1024位OTP最高可达768位
ESP32与气体传感器图的接口及其工作
如图-1所示,气体传感器的3根引脚与ESP32板连接,具体情况见上表。
Arduino或ESP32和气体传感器接口代码
以下是通过arduino IDE编译并上传到arduino板的ESP32 arduino代码。代码片段用于将气体传感器的读数上传到adafruit等云服务器。如前所述,Arduino或ESP32的A0接口连接MQ-02的模拟输出。
代码中蜂鸣器连接arduino引脚“10”,气体传感器连接arduino引脚“A5”。同样的代码可以修改和编译ESP32板移植。当烟雾阈值超过设定的阈值时,蜂鸣器可开启。
Arduino Uno代码
int smokeA0 = A5;
int sensorThreshold = 400;
无效设置(){
pinMode(蜂鸣器、输出);
pinMode (smokeA0、输入);
Serial.begin (9600);
}
无效循环(){
int analogSensor = analoggread(冒烟a0);
系列。print("Pin A0: ");
以analogSensor);
//检查是否达到阈值
if (analogSensor > sensorThreshold)
{
音调(蜂鸣器,1000,200);
}
其他的
{
能(蜂鸣器);
}
延迟(100);
}
ESP32代码
# include < EEPROM.h >
# include
int val;
#定义你的SSID
#定义你的Wifi密码
#定义服务器
#定义端口1883
# Adafruit用户ID
#定义你的aio键
#定义USE_SERIAL
#定义气体传感器A0
// NodeMCU的A0连接MQ-02的Analog pin
Void设置()
{
Serial.begin (115200);
延迟(10);
}
无效循环()
{
val = analogRead (GAS_SENSOR):
// Analog read用于读取任何模拟输入。
系列。打印(val);
//在这里,我们打印从串行监视器读取的值。
系列。Println (" ");
延迟(100);
}
WiFiClient我;
Adafruit MQTT客户端MQTT (&me,服务器,端口,用户名,aiokey);
Adafruit MQTT_Publishgas_data = Adafruit_MQTT_Publish (&mqtt,用户名“/feeds/气体传感器”);
无效的设置()
{
系列。开始(115200);
延迟(10);
系列。println(“连接”);
并同时wifi_name);
WiFi。开始(wifi_name,密码);
while(WiFi.status() != WL_CONNECTED)
{
延迟(500);
并同时(“。”);
}
ESP32代码,用于将气体传感器数据上传到云端
{
如果(mqtt.connected ())
{
int Gas_value = analog (A0);
以Gas_value);
系列。打印("…");
如果(Gas_data.publish (Gas_value))
{
系列。println(“成功”);
}
其他的
{
系列。打印(“尝试”);
}
}
延迟(2000);
}
结论:在这个应用笔记中,我们看到了气体传感器与ESP32板的接口。ESP32板也用于接口不同类型的传感器应用。arduino接口的典型传感器有声音传感器、陀螺传感器、LDR传感器、GPS传感器、颜色传感器、心跳传感器、pH传感器等。
物联网系统芯片教程相关链接
本教程的IoT(物联网)部分涵盖以下子主题:
主要的教程物联网部分物联网的文章移动物联网组件传感器印度公司天线类型无线技术物联网收发器SoC