使用Arduino IDE编译ESP8266+DHT22+BMP280+SGP30+GP2Y1014AUVF上传到点灯科技APP查看当前温湿度气压空气质量PM2.5

编程入门 行业动态 更新时间:2024-10-27 12:42:16

使用Arduino IDE编译ESP8266+DHT22+BMP280+SGP30+GP2Y1014AUVF上传到点灯科技APP查看当前<a href=https://www.elefans.com/category/jswz/34/1763887.html style=温湿度气压空气质量PM2.5"/>

使用Arduino IDE编译ESP8266+DHT22+BMP280+SGP30+GP2Y1014AUVF上传到点灯科技APP查看当前温湿度气压空气质量PM2.5

目录

重要提醒(必须看):

介绍

效果展示

一、点灯科技的配置

2、添加设备

3.加配置Blinker界面(UI)

二、代码步骤

1.引入库

2.接线图(检查好是否连接正确在通电)

3.代码

存在的问题

压缩包


点灯科技的下载和注册:


点灯科技的下载网站APP那一行(安卓和苹果)在注册页面,输入手机号,并点击获取验证码,可以收到手机短信验证码,输入验证码和密码后,点击 立即注册 按钮,即可注册账号,注册成功后会进入我的设备页面。


重要提醒(必须看):

免费用户的额度:

 

 购买SGP30需要注意的事项

购买时看准工作电压有的是最高只能接受1.98V,开发板上最小只有3.3V


介绍

使用esp8266,dht22,BMP280,SGP30,GP2Y1014AUVF,点灯科技平台,来创造出一个可以使用手机app查看到内温湿度空气质量PM2.5气压+上传至点灯科技平台可以查到1周内温湿度气压


效果展示


一、点灯科技的配置


2、添加设备

通过添加设备页面,您可以添加设备到您的账号。
我的设备页面点击右上角的“+”图标,即可进入添加设备页面,具体步骤如下:


3.加配置Blinker界面(UI)




我的界面设置在压缩包里

二、代码步骤

1.引入库

代码如下(示例):

#include "Adafruit_SGP30.h"//SGP30库
#include <Blinker.h>//点灯科技库
#include <DHT.h>//DHT22库
#include <Adafruit_BMP280.h>//BMP280库

库文件在我的压缩包里


2.接线图(检查好是否连接正确在通电)

  1. 开发板+5V—VVC(DHT22,GP2Y1014AUVF)
  2. 开发板GND—GND(全部模块的)
  3. 开发板+3.3V—VVC(BMP280,SGP30)
  4. 开发板D1—BMP280(SCL)
  5. 开发板D2—BMP280(SDA)
  6. 开发板D1—SGP30(SCL)
  7. 开发板D2—SGP30(SDA)
  8. 开发板D4—DHT22(DAT)
  9. 开发板A0—GP2Y1014AUVF(3)
  10. 开发板D5—GP2Y1014AUVF(5)

GP2Y1014AUVF需要连接1个150欧的电阻,和1个220μF的电容(电容和电阻店家一般都会带),具体位置如图所示。(实物图片是直接截的淘宝店家的)

具体接线图可以看其他作者的

GP2Y1014AU接线1

GP2Y1014AU接线2


3.代码

代码如下(示例):

#include <Adafruit_BMP280.h>
#define BLINKER_WIFI
#include <Wire.h>
#include "Adafruit_SGP30.h"
#include <Blinker.h>
#include <DHT.h>
#include <Wire.h>
#define DHTPIN 2      //定义DHT22模块连接管脚io2#define DHTTYPE DHT22   // 使用温度湿度模块的类型为DHT22char auth[] = "***********";//key 密钥
char ssid[] = "***********";//WiFi名称
char pswd[] = "***********";//WiFi密码BlinkerNumber TEMP("temp"); // 定义BMP280温度数据键名
BlinkerNumber PRES("pres"); // 定义BMP280气压数据键名
BlinkerNumber HUMI("cemp"); //定义DHT22湿度数据键名
BlinkerNumber CEMP("humi"); //定义DHT22温度数据键名
BlinkerNumber TVOC("tvoc"); //定义SGP30温度数据键名
BlinkerNumber ECO2("eCO2"); //定义SGP30温度数据键名
BlinkerNumber PM25("pm2.5"); //定义PM2.5温度数据键名
DHT dht(DHTPIN, DHTTYPE);    //生成DHT对象,参数是引脚和DHT的类型+
float humi_read, temp_read;//定义浮点型全局变量 储存DHT22读取的温湿度数据
float zd , cd ;
float qd ;
float ad , bd ;int dustPin=0;//PM2.5
int dustVal=0;
int ledPower=2;
int delayTime=280;
int delayTime2=40;
float offTime=9680;Adafruit_BMP280 bmp;
Adafruit_SGP30 sgp;void heartbeat()
{TEMP.print(ad);//反馈数据PRES.print(bd);//反馈数据HUMI.print(humi_read);//反馈数据CEMP.print(temp_read);//反馈数据TVOC.print(zd);//反馈数据ECO2.print(cd);//反馈数据PM25.print(qd);//反馈数据
}
void dataStorage()//云存储温湿度数据函数
{Blinker.dataStorage("temp", ad);//存BMP180储温度Blinker.dataStorage("pres", bd);//存BMP1880储气压Blinker.dataStorage("cemp", humi_read);//存DHT22储温度Blinker.dataStorage("humi", temp_read);//存DHT2储湿度
}
void setup()
{Serial.begin(115200);BLINKER_DEBUG.stream(Serial);Blinker.begin(auth, ssid, pswd);Blinker.attachHeartbeat(heartbeat);Blinker.attachDataStorage(dataStorage);pinMode(ledPower,OUTPUT);pinMode(13, OUTPUT);dht.begin();sgp.begin();bmp.begin(0X76);}
void loop() //把主代码放在这里,重复运行:
{Blinker.run();//运行BlinkergetDHT();getBMP();getSGP();getPM();
}
void getDHT()
{//DHT22float h = dht.readHumidity();float t = dht.readTemperature();        if (isnan(h) || isnan(t)) {BLINKER_LOG("DHT22测量失败!");return;}float hic = dhtputeHeatIndex(t, h, false);humi_read = h;temp_read = t;BLINKER_LOG("DHT22湿度: ", h, " %");BLINKER_LOG("DHT22温度: ", t, " *C");BLINKER_LOG("DHT22热指数:", hic, " *C");delay(100);//延时函数
}
void getBMP()
{if (!bmp.begin(0X76)) {BLINKER_LOG("BMP280测量失败");return;
}float a = bmp.readTemperature();//读取BMP180传感器的湿度 并赋值给cfloat b = bmp.readPressure();//读取BMP180传感器的湿度 并赋值给b//打印BLINKER_LOG("BMP280温度: ", a, "C");BLINKER_LOG("气压: ", b, " *Pa");ad = a;//将读取到的湿度赋值给全局变量adbd = b;//将读取到的温度赋值给全局变量bddelay(100);//延时函数 
}
void getSGP()
{if (! sgp.IAQmeasure()) {Serial.println("SGP30测量失败");return;}float z = sgp.TVOC;//读取SGP30传感器的湿度 并赋值给cfloat c = sgp.eCO2;//读取SGP30传感器的湿度 并赋值给bzd = z;cd = c;BLINKER_LOG("TVOC: ", z, " ppb\t");BLINKER_LOG("eCO2: ", c, " ppm");delay(100);//延时函数 
}
void getPM()
{
delay(100);//延时函数//PM2.5
digitalWrite(ledPower,LOW); // power on the LED
delayMicroseconds(delayTime);
dustVal=analogRead(dustPin); // read the dust value via pin 5 on the sensor
delayMicroseconds(delayTime2);
digitalWrite(ledPower,HIGH); // turn the LED off
delayMicroseconds(offTime);
float q = dustVal;//读取PM2.5传感器的湿度 并赋值给qqd = q;BLINKER_LOG("PM2.5: ", q, "m3");
Blinker.delay(1000);//延时函数
}

在我的压缩包里


压缩包

.html

更多推荐

使用Arduino IDE编译ESP8266+DHT22+BMP280+SGP30+GP2Y1014AUVF上传到点灯科技APP查看当前温湿度气压空气质量PM2

本文发布于:2024-02-27 16:32:37,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1707388.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:温湿度   空气质量   气压   科技   Arduino

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!