ESP8266 SGP30气体传感器采集推送到ThingsPanel
这个教程的目的是通过ESP8266开发板ESP-12F采集SGP30气体传感器的二氧化碳和TVOC ,并通过MQTT推送到开源物联网平台ThingsPanel。
SGP30是一款二氧化碳(CO2)和有机化合物(TVOC)气体传感器模块,它可以通过检测环境中的CO2和TVOC浓度来实现空气质量监测和控制。专为轻松集成到空气净化器、按需新风控制和物联网应用中而设计。SGP30 设计用于智能家居、家电和物联网应用,它提供两个经过校准的空气质量信号和湿度补偿功能.SGP30 可提供有关空气质量的更详尽指数。针对现实生活环境中的污染气体,该传感器具有无与伦比的可靠性,可以实现独一无的长期稳定性和低漂移.
SGP30气体传感器
采集监控效果
开发板资料:
1. 硬件连接:
首先,将SGP30模块与微控制器连接。SGP30模块使用基于I2C协议的通信方式,可以使用以下引脚连接:
-
模块的SDA引脚连接到微控制器的对应SDA引脚。
-
模块的SCL引脚连接到微控制器的对应SCL引脚。
-
模块的VIN引脚连接到微控制器的5V电源引脚。
-
模块的GND引脚连接到微控制器的地线引脚。
2.安装Arduino IDE
首先,确保你已经安装了必要的库。你可以使用Arduino IDE的库管理器来安装。你可能需要以下库:
1. Adafruit SGP30 Library
2. Adafruit Unified Sensor Library
3. Pubsubclient
4. ArduinoJson
3.在ThingsPanel平台中创建设备
- 测试地址dev.thingspanel.cn
- 测试账号 admin@thingspanel.cn
- 密码 123456
创建设备时需要选择SGP30气体传感器插件。
4.在Arduino IDE中刷写代码
需要修改Wi-Fi热点名、密码、MQTT用户名。
先点击验证再上传代码。
#include <Wire.h>
#include <Adafruit_SGP30.h>
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <ArduinoJson.h>
StaticJsonDocument<200> doc;
Adafruit_SGP30 sgp;
// WiFi和MQTT设置
const char* ssid = "Redmi";
const char* password = "123456789";
const char* mqtt_server = "dev.thingspanel.cn";
const char* mqtt_user = "cf8598fa-04dc-2514-4066-bad0ec5227xx";
const char* mqtt_password = ""; // 密码为空
const char* mqtt_topic = "device/attributes";
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
Serial.begin(115200);
// 连接WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("连接到WiFi...");
}
Serial.println("已连接到WiFi");
client.setServer(mqtt_server, 1883);
// 开始I2C通信
Wire.begin(2, 14); // SDA, SCL
// 检查I2C设备
Serial.println("扫描I2C设备...");
byte error, address;
int nDevices = 0;
for(address = 1; address < 127; address ) {
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0) {
Serial.print("找到I2C设备地址: ");
Serial.print(address, HEX);
Serial.println(" !");
nDevices ;
}
}
if (nDevices == 0) {
Serial.println("没有找到I2C设备。");
} else {
Serial.println("完成。");
}
if (!sgp.begin()){
Serial.println("传感器不可用!");
while (1);
}
Serial.println("SGP30传感器已就绪!");
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
if (!sgp.IAQmeasure()) {
Serial.println("测量失败!");
return;
}
Serial.print("eCO2: ");
Serial.print(sgp.eCO2);
Serial.print(" ppm\t");
Serial.print("TVOC: ");
Serial.print(sgp.TVOC);
Serial.println(" ppb");
// 使用ArduinoJson生成MQTT消息
StaticJsonDocument<100> doc;
doc["eco2"] = sgp.eCO2;
doc["tvoc"] = sgp.TVOC;
char payload[100];
serializeJson(doc, payload);
client.publish(mqtt_topic, payload);
delay(1000); // 1秒
}
void reconnect() {
while (!client.connected()) {
Serial.print("尝试MQTT连接...");
if (client.connect("ESP8266Client", mqtt_user, mqtt_password)) {
Serial.println("已连接");
} else {
Serial.print("失败, rc=");
Serial.print(client.state());
Serial.println(" 5秒后再试");
delay(5000);
}
}
}
5.完工
刷写代码完成后,ThingsPanel平台即可收到数据,如开头的图所示。
——————————
说明:TVOC是“Total Volatile Organic Compounds”的英文缩写,意思是总挥发性有机化合物, TVOC是三种影响室内空气品质污染中影响较为严重的一种。TVOC是指室温下饱和蒸气压超过了133.32Pa的有机物,其沸点在50℃至250℃,在常温下可以蒸发的形式存在于空气中,它的毒性、刺激性、致癌性和特殊的气味性,会影响皮肤和黏膜,对人体产生急性损害。世界卫生组织(WHO)、美国国家科学院/国家研究理事会(NAS/NRC)等机构一直强调TVOC是一类重要的空气污染物。美国环境署(EPA)对VOC的定义是:除了一氧化碳,二氧化碳,碳酸,金属碳化物,碳酸盐以及碳酸铵外,任何参与大气中光化学反应的含碳化合物。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgiifah
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13