0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

城市噪聲與大氣污染監(jiān)測(cè)裝置的制作教程

454398 ? 來(lái)源:wv ? 2019-09-06 17:00 ? 次閱讀

第1步:工作原理

大腦該設(shè)備是粒子氬氣。 Argon是一個(gè)功能強(qiáng)大的支持Wi-Fi的開(kāi)發(fā)板,可以作為獨(dú)立的Wi-Fi端點(diǎn)或用于粒子網(wǎng)絡(luò)網(wǎng)絡(luò)的Wi-Fi網(wǎng)關(guān)。它基于Nordic nRF52840,內(nèi)置電池充電電路,因此可以輕松連接Li-Po并在幾分鐘內(nèi)部署您的本地網(wǎng)絡(luò)。氬氣非常適合將現(xiàn)有項(xiàng)目連接到粒子設(shè)備云或作為連接整組本地端點(diǎn)的網(wǎng)關(guān)。

為了收集空氣質(zhì)量,溫度,濕度和噪聲水平,幾個(gè)傳感器連接到粒子氬氣。 Argon從傳感器收集數(shù)據(jù)并將數(shù)據(jù)上傳到粒子云。一些Web服務(wù)用于數(shù)據(jù)可視化和分析。所有Web服務(wù)都通過(guò)webhook連接到粒子云。 Ubidots用于監(jiān)視和可視化來(lái)自瀏覽器的數(shù)據(jù),firebase用于存儲(chǔ)數(shù)據(jù)并將數(shù)據(jù)顯示給移動(dòng)應(yīng)用程序。 Zapier用于在電子表格中存儲(chǔ)數(shù)據(jù),電子表格可以通過(guò)IFTTT發(fā)送到任何電子郵件地址。

該設(shè)備由5W太陽(yáng)能電池板供電。鋰離子電池用于存儲(chǔ)太陽(yáng)能并且用于對(duì)電池DFRobot 5V充電,使用1A太陽(yáng)能電源管理器。

步驟2:準(zhǔn)備Grove電纜

兩個(gè)Grove傳感器用于收集空氣質(zhì)量數(shù)據(jù)和溫度和濕度數(shù)據(jù)。

Seeed Grove - 空氣質(zhì)量傳感器v1.3:該傳感器設(shè)計(jì)用于全面監(jiān)控室內(nèi)空氣狀況。它對(duì)各種有害氣體都有反應(yīng),如一氧化碳,酒精,丙酮,稀釋劑,甲醛等。由于測(cè)量機(jī)制,該傳感器無(wú)法輸出特定數(shù)據(jù)來(lái)定量描述目標(biāo)氣體的濃度。但它仍然足以用于僅需要定性結(jié)果的應(yīng)用,如自動(dòng)清新噴霧器和自動(dòng)空氣循環(huán)系統(tǒng)。

Seeed Grove - 溫度和濕度傳感器(DHT11): DHT11是Arduino和Raspberry Pi最常用的溫度和濕度模塊。它因其眾多優(yōu)點(diǎn)而受到硬件愛(ài)好者的廣泛青睞。例如。低功耗和出色的長(zhǎng)期穩(wěn)定性??梢砸苑浅5偷某杀精@得相對(duì)高的測(cè)量精度。單總線數(shù)字信號(hào)通過(guò)內(nèi)置ADC輸出,節(jié)省了控制板的I/O資源。

所有樹(shù)叢傳感器通過(guò)樹(shù)脂電纜連接到其他樹(shù)叢連接器。不幸的是,樹(shù)林連接器不是友好的。為了將樹(shù)叢傳感器連接到面包板,我在中間切割樹(shù)叢電纜,每個(gè)部分焊接到面包板上以連接兩個(gè)樹(shù)叢傳感器。

用于將氬板放置到PCB而不是直接焊接氬電路板到PCB我使用了母針頭,這樣就可以很容易地從PCB板上拔下氬板。

步驟3:用跳線連接

將溝槽電纜焊接到PCB板上并焊接氬板的母針頭后,我們需要將溝槽傳感器引腳連接到氬氣根據(jù)原理圖的引腳。我使用額外的跳線連接信號(hào)引腳。為了連接電源引腳,使用相同的跳線。

GPS模塊和模擬聲級(jí)計(jì)通過(guò)公引腳接頭連接到PCB。

步驟4:準(zhǔn)備Solar Power Manager

DFRobot太陽(yáng)能電源管理器5V是一款小型電源和高效太陽(yáng)能電源管理模塊,專為5V太陽(yáng)能電池板而設(shè)計(jì)。它具有MPPT(最大功率點(diǎn)跟蹤)功能,可最大限度地提高太陽(yáng)能電池板的效率。該模塊可通過(guò)USB充電器或太陽(yáng)能電池板為3.7V鋰電池提供高達(dá)900mA的充電電流。具有5V 1A輸出的ON/OFF可控DC-DC轉(zhuǎn)換器滿足各種太陽(yáng)能項(xiàng)目和低功率應(yīng)用的需求。該模塊還采用各種電池,太陽(yáng)能電池板和輸出保護(hù)功能,大大提高了太陽(yáng)能項(xiàng)目的穩(wěn)定性和安全性。

模塊配有一個(gè)散熱片,4個(gè)帶有4個(gè)螺絲的hax墊片。我使用雙面硅膠帶將散熱器放在標(biāo)記的位置。我還使用螺絲將hax墊片連接到每個(gè)孔。

步驟5:放置傳感器

使用三個(gè)傳感器制作設(shè)備。在前一步驟中討論了兩個(gè)樹(shù)叢傳感器。為了收集噪聲水平,使用了重力模擬聲級(jí)計(jì)。這是一款A(yù)rduino和Particle兼容的聲級(jí)計(jì)(也稱為分貝計(jì),噪音計(jì))。它使用儀器電路和低噪聲麥克風(fēng),使其能夠精確測(cè)量周?chē)h(huán)境的聲級(jí)。本產(chǎn)品采用儀表電路,低噪音麥克風(fēng),使其非常珍貴。它支持3.3~5.0V寬輸入電壓,0.6~2.6V電壓輸出。分貝值與輸出電壓成線性關(guān)系,無(wú)需復(fù)雜算法即可實(shí)現(xiàn)簡(jiǎn)單的轉(zhuǎn)換。該連接器即插即用,無(wú)需焊接,因此該產(chǎn)品可輕松應(yīng)用于您的應(yīng)用中。它可以應(yīng)用于環(huán)境噪聲測(cè)試,如公路噪聲監(jiān)測(cè)站,臥室噪聲監(jiān)測(cè)等。

為了將所有傳感器放置在PCB板上,我使用了泡沫型雙面膠帶。在不損壞傳感器或任何跡線的情況下,很容易將設(shè)備從PCB板上移除。

步驟6:放置電源管理器電路和GPS

NEO-6M GPS模塊如下圖所示。它配有一個(gè)外部天線,沒(méi)有插頭引腳。所以,你需要得到并焊接一些。

該模塊有一個(gè)外置天線和一個(gè)內(nèi)置EEPROM。

接口RS232 TTL

電源:3V至5V

默認(rèn)波特率:9600 bps

使用標(biāo)準(zhǔn)NMEA句子

NEO-6M GPS模塊還兼容其他微控制器板。 NEO-6M GPS模塊有四個(gè)引腳:VCC,RX,TX和GND。該模塊使用TX和RX引腳通過(guò)串行通信與Arduino進(jìn)行通信,因此布線不會(huì)更簡(jiǎn)單:

Neo 6 GPS也通過(guò)雙面膠帶連接。為了放置電源管理器我使用了螺絲。 請(qǐng)勿使用任何膠帶作為電源管理器,因?yàn)樗鼤?huì)產(chǎn)生足夠的磁頭,您應(yīng)該留出一些空間來(lái)循環(huán)空氣以防止損壞。

第7步:連接電線

一大使用DFRobot太陽(yáng)能管理器的優(yōu)勢(shì)在于它可以通過(guò)USB電纜直接為其他設(shè)備供電。因此,您可以通過(guò)USB電纜將氬板直接連接到電源管理器電路。另一個(gè)優(yōu)點(diǎn)是您還可以通過(guò)USB電纜將太陽(yáng)能電池板連接到充電器電路。因此不需要跨接線或焊接。

項(xiàng)目中使用的太陽(yáng)能電池板是PET封裝的高性能,輕便,便攜式單晶硅太陽(yáng)能電池板,集成穩(wěn)壓器輸出電壓為5V,帶有工作指示燈,USB A型母 - 端口輸出,即插即用。它可以在各種環(huán)境中提供充足的電力,以防止系統(tǒng)關(guān)閉,即使在下雨天。與DFRobot太陽(yáng)能電源管理板配合使用時(shí),太陽(yáng)能電池板的能量將特別高效。面板上有開(kāi)孔和銅扣,因此可以直接安裝在背包上,便于攜帶和使用。超薄,輕巧的設(shè)計(jì)僅重90克。它比傳統(tǒng)玻璃包裝中的太陽(yáng)能電池板輕得多。

步驟8:進(jìn)行電池連接

從太陽(yáng)能中收集的能量存儲(chǔ)在兩個(gè)并聯(lián)的鋰離子充電電池中。并聯(lián)連接會(huì)增加您的額定電流,但電壓將保持不變。在“并聯(lián)”連接中,2個(gè)3.7伏電池將提供3.7V輸出,但放大器增加到2倍。重要的是要注意,由于電池的安培數(shù)增加,您可能需要使用較重的電纜來(lái)防止電纜燒壞。

要并聯(lián)電池,請(qǐng)使用跳線連接兩者。正極端子和另一根跨接線將兩個(gè)電池的負(fù)極端子相互連接。消極負(fù)面和積極正面。您可以將負(fù)載連接到其中一個(gè)電池,它將同樣耗盡兩個(gè)電池。但是,保持電池均衡的首選方法是連接電池組一端的正極,另一端連接負(fù)極。

太陽(yáng)能管理器可以給兩個(gè)電池充電在距離5W太陽(yáng)能電池板的四小時(shí)內(nèi)。電池連接到專用于電池輸入的綠色連接器。 spdt開(kāi)關(guān)用于給出電路的開(kāi)/關(guān)選項(xiàng)。

步驟9:制作外殼

對(duì)于任何室外設(shè)備來(lái)說(shuō),外殼對(duì)于保護(hù)雨水和其他環(huán)境危害非常重要。我選擇膠合板制作封面。您可以使用3D打印的外殼。制作一個(gè)完整的盒子需要7個(gè)膠合板。

兩塊膠合板的切角為60度。這是我的城市達(dá)卡的平均傾斜角度。頂部有一個(gè)孔,可從面板上拔出USB線。

使用木質(zhì)環(huán)氧樹(shù)脂溶液和指甲將不同的木塊連接在一起。您可以使用砂紙來(lái)完成外觀。您可以制作任何尺寸的外殼,方便但請(qǐng)確保您有足夠的空間將電路板放入盒子內(nèi)。您還應(yīng)該允許盒子內(nèi)的空氣和聲音準(zhǔn)確讀取傳感器。

步驟10:放置太陽(yáng)能電池板

放置太陽(yáng)能電池板的定位與在特定情況下使用哪種類(lèi)型的太陽(yáng)能電池板同樣重要。當(dāng)太陽(yáng)光線垂直射到其表面時(shí),太陽(yáng)能電池板將利用最大的功率。確保太陽(yáng)能電池板面向正確的方向并具有適當(dāng)?shù)膬A斜度將有助于確保它們?cè)谧铋L(zhǎng)時(shí)間內(nèi)暴露在最高強(qiáng)度的陽(yáng)光下時(shí)產(chǎn)生最大能量。

在北半球,太陽(yáng)能電池板放置的一般規(guī)則是,太陽(yáng)能電池板應(yīng)該面向真南(以及南部,真正的北部)。通常,這是最佳方向,因?yàn)樘?yáng)能電池板將全天接收直射光。但是,必須考慮磁南和真南之間的差異。磁南是使用指南針時(shí)顯示的“南”,這個(gè)南指向地球的南磁極。然而,太陽(yáng)能電池板需要面向太陽(yáng)能或地理南部,這是朝向南極的方向。根據(jù)相同的推理,如果太陽(yáng)能電池板位于南半球,則面板應(yīng)朝向正北方向。

太陽(yáng)能電池板的角度或傾斜也是一個(gè)重要的考慮因素。應(yīng)該設(shè)定太陽(yáng)能電池板以在給定年份產(chǎn)生最多能量的角度由地理緯度決定。最佳年度能量產(chǎn)生的一般規(guī)則是將太陽(yáng)能電池板傾斜角度設(shè)定為等于地理緯度。例如,如果太陽(yáng)能電池陣列的位置在50°緯度,則最佳傾斜角也是50°?;旧?,太陽(yáng)能電池板越靠近赤道,電池板應(yīng)該越向上指向。面板離極點(diǎn)越近,它們?cè)较虺嗟纼A斜。

太陽(yáng)能電池板的角度也會(huì)因氣候和環(huán)境因素影響功率輸出。在北方氣候中,低傾斜面板上的積雪可以減少或完全阻擋太陽(yáng)光線在冬季到達(dá)太陽(yáng)能電池板。

步驟11:將設(shè)備放置在機(jī)柜內(nèi)

制作盒子后,是時(shí)候?qū)㈦娐钒宸旁诜忾]器內(nèi)。將電路板放在底部后,加上螺絲將電路固定在盒子上。使用熱膠將GPS天線和wifi天線固定。

步驟12:開(kāi)發(fā)和刻錄固件

該設(shè)備的程序是使用Particle Web IDE開(kāi)發(fā)的。要使用Particle web IDE開(kāi)發(fā)程序,您需要登錄粒子控制臺(tái)。登錄后打開(kāi)一個(gè)新項(xiàng)目并粘貼以下代碼:

//All external libraries are added here

#include “Particle.h”

#include “Adafruit_DHT.h”

#include

#include “Arduino.h”

#include

#define DHTPIN 2 // what pin DHT11 sensor is connected to

#define DHTTYPE DHT11 // Type of DHT sensor

#define SoundSensorPin A1 //this pin read the analog voltage from the sound level meter

#define VREF 5.0 //voltage on AREF pin, default:operating voltage

//Object declaration for DHT sensor

DHT dht(DHTPIN, DHTTYPE);

//Object declaration for air quality sensor

//AirQuality airqualitysensor;

//Object declaration for GPS

TinyGPSPlus gps;

//Global variables for the sensor data

char air_quality[20] = “”;

float temperature = 0.0;

float humidity = 0.0;

float dbValue = 0.0;

float latitude = 0.0;

float longitude = 0.0;

float startTime;

int current_quality =-1;

bool requestSent = false;

void hookResponseHandler(const char *event, const char *data);

void setup() {

Serial1.begin(9600); //default buad rate for NEO-6M gps is 9600

dht.begin(); //initialize dht sensor

airqualitysensor.init(A0);//initialize air quality sensor

//receive response after publishing data to particle cloud

Particle.subscribe(“hook-response/Ubidots”, hookResponseHandler, MY_DEVICES);

startTime = millis(); //time count start

}

void loop() {

if (millis() 》 startTime + 30000) { //publish data every 30 second

startTime = millis();

//all the global variables are automatically updated on functions call

read_dht_value();

read_air_quality();

read_sound_level();

publish_data();

delay(1000);

}

while (Serial1.available() 》 0){

if (gps.encode(Serial1.read())){

if (gps.location.isValid()){

latitude = gps.location.lat(); //get latitude and longitude

longitude = gps.location.lng();

}

delay(10000); //Check for gps data every 10 seconds

}

}

}

void hookResponseHandler(const char *event, const char *data) {

float elevation = atof(data);

}

//this function reads temperature and humidity from dht11 sensor

void read_dht_value() {

//Reading temperature or humidity takes about 250 milliseconds!

//Sensor readings may also be up to 2 seconds ‘old’ (its a

// very slow sensor)

float h = dht.getHumidity();

//Read temperature as Celsius

float t = dht.getTempCelcius();

// Check if any reads failed and exit early (to try again)。

if (isnan(h) || isnan(t)) {

return;

}

else {

temperature = t;

humidity = h;

}

}

//this function reads the quality of the air

void read_air_quality()

{

current_quality=airqualitysensor.slope();

if (current_quality 》= 0)// if a valid data returned.

{

if (current_quality==0)

air_quality = “Very High pollution”;

else if (current_quality==1)

air_quality = “High pollution”;

else if (current_quality==2)

air_quality = “Low pollution”;

else if (current_quality ==3)

air_quality = “Fresh air”;

}

}

//interrupt service routine for air quality sensor

ISR(TIMER2_OVF_vect)

{

if(airqualitysensor.counter==122)//set 2 seconds as a detected duty

{

airqualitysensor.last_vol=airqualitysensor.first_vol;

airqualitysensor.first_vol=analogRead(A0);

airqualitysensor.counter=0;

airqualitysensor.timer_index=1;

PORTB=PORTB^0x20;

}

else

{

airqualitysensor.counter++;

}

}

// This function read the data from sound sensor and convert the value into decibel.

void read_sound_level()

{

float voltageValue;

voltageValue = analogRead(SoundSensorPin) / 1024.0 * VREF;

dbValue = voltageValue * 5.0; //convert voltage to decibel value

}

void publish_data(){

char data[256];

char data1[256];

//I made two data array because ubidots required position value with a context, firebase doesn‘t

snprintf(data, sizeof(data), “{”position“: {”value“:1, ”context“:{”lat“: %.6f, ”lng“: %.6f}}, ”temp“:%.2f, ”noise“:%.2f, ”air“: {”value“:1, ”context“:{”quality“: ”%s“}}, ”humid“:%.2f}”,

latitude, longitude, temperature, dbValue, air_quality, humidity);

snprintf(data1, sizeof(data1), “{”lat“: %.6f, ”lng“: %.6f, ”temp“:%.2f, ”noise“:%.2f, ”air“:”%s“, ”humid“:%.2f}”,

latitude, longitude, temperature, dbValue, air_quality, humidity);

Particle.publish(“Ubidots”, data, PRIVATE); //trigger webhooks for Ubidots

Particle.publish(“Google_Sheet”, data1, PRIVATE); //trigger webhook to Zapier for uploading to Google Sheet

Particle.publish(“Firebase”, data1, PRIVATE); //Store data to firebase

Particle.publish(“Firebase_put”, data1, PRIVATE); //Update data to firebase.

//The main difference here is that the requestType is PUT, not POST. The PUT method doesn’t create a table of values;

//it just creates a single element to hold the data, overwriting any previous data at that location.

}

步驟13:為Ubidots配置粒子Webhook

項(xiàng)目中使用了多個(gè)Web服務(wù)。我使用Ubidots來(lái)顯示數(shù)據(jù),使用Firebase實(shí)時(shí)數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)并通過(guò)智能手機(jī)應(yīng)用程序訪問(wèn)數(shù)據(jù),Zapier使用數(shù)據(jù)制作Google Sheet,使用IFTTT將Google Sheet發(fā)送到用戶的電子郵件。所有Web服務(wù)都通過(guò)Webhook連接到粒子云。

webhook(也稱為Web回調(diào)或HTTP推送API)是一種應(yīng)用程序?yàn)槠渌麘?yīng)用程序提供實(shí)時(shí)信息的方式。 webhook會(huì)在發(fā)生時(shí)將數(shù)據(jù)傳遞給其他應(yīng)用程序,這意味著您可以立即獲取數(shù)據(jù)。與典型的API不同,您需要非常頻繁地輪詢數(shù)據(jù)才能實(shí)時(shí)獲取數(shù)據(jù)。這使得webhooks對(duì)提供者和消費(fèi)者都更有效。使用粒子控制臺(tái)為粒子設(shè)備配置webhook非常容易。在接下來(lái)的幾個(gè)步驟中,我將向您展示如何為此項(xiàng)目中使用的不同Web服務(wù)配置webhook。

要開(kāi)始您的Particle - Ubidots連接,首先需要設(shè)置粒子設(shè)備(氬氣,光子,粒子帳戶中的Core或Electron)。點(diǎn)擊此處了解使用Particle設(shè)備平臺(tái)設(shè)置設(shè)備的簡(jiǎn)單步驟。

您還需要一個(gè)Ubidots帳戶。 Ubidots允許免費(fèi)教育帳戶,并免費(fèi)提供5000積分。

第1步:從https://ubidots.com/education/創(chuàng)建一個(gè)Ubidots帳戶登錄您的帳戶。

第2步:從右上角點(diǎn)擊API憑據(jù)并記下默認(rèn)令牌。

第3步:登錄您的粒子帳戶

第4步:轉(zhuǎn)到粒子控制臺(tái),選擇“集成”,然后單擊“新集成”

第5步:選擇“Webhook”

第6步:提供事件名稱( 1)。此名稱必須與Ubidots的Perticle.publish()方法的事件名稱相同。我把這個(gè)名字命名為“Ubidots”。

第7步:將您的網(wǎng)址放在網(wǎng)址文字框中。您的Ubidots的webhook URL將如下所示:(放置您自己的令牌,不帶雙引號(hào))

我們將自動(dòng)調(diào)用并分配粒子設(shè)備的設(shè)備ID以確保Ubidots中的設(shè)備標(biāo)簽仍然是獨(dú)特的為此,我們將使用Particle提供的預(yù)定義密鑰:{{{PARTICLE_DEVICE_ID}}}此調(diào)用將自動(dòng)為URL分配觸發(fā)webhook的設(shè)備的ID。

其他字段應(yīng)與圖中所示相同。

步驟8:選擇“高級(jí)設(shè)置”并使用以下文本完成文本編輯器:

注意:有關(guān)配置此項(xiàng)目中使用的所有Web服務(wù),請(qǐng)?jiān)L問(wèn)以下鏈接:https://www.hackster.io/taifur/urban-noise-air-pollution- monitoring-d14088

步驟14:為Firebase配置Webhook(實(shí)時(shí)數(shù)據(jù)庫(kù))

Firebase實(shí)時(shí)數(shù)據(jù)庫(kù)是一個(gè)云托管數(shù)據(jù)庫(kù),支持AndroidiOS和Web多平臺(tái)。所有數(shù)據(jù)都以JSON格式存儲(chǔ),數(shù)據(jù)的任何變化都會(huì)立即通過(guò)在所有平臺(tái)和設(shè)備上執(zhí)行同步來(lái)反映。這使我們可以輕松輕松地構(gòu)建更靈活的實(shí)時(shí)應(yīng)用程序。

第1步:使用您的Gmail帳戶登錄Firebase控制臺(tái)console.firebase.google.com/console/login。點(diǎn)擊“添加項(xiàng)目”。

步驟2:提供項(xiàng)目名稱并接受條款,然后單擊“創(chuàng)建項(xiàng)目”。

步驟3:創(chuàng)建項(xiàng)目后,進(jìn)入數(shù)據(jù)庫(kù)選項(xiàng)卡,選擇創(chuàng)建數(shù)據(jù)庫(kù)。

步驟4:在測(cè)試模式下選擇“開(kāi)始”,然后單擊“確定”。下一步。

步驟5:從數(shù)據(jù)庫(kù)下拉列表中選擇Realtime Databse。

步驟6:記下數(shù)據(jù)庫(kù)的URL。稍后將需要從粒子控制臺(tái)配置Webhook以及制作Android應(yīng)用程序。

步驟7:從Rules選項(xiàng)卡設(shè)置讀寫(xiě)權(quán)限為真。

步驟8:轉(zhuǎn)到服務(wù)帳戶。

步驟9:選擇數(shù)據(jù)庫(kù)機(jī)密。

步驟10:點(diǎn)擊添加秘密然后復(fù)制它。

步驟11:轉(zhuǎn)到粒子控制臺(tái),從集成開(kāi)始新的webhook集成。填寫(xiě)所有字段,如下所示。用您自己的網(wǎng)址替換網(wǎng)址。

步驟12:點(diǎn)擊高級(jí)設(shè)置,選擇自定義選項(xiàng)并粘貼以下json代碼:

{

“temperature”: “{{temp}}”,

“humidity”: “{{humid}}”,

“air quality”: “{{air}}”,

“sound level”: “{{noise}}”,

“l(fā)atitude”: “{{lat}}”,

“l(fā)ongitude”: “{{lng}}”,

“published_at”: “{{PARTICLE_PUBLISHED_AT}}”

}

傳感器數(shù)據(jù)將作為此JSON數(shù)據(jù)發(fā)送到Firebase。它將如下所示。

最后,點(diǎn)擊創(chuàng)建webhook使其成為最終版。 Webhook for Firebase現(xiàn)已準(zhǔn)備好。

步驟15:為Zapier配置粒子Webhook

Zapier將用于將粒子數(shù)據(jù)保存到Google表格。每次將新數(shù)據(jù)發(fā)布到粒子云時(shí),Zapier都會(huì)在Google表格中創(chuàng)建一個(gè)新行,并使用適當(dāng)?shù)臄?shù)據(jù)值填充列。要做到這一點(diǎn),我們首先需要在Google云端硬盤(pán)中制作Google表格。

第1步:轉(zhuǎn)到您的云端硬盤(pán),然后選擇空白電子表格。

第2步:第一行將是數(shù)據(jù)字段(列)的名稱。根據(jù)您的數(shù)據(jù)輸入每列的名稱。在第二行中,只為每個(gè)數(shù)據(jù)放置一個(gè)樣本值。它將幫助Zapier正確識(shí)別數(shù)據(jù)字段。

第3步:如果您已經(jīng)創(chuàng)建了帳戶,請(qǐng)?jiān)L問(wèn)https://zapier.com/并登錄。否則先創(chuàng)建帳戶。開(kāi)始一個(gè)新的Zap。從連接這個(gè)應(yīng)用程序。..下拉選擇Zapier的Webhooks和從這個(gè)!下拉菜單選擇Google表格。

第4步:點(diǎn)擊Make a Zap!

步驟5:選擇Catch Hook并單擊Save + Continue。

第6步:將為您創(chuàng)建一個(gè)唯一的網(wǎng)絡(luò)訪問(wèn)網(wǎng)址。將URL復(fù)制到剪貼板。在不關(guān)閉選項(xiàng)卡的情況下,打開(kāi)瀏覽器的新選項(xiàng)卡并打開(kāi)粒子控制臺(tái)。

第7步:從集成標(biāo)簽啟動(dòng)新的網(wǎng)絡(luò)快速創(chuàng)建。

第8步:填寫(xiě)所有字段。將Zapier webhook URL粘貼到剪貼板的URL文本框中。對(duì)于請(qǐng)求格式,請(qǐng)選擇JSON。

步驟9:從“高級(jí)設(shè)置”中選擇“自定義”選項(xiàng),然后在文本框中粘貼以下JSON代碼。此JSON與您用于Firebase的JSON相同。 {

“temperature”: “{{temp}}”,

“humidity”: “{{humid}}”,

“air quality”: “{{air}}”,

“sound level”: “{{noise}}”,

“l(fā)atitude”: “{{lat}}”,

“l(fā)ongitude”: “{{lng}}”,

“published_at”: “{{PARTICLE_PUBLISHED_AT}}”

}

第10步:點(diǎn)擊創(chuàng)建WEBHOOK

步驟11:創(chuàng)建掛鉤后,單擊TEST將測(cè)試請(qǐng)求發(fā)送給Zapier。

如果一切順利,您將收到以下消息。

第12步:從瀏覽器轉(zhuǎn)到上一個(gè)標(biāo)簽,然后點(diǎn)擊“確定”,當(dāng)您從粒子云發(fā)送測(cè)試請(qǐng)求時(shí),我執(zhí)行了此按鈕。

步驟13:選擇掛鉤A并單擊繼續(xù)以轉(zhuǎn)至操作選項(xiàng)卡。

第14步:選擇Google表格作為您的應(yīng)用。

步驟15 :從Google表格操作選擇創(chuàng)建電子表格行,我們希望將所有值保存在一個(gè)工作表中。

步驟16:選擇工作表的Google帳戶,然后點(diǎn)擊保存+繼續(xù)。

步驟17 :從電子表格下拉列表中選擇您為此目的創(chuàng)建的工作表。

步驟18:為工作表字段選擇Sheet1。您將看到在工作表上創(chuàng)建的所有列字段。

步驟19:從“插入字段”選項(xiàng)中為每個(gè)列字段選擇適當(dāng)?shù)淖兞俊D鷮闹鞍l(fā)送的下拉列表中找到所有變量作為粒子云的測(cè)試請(qǐng)求。

步驟20:對(duì)所有字段執(zhí)行相同操作,然后單擊繼續(xù)。

步驟21:點(diǎn)擊發(fā)送測(cè)試到Google表格以測(cè)試它是否正常工作。

第22步:如果一切順利,您將收到成功的消息。

步驟23 :從云端硬盤(pán)打開(kāi)工作表,您將看到已創(chuàng)建新行。沒(méi)有時(shí)間,所有其他字段都是空的,因?yàn)槲覀儧](méi)有在測(cè)試請(qǐng)求上發(fā)送任何值。

第24步:請(qǐng)點(diǎn)擊在完成

步驟25:最后打開(kāi)Zap。

步驟16:配置IFTTT發(fā)送電子郵件

IFTTT將用于將Google表格發(fā)送給想要獲取它的用戶電子郵件。它將從Android應(yīng)用程序觸發(fā)。

步驟1:登錄IFTTT帳戶并單擊“我的小程序”。單擊New Applet。

第2步:點(diǎn)擊 + this 。

第3步:搜索webhook并選擇何時(shí)顯示。

第4步:繼續(xù)接收網(wǎng)絡(luò)請(qǐng)求。

第5步:輸入一個(gè)事件名稱,然后單擊“創(chuàng)建觸發(fā)器”。

步驟

第6步:點(diǎn)擊 +

第7步:選擇Gmail作為操作服務(wù)。

第8步:選擇發(fā)送電子郵件

第9步:對(duì)于To address字段,從Add ingredient

添加值1

第10步:根據(jù)您的要求填寫(xiě)主題和正文。將Google表格的鏈接粘貼到文本框附件網(wǎng)址。該文件將隨電子郵件附上。

步驟11:?jiǎn)螕粢员4嬉詣?chuàng)建小程序。

步驟17:使用MIT App Inventor開(kāi)發(fā)Android應(yīng)用程序

在這個(gè)階段,我們將構(gòu)建一個(gè)Android應(yīng)用程序來(lái)監(jiān)控來(lái)自的數(shù)據(jù)一部智能手機(jī)用戶還可以向他/她的電子郵件發(fā)送將數(shù)據(jù)發(fā)送的請(qǐng)求。

使用MIT App Inventor制作應(yīng)用程序非常簡(jiǎn)單。無(wú)需編碼。我們將使用該應(yīng)用程序從firebase讀取數(shù)據(jù)。 MIT App Inventor具有內(nèi)置擴(kuò)展,可與firebase進(jìn)行交互。我們只需要在項(xiàng)目中添加擴(kuò)展名。

對(duì)于使用firebase,您將需要您的firebase URL(我們?cè)谂渲脀ebhook時(shí)使用的URL相同) ),firebase令牌和存儲(chǔ)桶名稱。存儲(chǔ)桶名稱實(shí)際上是firebase中的表名。

塊編輯器解釋了不同UI元素之間的交互。為上傳到firebase的每個(gè)新數(shù)據(jù)觸發(fā)Firebase.DataChanged方法。應(yīng)用程序?qū)崟r(shí)反映的變化。

為了發(fā)送電子郵件,使用IFTTT制造商渠道。用戶將把他的電子郵件地址放在文本框中,然后單擊“發(fā)送”按鈕。將觸發(fā)以下塊,IFTTT頻道將收到webhook請(qǐng)求,以將電子郵件發(fā)送到用戶提供的地址。

下面附有完整的源代碼和apk文件。您可以下載源代碼,將其導(dǎo)入您的應(yīng)用程序創(chuàng)建者帳戶并根據(jù)您的要求進(jìn)行修改。

步驟18:結(jié)果

Web服務(wù)的配置將在下一節(jié)中討論。完成配置后,上載固件并打開(kāi)設(shè)備電源。您將從Ubidots設(shè)備選項(xiàng)卡中觀察到以下結(jié)果:

如果您配置任何儀表板,您可以在圖表中觀察數(shù)據(jù),如下圖所示。/p》

空氣質(zhì)量和GPS數(shù)據(jù)作為上下文發(fā)送??諝赓|(zhì)量數(shù)據(jù)背景如下。

您將觀察Firebase控制臺(tái)的以下輸出。這是在webhook中配置的PUT方法。不創(chuàng)建任何行數(shù)據(jù)只是更新。

對(duì)于POST請(qǐng)求,觀察到以下結(jié)果。每次firebase接收新數(shù)據(jù)時(shí),它都會(huì)存儲(chǔ)在新行中。如果您想導(dǎo)出數(shù)據(jù),這可能會(huì)有所幫助。

Zapier將數(shù)據(jù)保存在Google表格中,并且對(duì)于收到的每個(gè)數(shù)據(jù),都會(huì)創(chuàng)建一個(gè)新行。您還可以在工作表上顯示圖表。

Android應(yīng)用程序的視圖如下。

如果用戶發(fā)送完整的數(shù)據(jù)請(qǐng)求,他將收到一封電子郵件并收到電子郵件將如下所示:

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2551

    文章

    51099

    瀏覽量

    753606
  • 監(jiān)測(cè)裝置
    +關(guān)注

    關(guān)注

    0

    文章

    220

    瀏覽量

    8639
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    大氣污染監(jiān)測(cè)系統(tǒng)方案:智慧環(huán)保監(jiān)測(cè)的"千里眼"

    我有幸參與了某市環(huán)保局的大氣污染監(jiān)測(cè)系統(tǒng)項(xiàng)目。該市地處我國(guó)中部地區(qū),近年來(lái)工業(yè)發(fā)展迅速,大氣污染問(wèn)題日益突出。為加強(qiáng)環(huán)境管理,政府決定構(gòu)建一套覆蓋全市的大氣污染在線監(jiān)測(cè)系統(tǒng),實(shí)時(shí)掌握各
    的頭像 發(fā)表于 11-04 16:01 ?177次閱讀
    <b class='flag-5'>大氣污染監(jiān)測(cè)</b>系統(tǒng)方案:智慧環(huán)保<b class='flag-5'>監(jiān)測(cè)</b>的&quot;千里眼&quot;

    油煙監(jiān)測(cè)系統(tǒng)有什么重要作用

    隨著城市化進(jìn)程的加速,餐飲業(yè)的發(fā)展日新月異,但隨之而來(lái)的油煙污染問(wèn)題也日益嚴(yán)峻。為了有效控制油煙排放,保護(hù)大氣環(huán)境,油煙監(jiān)測(cè)系統(tǒng)的應(yīng)用顯得尤為重要。油煙
    的頭像 發(fā)表于 10-26 13:25 ?392次閱讀

    淺談城市餐飲油煙污染現(xiàn)狀及餐飲油煙在線監(jiān)測(cè)系統(tǒng)解決方案

    摘要: 為控制餐飲業(yè)油煙污染,改善城市大氣污染和生態(tài)環(huán)境,針對(duì)城市餐飲油煙污染現(xiàn)狀,提出相應(yīng)的治理策略。加快餐飲油煙
    的頭像 發(fā)表于 10-19 16:01 ?358次閱讀
    淺談<b class='flag-5'>城市</b>餐飲油煙<b class='flag-5'>污染</b>現(xiàn)狀及餐飲油煙在線<b class='flag-5'>監(jiān)測(cè)</b>系統(tǒng)解決方案

    噪聲監(jiān)測(cè)儀有什么作用

    噪聲監(jiān)測(cè)儀是一種用于測(cè)量和記錄聲音強(qiáng)度的設(shè)備,它對(duì)于環(huán)境保護(hù)、工業(yè)生產(chǎn)、交通管理、城市規(guī)劃等領(lǐng)域都有著重要的作用。 1. 噪聲監(jiān)測(cè)儀的定義與
    的頭像 發(fā)表于 09-25 15:52 ?510次閱讀

    環(huán)境噪聲監(jiān)測(cè)站#城市噪聲在線監(jiān)測(cè) #智慧能源

    監(jiān)測(cè)
    pingao141378
    發(fā)布于 :2024年09月14日 11:44:05

    電纜低功耗環(huán)流監(jiān)測(cè)裝置介紹

    監(jiān)測(cè)。傳統(tǒng)的監(jiān)測(cè)方法不僅功耗高、維護(hù)成本高,而且安裝復(fù)雜,難以滿足現(xiàn)代電網(wǎng)管理的需求。 為解決這一問(wèn)題,鼎信智慧小編這邊建議供電公司可以引入電纜低功耗環(huán)流監(jiān)測(cè)裝置DX-DLS100-H
    的頭像 發(fā)表于 06-26 17:29 ?391次閱讀

    大氣環(huán)境質(zhì)量監(jiān)測(cè)系統(tǒng)

    在如今社會(huì)發(fā)展和環(huán)境保護(hù)日益受到重視的時(shí)代,大氣環(huán)境質(zhì)量監(jiān)測(cè)系統(tǒng)成為了關(guān)注的焦點(diǎn)。作為對(duì)大氣環(huán)境進(jìn)行科學(xué)、全面和連續(xù)監(jiān)測(cè)的重要手段,發(fā)揮著舉足輕重的作用。 為了解決現(xiàn)有空氣質(zhì)量檢測(cè)系統(tǒng)
    的頭像 發(fā)表于 06-17 16:35 ?364次閱讀

    地下水污染監(jiān)測(cè)智能預(yù)警系統(tǒng)解決方案

    的處理存在嚴(yán)重的滯后性,往往需要耗費(fèi)大量的時(shí)間精力與人員物力進(jìn)行修復(fù)。 為了掌握地下水資源情況,并實(shí)施科學(xué)有效的監(jiān)管,數(shù)之能推出地下水污染監(jiān)測(cè)智能預(yù)警系統(tǒng)方案,充分利用大數(shù)據(jù)、物聯(lián)網(wǎng)、云計(jì)算等多種數(shù)字化技術(shù),對(duì)
    的頭像 發(fā)表于 05-22 11:48 ?558次閱讀
    地下水<b class='flag-5'>污染監(jiān)測(cè)</b>智能預(yù)警系統(tǒng)解決方案

    秸稈焚燒智能監(jiān)測(cè)攝像機(jī)

    秸稈焚燒是一種常見(jiàn)的農(nóng)業(yè)作業(yè)方式,但其會(huì)造成大氣污染,危害環(huán)境和人體健康。為了監(jiān)測(cè)和控制秸稈焚燒產(chǎn)生的污染,可以使用秸稈焚燒智能監(jiān)測(cè)攝像機(jī)。這種設(shè)備通過(guò)高清攝像頭和智能識(shí)別算法,可以實(shí)
    的頭像 發(fā)表于 04-17 10:45 ?398次閱讀
    秸稈焚燒智能<b class='flag-5'>監(jiān)測(cè)</b>攝像機(jī)

    淺談河南省餐飲油煙污染監(jiān)測(cè)解決方案

    淺談河南省餐飲油煙污染監(jiān)測(cè)解決方案 張穎姣 江蘇安科瑞電器制造有限公司 江蘇江陰 214405 摘要:分析河南省餐飲業(yè)的規(guī)模、分布及油煙污染物成分特征,從環(huán)保政策、監(jiān)管、監(jiān)測(cè)及指標(biāo)替代性等幾個(gè)方面
    的頭像 發(fā)表于 04-08 17:41 ?404次閱讀
    淺談河南省餐飲油煙<b class='flag-5'>污染監(jiān)測(cè)</b>解決方案

    智能生態(tài)環(huán)境監(jiān)測(cè)系統(tǒng)(實(shí)時(shí)監(jiān)測(cè)大氣中的各種污染物)

      JD-FZ1隨著工業(yè)化進(jìn)程的不斷加速,環(huán)境污染已經(jīng)成為人們關(guān)注的焦點(diǎn)。為了保護(hù)我們的環(huán)境,智能生態(tài)環(huán)境監(jiān)測(cè)系統(tǒng)應(yīng)運(yùn)而生。這個(gè)系統(tǒng)利用先進(jìn)的技術(shù)手段,實(shí)時(shí)監(jiān)測(cè)環(huán)境數(shù)據(jù),通過(guò)數(shù)據(jù)分析和處理,為我們提供準(zhǔn)確的環(huán)境狀況信息,幫助我們
    的頭像 發(fā)表于 03-27 15:46 ?1032次閱讀

    什么是大氣負(fù)氧離子在線監(jiān)測(cè)系統(tǒng)?

      JD-FZ3隨著生活水平的提高,人們?cè)絹?lái)越注重健康生活。然而,我們往往忽略了室內(nèi)環(huán)境對(duì)健康的重要影響。室內(nèi)空氣污染嚴(yán)重,甲醛、苯等有害物質(zhì)釋放,可導(dǎo)致人體疾病,如頭暈、咳嗽、過(guò)敏等。為了居住環(huán)境更加健康,大氣負(fù)氧離子在線監(jiān)測(cè)
    的頭像 發(fā)表于 03-26 17:06 ?527次閱讀

    桿塔傾斜在線監(jiān)測(cè)裝置-桿塔傾斜監(jiān)測(cè)方案

    監(jiān)測(cè)裝置
    jf_96960730
    發(fā)布于 :2024年01月24日 09:05:26