資料介紹
描述
我們知道,世界正在經(jīng)歷大流行浪潮。一旦鎖定打開下一波周期性的到來??谡?,社會距離,消毒,疫苗接種這些是解決這個問題的主要解決方案。一旦解鎖國家,人們將走出去滿足他們無法停止的需求。人們會去公共辦公室滿足他們的需要。人們必須去商店購買。甚至他們也必須使用自己辦公樓的廁所。人們會逐漸減少預(yù)防措施。即使消毒劑在他們面前,他們也會跳過手部消毒。
現(xiàn)有的解決方案是采取預(yù)防措施的海報和標牌。每個人都知道,為了防止covid傳播,口罩、消毒、社交距離是解決方案。但隨著時間的推移,人們會減少預(yù)防措施。他們不會正確戴上口罩,他們會猶豫消毒即使消毒劑在前面。造成這種情況的主要原因是人們只會認為(即使他們知道這是錯誤的)我不會被感染,電暈已經(jīng)消失,就像那樣。解決方案是每次都向他們展示真實數(shù)據(jù),我提出了一種設(shè)備,它可以像現(xiàn)有自動化系統(tǒng)的附加組件一樣。設(shè)備將提供有關(guān)特定空間以及國家和地方 covid 更新的信息,實時數(shù)據(jù)將鼓勵人們采取預(yù)防措施而不會失敗。
用于 aws IoT EduKit 的 core2 將用于制作一個設(shè)備,該設(shè)備將成為其他設(shè)備網(wǎng)絡(luò)的一部分,并將顯示實時數(shù)據(jù),例如 1. 在新人進入“您是今天使用此設(shè)施的第 XXX 個人。請保持手部消毒并戴上你的面具”可以從另一個連接的計數(shù)設(shè)備/門傳感器等中獲取計數(shù) 2.設(shè)備將顯示國家/地區(qū)的 covid 統(tǒng)計數(shù)據(jù)(每日病例、病例總數(shù)、死亡人數(shù)等),這將鼓勵訪客認真采取預(yù)防措施. 3.如果設(shè)備在商店店主可以設(shè)置自定義消息和顯示除了covid更新4.設(shè)備將報警如果任何高溫人員進入設(shè)施。數(shù)據(jù)將來自連接的人員溫度監(jiān)視器入口。
訪客體溫讀數(shù)模塊
這個模塊/設(shè)備將幫助商店/建筑物/空間監(jiān)測訪客的溫度?,F(xiàn)在我已經(jīng)使用粒子光子和溫度傳感器完成了這項工作。
為此,我們需要開發(fā)一個代碼來讀取溫度并將警報消息發(fā)送到 aws iot core mqtt 主題,該主題將由我們的 m5 堆棧核心 2 訂閱。
#include
#include
//#include "ArduinoJson.h" //Library for parsing JSON object
// This #include statement was automatically added by the Particle IDE.
//#include
//SYSTEM_THREAD(DISABLED);
void callback(char* topic, byte* payload, unsigned int length);
void BlinkLed(int LedPin, int BlinkTimes, int BlinkPeriod); //A func to blink LED
String FormMQTTPayload(int reading1, double reading2); //A func to create JSON object
#define AMAZON_IOT_ROOT_CA_PEM \
"-----BEGIN CERTIFICATE-----\r\n" \
"MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF\r\n" \
"ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6\r\n" \
"b24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL\r\n" \
"MAkGA1UEBhMCVsVMxDzANBgNVwrwrBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv\r\n" \
"b3QgQ0EgMTCCASIwDQYJKoZwrgwerggvwIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj\r\n" \
"ca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM\r\n" \
"9O6II8c+6zf1tRn4SWitgikugiuguigwwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA\r\n" \
"A4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI\r\n" \
"U5PMCCjjmCXPI6T53iHTfvIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs\r\n" \
"N+gDS63pYaACbvXy8MWy7Vu33PfffqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv\r\n" \
"o/ufQJVtMVT8QtPHRh8jrdkPSHCa2XzV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU\r\n" \
"5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy\r\n" \
"rqXRfboQnoZsG4q5WTP468SQvvG5\r\n" \
"-----END CERTIFICATE-----"
const char amazonIoTRootCaPem[] = AMAZON_IOT_ROOT_CA_PEM;
#define CELINT_KEY_CRT_PEM \
"-----BEGIN CERTIFICATE-----\r\n" \
"MIIDWjCCAkKgAwIBAgIVAIFV6RQ25r0k13o+nTThox0khQ1tMA0GCSqGSIb3DQEB\r\n" \
"CwUAME0xSzBJBgNVBAsMQkFtYXpvbiBXZWIgU2VydmljZXMgTz1BbWF6b24uY29t\r\n" \
"IEluYy4gTD1TZWF0dGxlIFNUPVdhc2hpbmd0b24gQz1VUzAeFw0yMTA5MDgxMTAx\r\n" \
"MjBaFw00OTEyMzEyMzU5NTlaMB34xHDAaBgNVBAMME0FXUyBJb1QgQ2VydGlmaWNh\r\n" \
"dGUwggEiMA0GCSqGSIbw3DQEBAQUAA4IBDwAwggEKAoIBAQDJIEcvn8CKMXynu2GL\r\n" \
"sQ4KHcn5yyNOBJcNToj6KV+iEXvzqnOwtOEw2FbQh6123TNoKcoIXr+srstUGWoPV\r\n" \
"VrVlZ7JkZqNO7dwxsS0RETq7MrZdTMblKO18WAVXW8jiGBPjvt58DNawYxkhi/vMfk\r\n" \
"VthZnQXNrzVdyF8DgsL1QeBMupWMEVkGLBA3M7Xlzwedu3OWrJR4pX+l7XLvvbFn\r\n" \
"ioami/GMZg6RsjTbWhdPbLWLM9aHWRDJcOYefL4JrG1wEcJgrxsBZsDGZNUQbZp4\r\n" \
"ZR/jTrD8YmZ3a8TmmS2WBWjx/f66DHXVoD5F2OjsRdMdhPDWGUwhD5O4DPxKgvQ46\r\n" \
"xNkhAgMBAAGjYDBeMB8GA1UdIwQYMBaAFJlO/vDfND/PFXZ6RlK7CEIGuzyHMB0G\r\n" \
"A1UdDgQWBBTfbtSBke3mZ20EpO0E+K6se85NSBTAMBgNVHRMBAf8EAjAAMA4GA1Ud\r\n" \
"DwEB/wQEAwIHgDANBgksqhkiG9w0BAQsFAAOCAQEAoPWUDCIqL/bi+Nd4rWX/6ar5\r\n" \
"IZnYC+BKWiD5PjZzfOssshfx9gqa1XqCl8/6x5vqilwQoMN8phvjdy1GQvUGjOe6\r\n" \
"MIQjwJ+SuOQ1B2rCdPT7w8EZsMTVgfUeWsdfhL5U9GVnPipkqt3OIgAU/Mw/7Jz0XAJd\r\n" \
"QCCojsASLbK8WkCjXBPHmIAzwwa9VBi0rjWJIgckgmz9RuRRzLt5p/F0pTy6epPB\r\n" \
"bblBCoo9yxlwWPXY2AFmHs2is7HcqSB1puK0qrzy3MTBmDxsPWY1wrRngmxipMSPL\r\n" \
"Ebtq8U8V3JpIF7dEuiAAXMnXjsE8UM93ZBGHwwApCH719g43UKZh3tfHimUgjg==\r\n" \
"-----END CERTIFICATE-----"
const char clientKeyCrtPem[] = CELINT_KEY_CRT_PEM;
#define CELINT_KEY_PEM \
"-----BEGIN RSA PRIVATE KEY-----\r\n" \
"MIIEowIBAAKCAQEA5osqGO8Ah0LEIlnnxvnzJk1x1YbfuC7Ma4nVNQu4wJWeU01W\r\n" \
"0nUvRVotuWSmftvxqPzSeBzc6eq4g0XqkYpxTe6DtmrrboxRqFWrh7LAkQ9Bp+tW\r\n" \
"lsX0DtrjUZjCSAdGEgNsOiFK+IPHRx2x2OTVpyAN1wZMy+o3uJ3o17XciRbWMobc\r\n" \
"jCaRc024GiMcJCyjvdkKioiTwsfrtwcM1gMofA6UhN+WhQD1yxlAE63uiKCavcfsJ/Ed\r\n" \
"T4GMDmShYpA/8vh5cECIhgHYHyToYCuutO+3Ogahv5I+zzruhKZ4p5+DRi6BaI3L\r\n" \
"JLePjCyyPlDUN0kipZm+TuZ9533rrwAnYWO5ZMWsoQIDAQABAoIBAQC4aknaeBSsHjRW\r\n" \
"ZiSJfheKZBjS/XioFIdg3ni2XhIDu6tSZ2M0JpkRmPlKe8DTaYz96H9TpYLxetjt\r\n" \
"6Veh5GSOOmUR3qVFYOlRBnaXrd1sLBARCqfRI7f+yglclB2VEHx0nFhOh6M49/DI\r\n" \
"anCBV0uwzGtFvbxgwZKhE2/WXZt3z7FPj/UChQG6dIHHgqh8YcNaSWDM71A44WF7D\r\n" \
"SYq+6U3pgMuhkBccTLAuz0Tpgsd3jwewvEx9l3VNn4Xyb1363VBMMQ1599DkguVpT/FIe\r\n" \
"wgOaP024sro6BmRXZNJqBQ47LSrCzVZt6q/tImXa+85TSs+AwNKbpYyZjn4L5wJ7\r\n" \
"tGFEuGuhAoGBAPbby6Qaw99NqfL70mCylIvm9oriVTv2qfrNRK7zDrhpTfwzgeXk\r\n" \
"AUfMFqDcMzXa6wioDLc097RkHZxcvtKK+1LbrU81+WFrnB5OmrkF72dTBf4VCts2RN1\r\n" \
"27gcRW3raBAFYjS8SA5cnkGrW9yxtr2cbAX+3WBzx0FrzQhh+vpodcZ7AoGBAO8U\r\n" \
"tD6BZb5i+mJknWGKSME24Eih4BVJDcLKUKFrXhpJhEuWtAhNbZ6vHmovrIjNET6i\r\n" \
"y0/tgqvilzbHAO1avfH60+qp0kbOeSEyeeEQoS5eDZO3PgublneBa7FaSniLe8cRL+\r\n" \
"2kb1j3bpDPNSbU4PtXGFI2H2VgJDR3reK2NUydyTAoGAHZKJG7ilHFwmbthiBHmA\r\n" \
"OB5MDKk+grdy93udrcOqUMc0s3DML+kXii1VzKF0dRArtdbD5zKuNesEbPT+vCec\r\n" \
"NJP8XR+dnRW4vNNkUK/GTNzP4H/ipWUqFC022AsqZTjv4ddoXmgUAVPw5khX1vEl\r\n" \
"M7areIGGLj0my8lJErRu338CgYAT7AC8+KFWxP6iNkoa95/qYb08sChw/Z5k7eDc\r\n" \
"Ios724Znmg40ZudMgsEhDgnteFEIjB4u8daipgX9rYV5Qcd0I3eHJVF9TvUu+/IJ\r\n" \
"iduX6eIXXNF9Do8mLb628rLkxJITiCL+KLYkrXTDzcmH6K0w4Ww6XIF8PMj3Bw5M\r\n" \
"f6M2ewKBgBVzoUAa7eTAT3uwVcu2ewBFH1kqbVqd9i2Pefkau6HkYb4UgmezbJNX\r\n" \
"2TEJqYVTNeK6Lx2Chp7mn4bdMA0ZFzFT7ITCGyzo9jQK7rL5vKCqdXuj/P/odj84\r\n" \
"lrLDoz0qZFO9IR2s6swtceT/tQwO53Qkp8FBDMREd5MQhUIJe1bw\r\n" \
"-----END RSA PRIVATE KEY-----"
const char clientKeyPem[] = CELINT_KEY_PEM;
/**
* if want to use IP address,
* byte server[] = { XXX,XXX,XXX,XXX };
* MQTT client(server, 1883, callback);
* want to use domain name,
* MQTT client("www.sample.com", 1883, callback);
**/
//MQTT client("Your AWS IoT Thing ReST API Endpoint", 8883, callback); //set ReST API endpoint
//Set keep-alive timeout as 60sec. Default is 15sec.
MQTT client("a1pk8vviACFAScasldsscsafacblpi-ats.iot.ap-south-1.amazonaws.com", 8883, 60, callback); //set ReST API endpoint
const int thermistor_output = A0;
//#define ONE_DAY_MILLIS (24 * 60 * 60 * 1000)
//unsigned long lastSync = millis();
float celcius1, celcius2, celcius3, celcius4;
int high_temperture_alert = 0; //DummyData used here. Revise this for your own need.
int LedIndicator_Publish = D7; //set LED D7 as publishing indicator
int LedIndicator_CommLow = D6; //set LED connected on D6 as indicator for command a€?turnlowa€
int LedIndicator_CommMid = D5; //set LED connected on D6 as indicator for command a€?turnmida€
int LedIndicator_CommHigh = D4; //set LED connected on D6 as indicator for command a€?turnhigha€
void setup() {Serial.begin(9600);
// enable tls. set Root CA pem, private key file.
client.enableTls(amazonIoTRootCaPem, sizeof(amazonIoTRootCaPem),
clientKeyCrtPem, sizeof(clientKeyCrtPem),
clientKeyPem, sizeof(clientKeyPem));
Serial.println("tls enable");
// connect to the server
client.connect("sparkclient");
// publish/subscribe
if (client.isConnected()) {
Serial.println("client connected");
client.publish("alert", "hello world!");
client.subscribe("myfirstthing/intest");
}
}
void loop() { int thermistor_adc_val = analogRead(thermistor_output);
int Vo = thermistor_adc_val;
Vo=4095-Vo;
float R2 = (10000 * (4095.0 / (float)Vo - 1.0));
float logR2 = log(R2);
float T = (1.0 / ((1.039292445e-03) + (2.512639704e-04)*logR2 + (0.006364887727e-07)*logR2*logR2*logR2));
celcius4 = (T - 273.15);
if (client.isConnected()) {
client.loop();
if (celcius4>37.6){
client.publish("alert", "alert");
digitalWrite(D7,HIGH);}
}
delay(200);
}
//The func to form a JSON formatted payload
String FormMQTTPayload(int reading1, double reading2=0.0)
{
String retnstring = "{";
retnstring += "\"Sensor1\":";
retnstring += "\""+String(reading1)+"\",";
retnstring += "\"Sensor2\":";
retnstring += "\""+String(reading2)+"\",";
//retnstring += "\"Sensor3\":";
//retnstring += "\""+String(reading3)+"\",";
retnstring += "}";
return retnstring;
}
// callback func to process/resp recieved commands sent from AWS IoT
void callback(char* topic, byte* payload, unsigned int length) {
char p[length + 1];
memcpy(p, payload, length);
p[length] = NULL;
String message(p);
}
//A func to blink a LED for BlinkTimes
void BlinkLed(int LedPin, int BlinkTimes, int BlinkPeriod)
{
for (int k=0; k
digitalWrite(LedPin, HIGH);
delay(BlinkPeriod);
digitalWrite(LedPin, LOW);
delay(BlinkPeriod);
}
}
如果任何高溫人員進入太空,該設(shè)備將發(fā)送警報 AWS iot core mqtt。m5stack 將通過聲音和燈光顯示該信息。
M5堆棧設(shè)備
這里我使用 m5 堆棧作為連接到 aws iot core mqtt 的顯示單元。對于基本代碼,我修改了 sdk 中的閃爍代碼。
首先,我們必須為 LED 動畫和聲音警報創(chuàng)建一些任務(wù)。一旦在警報主題收到任何消息,這將觸發(fā)。警報消息來自我們基于粒子光子的溫帶監(jiān)測設(shè)備。
經(jīng)理可以通過 aws iot mqtt 測試客戶端發(fā)送他的消息。他可以使用此接口向客戶端提供信息,
?
每小時屏幕將顯示在印度傳播的冠狀病毒的靜態(tài)狀態(tài)。這將激勵人們戴口罩和使用消毒劑。
?
屏幕將循環(huán)顯示covid意識消息。
- StickC M5Stack LED閃爍
- M5Stack圣誕雪球開源分享
- 帶M5Stack的工廠監(jiān)控系統(tǒng)
- 適用于AWS的M5Core2/Core2上的亞馬遜Alexa
- M5Stack智能植物澆水開源項目
- Bareboat Necessities的M5Stack堅韌Arduino船展示
- 基于M5Stack的抗COVID安全門
- Wifi連接狀態(tài)監(jiān)視器ATOM Matrix ESP32 M5Stack
- 帶M5Stack的音頻頻譜顯示
- 配備M5Stack的智能工廠
- 使用Arduino IDE和Visuino對ESP32 M5Stack StickC進行編程
- 用M5Stack設(shè)備裝飾圣誕樹
- 帶有M5Stack的電報控制無人機
- M5Stack Core2外部傳感器開源
- 使用myCobot280 M5Stack控制器
- ESP32能取代STM32嗎?哪個更好? 2373次閱讀
- 基于ESP32-S3的高性能開發(fā)板介紹 8718次閱讀
- 一款基于樹莓派CM4的小型Arm Linux迷你電腦 2227次閱讀
- ESP32-C3硬件定時器簡介及使用 4255次閱讀
- 什么是ESP32-CAM攝像頭? 2.1w次閱讀
- 基于ESP32的簡易web服務(wù)器設(shè)計 3300次閱讀
- M5Stack IOT智能門禁系統(tǒng)–基礎(chǔ)篇(Blockly+MQTT) 3026次閱讀
- 介紹一個使用ESP32模塊開發(fā)的信息顯示器 2179次閱讀
- 使用ESP32實現(xiàn)UDP通信的方法 5723次閱讀
- 基于ESP32制造有趣的超級馬里奧主題時鐘 4021次閱讀
- ESP8266/ESP32自動下載原理 4249次閱讀
- 如何利用ESP32實現(xiàn)太陽能氣象站的設(shè)計 4281次閱讀
- 利用M5Stack設(shè)計一個BLE保溫杯 2874次閱讀
- 如何使用M5Stick和M5Stamp觸發(fā)藍牙操作BLE通信 3418次閱讀
- dfrobotBeetle-ESP32控制器簡介 2695次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多