本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

基于LinkIt ONE的空气质量监测系统

发布时间:2022-09-21
分享到:

基于LinkIt ONE的空气质量监测系统

发布时间:2022-09-21
分享到:

项目在线监测温度、湿度、压力、空气质量、灰尘颗粒浓度,使用 LinkIt ONE 和传感器检测火灾。

背景

现在的世界中,目前有一半的人生活在城市中,在二十年内,世界上近 60% 的人将成为城市居民。发展中世界的城市增长最为迅速,城市平均每月新增 500 万居民。城市人口的爆炸式增长带来了前所未有的挑战,其中最严重的环境问题之一是空气污染。我们计划创建一个空气质量箱,这将是一个紧凑的便携式解决方案,用于监测空气质量以及温度、湿度、灰尘浓度和压力等各种其他参数,可以通过云访问。

我们甚至想更进一步,整合火灾探测的功能以及检测空气中不同气体的含量,从而完全足以监测空气质量。这与集成的云连接相结合,将使数据收集更容易,因此易于用于分析多个站点和数据级别,以确定各个城市和城市中的口袋的污染源。

第 1 步:设置 LinkIT

第一步:软件设置

下载 Arduino 1.5.7,然后下载 LinkIT 的最新 SDK。这将安装所需的所有驱动程序,然后您可以尝试从 SDK 运行示例项目以检查是否一切正常。

第二步:硬件设置

安装了兼容的软件和驱动程序之后,LinkIT ONE 不涉及任何重大设置。只需将板连接到您的笔记本电脑,看看它是否被识别并尝试任何示例以检查它是否工作正常。

注意:由于这是一种便携式解决方案,它可以很容易地放在一个小盒子或容器内并搁置在任何地方。目前我们已经为此目的使用了 Seeed Grove 套件盒。

完成所有这些后,建立连接并复制代码,根据您的 WiFi 设置(即 SSID 和密钥)对其进行编辑,然后将其上传到 Arduino IDE。

注意:您还可以将 WiFi 的密钥和 SSID 参数存储在名为 WiFi.txt 的单独文件中,将其存储在 LinkIT ONE 的存储中,并指示开发板从那里检索凭据。相同的代码超出了该项目的范围。

第 3 步:测试代码

打开串行监视器,您将能够看到许多不同的读数显示,即 - 湿度、压力、灰尘浓度和空气质量。LCD 屏幕将以彩色编码格式显示温度,即在相对凉爽或寒冷的温度下,它将以蓝色显示温度读数,如果热,则以红色显示温度读数。 有关如何详细设置彩色显示器的更多信息,请参阅 - https://www.hackster.io/rishabhbanga/grove-starter-kit-with-intel-galileo-gen-1-getting-started-4dd5f1 ?ref=用户&ref_id=9845&offset=3。

第 4 步:将其放在云端

下一步是集成云连接并在云上显示串行监视器中显示的所有当前数据,以便可以随时随地访问数据。

为此,我将使用联发科自己的云平台。 设置分为两部分:

1) 创建一个原型,用数据通道控制和监控数据。

2) 创建一个测试设备来支持硬件连接和数据传输。

运行程序后,湿度、温度、高度和压力值就会开始显示。空气质量显示和灰尘浓度需要进行一些调整。

这些控件中的每一个都有一个快捷菜单。打开数据通道的快捷菜单,选择显示历史选项,将显示各个数据通道的所有面值和当前值。

第 5 步:未来的拓展计划

1. 设计一个便于使用和运输的紧凑型外壳。 

2. 集成一个警报器(蜂鸣器),在发生火灾时会响起。

3. 使用 AWS 代替云服务。

WiFi Connection Arduino:

#include <LTask.h>
#include <LWifi.h>
#include <LWiFiClient.h>
#include <HttpClient.h>
#include <LDateTime.h>

#define WIFI_AP "" //WiFi SSID
#define WIFI_PASSWORD "" //WiFi Key
#define WIFI_AUTH LWIFI_WPA2 //Authentication Mode
#define per 50
#define per1 3
#define DEVICEID "" // Device ID given by cloud sandbox
#define DEVICEKEY "" //Device key given by cloud sandbox
#define SITE_URL "api.mediatek.com" //the site of the API


LWiFiClient c; //wifi client
LWiFiClient c2;
HttpClient http(c2); //http client
unsigned int rtc; //real-time clock
unsigned int lrtc;
unsigned int rtc1;
unsigned int lrtc1;
char port[4]="   ";
char connection_info[21]="                    ";
char ip[21]="              ";             
int portnum;
int val = 0;
String tcpdata = String(DEVICEID) + "," + String(DEVICEKEY) + ",0";

String TCPCMD_LED_ON = "LED_controller,1"; //tcp command to controll LED ON/OFF
String TCPCMD_LED_OFF = "LED_controller,0";

void setup() {
  //initialize
  Serial.begin(115200);
  LTask.begin();
  LWiFi.begin();
  Serial.println("Connecting to AP");
  while (0 == LWiFi.connect(WIFI_AP, LWiFiLoginInfo(WIFI_AUTH, WIFI_PASSWORD)))
    delay(1000);
  Serial.println("WiFi succeed");
  
  Serial.println("calling connection");
  while (!c2.connect(SITE_URL, 80))
    delay(1000);
  Serial.println("Connection to site succeed");
  
  getconnectInfo();
  Serial.println("getConnectionInfo succeed"); 
  
  connectTCP();
  Serial.println("connectTCP() succeed");
  
}

如果您对此项目有任何想法、意见或问题,请在下方留言。

以上内容翻译自网络,原作者:Rishabh Banga,如涉及侵权,可联系删除。

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论