電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>使用M5Stack Core2 ESP32的公共空間安全激勵(lì)器

使用M5Stack Core2 ESP32的公共空間安全激勵(lì)器

2022-11-07 | zip | 0.03 MB | 次下載 | 免費(fèi)

資料介紹

描述

我們知道,世界正在經(jīng)歷大流行浪潮。一旦鎖定打開下一波周期性的到來??谡?,社會(huì)距離,消毒,疫苗接種這些是解決這個(gè)問題的主要解決方案。一旦解鎖國(guó)家,人們將走出去滿足他們無法停止的需求。人們會(huì)去公共辦公室滿足他們的需要。人們必須去商店購(gòu)買。甚至他們也必須使用自己辦公樓的廁所。人們會(huì)逐漸減少預(yù)防措施。即使消毒劑在他們面前,他們也會(huì)跳過手部消毒。

現(xiàn)有的解決方案是采取預(yù)防措施的海報(bào)和標(biāo)牌。每個(gè)人都知道,為了防止covid傳播,口罩、消毒、社交距離是解決方案。但隨著時(shí)間的推移,人們會(huì)減少預(yù)防措施。他們不會(huì)正確戴上口罩,他們會(huì)猶豫消毒即使消毒劑在前面。造成這種情況的主要原因是人們只會(huì)認(rèn)為(即使他們知道這是錯(cuò)誤的)我不會(huì)被感染,電暈已經(jīng)消失,就像那樣。解決方案是每次都向他們展示真實(shí)數(shù)據(jù),我提出了一種設(shè)備,它可以像現(xiàn)有自動(dòng)化系統(tǒng)的附加組件一樣。設(shè)備將提供有關(guān)特定空間以及國(guó)家和地方 covid 更新的信息,實(shí)時(shí)數(shù)據(jù)將鼓勵(lì)人們采取預(yù)防措施而不會(huì)失敗。

用于 aws IoT EduKit 的 core2 將用于制作一個(gè)設(shè)備,該設(shè)備將成為其他設(shè)備網(wǎng)絡(luò)的一部分,并將顯示實(shí)時(shí)數(shù)據(jù),例如 1. 在新人進(jìn)入“您是今天使用此設(shè)施的第 XXX 個(gè)人。請(qǐng)保持手部消毒并戴上你的面具”可以從另一個(gè)連接的計(jì)數(shù)設(shè)備/門傳感器等中獲取計(jì)數(shù) 2.設(shè)備將顯示國(guó)家/地區(qū)的 covid 統(tǒng)計(jì)數(shù)據(jù)(每日病例、病例總數(shù)、死亡人數(shù)等),這將鼓勵(lì)訪客認(rèn)真采取預(yù)防措施. 3.如果設(shè)備在商店店主可以設(shè)置自定義消息和顯示除了covid更新4.設(shè)備將報(bào)警如果任何高溫人員進(jìn)入設(shè)施。數(shù)據(jù)將來自連接的人員溫度監(jiān)視器入口。

訪客體溫讀數(shù)模塊

這個(gè)模塊/設(shè)備將幫助商店/建筑物/空間監(jiān)測(cè)訪客的溫度?,F(xiàn)在我已經(jīng)使用粒子光子和溫度傳感器完成了這項(xiàng)工作。

為此,我們需要開發(fā)一個(gè)代碼來讀取溫度并將警報(bào)消息發(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);
  }    
}

如果任何高溫人員進(jìn)入太空,該設(shè)備將發(fā)送警報(bào) AWS iot core mqtt。m5stack 將通過聲音和燈光顯示該信息。

?
?
?
pYYBAGNkfiWAYKLiAAKRq8lSxd0628.jpg
?
1 / 2
?
poYBAGNkfimATS8qAAHExEyDoBg628.jpg
?
?
?
?
poYBAGNkfi6AVVIDAAO1luR2dwA412.jpg
?
1 / 2
?
pYYBAGNkfjKAR-xjAASdzvaGG2I111.jpg
?

M5堆棧設(shè)備

這里我使用 m5 堆棧作為連接到 aws iot core mqtt 的顯示單元。對(duì)于基本代碼,我修改了 sdk 中的閃爍代碼。

首先,我們必須為 LED 動(dòng)畫和聲音警報(bào)創(chuàng)建一些任務(wù)。一旦在警報(bào)主題收到任何消息,這將觸發(fā)。警報(bào)消息來自我們基于粒子光子的溫帶監(jiān)測(cè)設(shè)備。

poYBAGNkfjeAajAFAAUbBEoULN8004.jpg
?
pYYBAGNkfjyAJC3iAAN58DhM3Mo197.jpg
?

經(jīng)理可以通過 aws iot mqtt 測(cè)試客戶端發(fā)送他的消息。他可以使用此接口向客戶端提供信息,

?

poYBAGNkfj6AFEMbAAFgYaqmZ1U149.png
?

每小時(shí)屏幕將顯示在印度傳播的冠狀病毒的靜態(tài)狀態(tài)。這將激勵(lì)人們戴口罩和使用消毒劑。

?

屏幕將循環(huán)顯示covid意識(shí)消息。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)