Мазмұны:
- 1 -қадам: AWS есептік жазбасын орнату
- 2 -қадам: Аппараттық құралдар мен бағдарламалық жасақтама сипаттамалары
- 3 -қадам: сымсыз діріл мен температура сенсорлары
- 4 -қадам: ESP32 AWS микробағдарламасы
- 5 -қадам: Сымсыз діріл мен температура сенсорынан сенсорлық мәліметтерді алу
- 6 -қадам: AWS -ке қосылу
- 7 -қадам: AWS -те деректерді визуализациялау
- 8 -қадам: Жалпы код
Бейне: MQTT көмегімен сымсыз температура сенсоры бар AWS IoT -ті бастау: 8 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Бұрынғы нұсқаулықтарда біз Azure, Ubidots, ThingSpeak, Losant сияқты әр түрлі бұлтты платформалардан өттік. Біз бұлтты платформаның барлығында сенсорлық деректерді бұлтқа жіберу үшін MQTT хаттамасын қолдандық. MQTT, оның HTTP протоколынан артықшылықтары мен артықшылықтары туралы қосымша ақпарат алу үшін осы нұсқаулыққа жүгіне аласыз.
Бұл нұсқаулықта біз Amazon Web Services -тің тағы бір және ең танымал бұлтты платформасына енеміз. Сіздердің көпшілігіңіз Amazon Web Services деп аталатын AWS және AWS ұсынатын бұлт функциясын жақсы білетін шығарсыз. Бұл көптеген жылдар бойы веб -дамудың өзегі болды. IoT қосымшаларының масштабының ұлғаюымен AWS AWSIoT шешімін тапты. AWSIoT - бұл IoT қосымшаларын орналастырудың сенімді шешімі.
Нұсқауды орындау арқылы:
- Сіз IoT қосымшасы үшін AWS есептік жазбасын орната аласыз
- Сіз ESP32 AWS IoT ядросына қосыла аласыз
- MQTT және HTTP протоколы арқылы хабарларды жіберу және алу
- AWS -те жіберілген деректерді визуализациялаңыз
1 -қадам: AWS есептік жазбасын орнату
AWS есептік жазбасын орнату өте қарапайым. Сізге бірнеше сертификаттарды жүктеу, оған саясатты қосу, құрылғыны тіркеу және AWS -те сенсорлық деректер туралы хабарламаларды қабылдауды бастау қажет.
AWS есептік жазбасын орнату үшін осы оқулықты орындаңыз.
2 -қадам: Аппараттық құралдар мен бағдарламалық жасақтама сипаттамалары
Бағдарламалық қамтамасыз ету ерекшелігі
AWS есептік жазбасы
Жабдық сипаттамасы
- ESP32
- Сымсыз температура мен діріл сенсоры
- Zigmo Gateway қабылдағышы
3 -қадам: сымсыз діріл мен температура сенсорлары
Бұл сымсыз торлы желінің архитектурасын қолдана отырып, 2 мильге дейінгі диапазонмен мақтанатын Long Range Industrial IoT сымсыз діріл мен температура сенсоры. 16 биттік діріл мен температура сенсоры бар бұл сенсор пайдаланушы анықтайтын аралықта жоғары дәл діріл деректерін жібереді. Оның келесі ерекшеліктері бар:
- ± 32г диапазоны бар өндірістік 3-осьті діріл сенсоры
- RMS, MAX және MIN g дірілін есептейді
- Төменгі сүзгі көмегімен шуды жою
- Жиілік диапазоны (өткізу қабілеттілігі) 12, 800 Гц дейін
- Үлгі жиілігі 25, 600 Гц дейін
- Сымсыз 2 мильдік диапазонмен шифрланған байланыс
- Жұмыс температурасының диапазоны -40 -тан +85 ° C -қа дейін
- Қабырғаға немесе магнитке бекітілген IP65 есептік корпусы Visual Studio мен LabVIEW үшін үлгі бағдарламалық қамтамасыз ету
- Сыртқы зонд опциясы бар діріл сенсоры
- 4 АА батареясынан 500 000 -ға дейін трансляциялар. Көптеген шлюздер мен модем опциялары бар
4 -қадам: ESP32 AWS микробағдарламасы
AWS -ке қосылу және деректерді жіберуді бастау үшін келесі қадамдарды орындаңыз
- AWS кітапханасын келесі Github репозиторийінен жүктеңіз
- репо клондау және AWS_IOT файлын Arduino каталогының кітапхана қалтасына орналастыру
git clone
Енді кодты қарастырайық:
- Бұл қосымшада біз WiFi тіркелгі деректерін сақтау және IP параметрлері арқылы апару үшін тұтқын порталды қолдандық. Тұтқында отырған порталда егжей -тегжейлі таныстыру үшін сіз келесі нұсқаулықты өтуге болады.
- Тұтқын порталы бізге статикалық және DHCP параметрлері арасында таңдау жасауға мүмкіндік береді. Статикалық IP, ішкі желі маскасы, шлюз және сымсыз сенсор шлюзі сияқты тіркелгі деректерін енгізіңіз, сол IP -де конфигурацияланады.
- Қол жетімді WiFi желілері мен RSSI бар тізімі бар веб -сайт орналастырылады. WiFi желісі мен құпия сөзді таңдап, жіберуді енгізіңіз. Тіркелу деректері EEPROM -да сақталады және IP параметрі SPIFFS -те сақталады. Бұл туралы толығырақ нұсқаулықтан табуға болады.
5 -қадам: Сымсыз діріл мен температура сенсорынан сенсорлық мәліметтерді алу
Біз сымсыз температура мен діріл датчиктерінен 54 байтты кадр аламыз. Бұл кадр нақты температура мен діріл туралы мәліметтерді алу үшін басқарылады.
ESP32 -де сериялық пайдалану үшін қол жетімді үш UART бар
- RX0 GPIO 3, TX0 GPIO 1
- RX1 GPIO9, TX1 GPIO 10
- RX2 GPIO 16, TX2 GPIO 17
және 3 аппараттық сериялық порт
- Сериялық
- Сериялық1
- Сериялық2
Алдымен Hardware Serial тақырыбының файлын инициализациялаңыз. Мұнда біз RX2 және TX2 ака қолданамыз. Сериялық деректерді алу үшін ESP32 тақтасының GPIO 16 және GPIO 17 түйреуіштері.
#қосу
# анықтау RXD2 16 # анықтау TXD2 17
Serial2.begin (115200, SERIAL_8N1, RXD2, TXD2); // түйреуіштер 16 rx2, 17 tx2, 19200 bps, 8 бит паритеті жоқ 1 тоқтайтын бит
Келесі қадамдар сенсордың нақты мәндерін алуға мүмкіндік береді
- Температураны, ылғалдылықты, батареяны және сенсордың басқа мәндерін сақтау үшін айнымалылар жасаңыз
- Аппараттық серия үшін Rx, tx түйреуішін, беру жылдамдығын және паритеттік биттерді орнатыңыз
- Алдымен, Serial1.available () көмегімен оқылатын нәрсе бар -жоғын тексеріңіз.
- Біз 54 байт кадрды аламыз.
- Бастапқы байт болып табылатын 0x7E бар -жоғын тексеріңіз.
- Діріл деректері 3 ось үшін RMS мәнінен, 3 ось үшін мин мәндерден, 3 ось үшін максималды мәндерден тұрады.
- температура мен батареяның мәні 2 байтты құрайды
- сенсордың атын, түрін, сенсорлық нұсқасын алу үшін 1 байт деректер болады және оларды тиісті адрестен алуға болады
if (Serial2.available ()) {Serial.println («Сериялық оқу»); деректер [0] = Serial2.read (); кешіктіру (k); if (деректер [0] == 0x7E) {Serial.println («Got Packet»); while (! Serial2.available ()); for (i = 1; i <55; i ++) {data = Serial2.read (); кешіктіру (1); } if (деректер [15] == 0x7F) /////// қайталанатын деректердің дұрыстығын тексеру үшін {if (data [22] == 0x08) //////// сенсор түріне көз жеткізіңіз. дұрыс {rms_x = ((uint16_t) (((деректер [24]) << 16) + ((деректер [25]) << 8) + (деректер [26]))/100); rms_y = ((uint16_t) (((деректер [27]) << 16) + ((деректер [28]) << 8) + (деректер [29]))/100); rms_z = ((uint16_t) (((деректер [30]) << 16) + ((деректер [31]) << 8) + (деректер [32]))/100); int16_t max_x = ((uint16_t) (((деректер [33]) << 16) + ((деректер [34]) << 8) + (деректер [35]))/100); int16_t max_y = ((uint16_t) (((деректер [36]) << 16) + ((деректер [37]) << 8) + (деректер [38]))/100); int16_t max_z = ((uint16_t) (((деректер [39]) << 16) + ((деректер [40]) << 8) + (деректер [41]))/100);
int16_t min_x = ((uint16_t) (((деректер [42]) << 16) + ((деректер [43]) << 8) + (деректер [44]))/100); int16_t min_y = ((uint16_t) (((деректер [45]) << 16) + ((деректер [46]) << 8) + (деректер [47]))/100); int16_t min_z = ((uint16_t) (((деректер [48]) << 16) + ((деректер [49]) << 8) + (деректер [50]))/100);
cTemp = (((((деректер [51]) * 256) + деректер [52])); қалқымалы батарея = ((деректер [18] * 256) + деректер [19]); кернеу = 0,00322 * батарея; Serial.print («Сенсор нөмірі»); Serial.println (деректер [16]); senseNumber = деректер [16]; Serial.print («Сенсор түрі»); Serial.println (деректер [22]); Serial.print («Микробағдарлама нұсқасы»); Serial.println (деректер [17]); Serial.print («Цельсий бойынша температура:»); Serial.print (cTemp); Serial.println («C»); Serial.print («X осінде RMS тербелісі:»); Serial.print (rms_x); Serial.println («мг»); Serial.print («Y осінде RMS тербелісі:»); Serial.print (rms_y); Serial.println («мг»); Serial.print («Z осінде RMS тербелісі:»); Serial.print (rms_z); Serial.println («мг»);
Serial.print («X осінде минималды діріл:»);
Serial.print (min_x); Serial.println («мг»); Serial.print («Y осінде минималды діріл:»); Serial.print (min_y); Serial.println («мг»); Serial.print («Z осінде минималды діріл:»); Serial.print (min_z); Serial.println («мг»);
Serial.print («ADC мәні:»);
Serial.println (батарея); Serial.print («Батарея кернеуі:»); Сериялық баспа (кернеу); Serial.println («\ n»); if (кернеу <1) {Serial.println («Батареяны ауыстыру уақыты»); }}} else {for (i = 0; i <54; i ++) {Serial.print (деректер ); Serial.print («,»); кешіктіру (1); }}}}
6 -қадам: AWS -ке қосылу
- AWSIoT хабымен байланыс орнату үшін AWS_IOT.h, WiFi.h тақырып файлдарын қосыңыз.
- Саясат атауы болатын хост адресін, клиент идентификаторын және зат атауы болатын тақырып атауын енгізіңіз
// ********* AWS тіркелгі деректері ************* // char HOST_ADDRESS = «a2smbp7clzm5uw-ats.iot.us-east-1.amazonaws.com»; char CLIENT_ID = «ncdGatewayPolicy»; char TOPIC_NAME = «ncdGatewayThing»;
JSON сақтау үшін char айнымалысын жасаңыз, бұл жағдайда біз JSON сақтау үшін формат жасадық
const char *format = «{» SensorId / «: \»%d / «, \» messageId / «:%d, \» rmsX / «:%d, \» rmsY / «:%d, \» rmsZ / «:%d, \» cTemp / «:%d, \» кернеу / «:%. 2f}»;
AWS_IOT сыныбының данасын жасаңыз
AWS_IOT esp; // AWS_IOT класының данасы
Енді келесі әдісті қолданып AWSIoT хабына қосылыңыз
void reconnectMQTT () {if (hornbill.connect (HOST_ADDRESS, CLIENT_ID) == 0) {Serial.println («AWS -ке қосылған»); кешіктіру (1000);
if (0 == hornbill.subscribe (TOPIC_NAME, mySubCallBackHandler))
{Serial.println («Жазылу сәтті»); } else {Serial.println («Жазылу сәтсіз аяқталды, заттың аты мен сертификаттарын тексеріңіз»); кезінде (1); }} else {Serial.println («AWS байланысы сәтсіз аяқталды, HOST мекенжайын тексеріңіз»); кезінде (1); }
кешіктіру (2000);
}
сенсордың мәліметтерін әр 1 минуттан кейін жариялаңыз
if (tick> = 60) // тақырыпқа әр 5 секунд сайын жариялау {tick = 0; пайдалы жүктеме [PAYLOAD_MAX_LEN]; snprintf (пайдалы жүктеме, PAYLOAD_MAX_LEN, формат, senseNumber, msgCount ++, rms_x, rms_y, rms_z, cTemp, кернеу); Serial.println (пайдалы жүктеме); if (hornbill.publish (TOPIC_NAME, пайдалы жүктеме) == 0) {Serial.print («Хабарламаны жариялау:»); Serial.println (пайдалы жүктеме); } else {Serial.println («Жарияланбады»); }} vTaskDelay (1000 / portTICK_RATE_MS); белгілеу ++;
7 -қадам: AWS -те деректерді визуализациялау
- AWS есептік жазбаңызға кіріңіз.
- құралдар тақтасының сол жақ бұрышында «Қызметтер» қойындысын табасыз
- Осы қойындыны нұқыңыз және Интернет заттарының астында IoT Core таңдаңыз.
- QoS таңдаңыз және жоқ. жазылушыларға хабарламалар. Тақырып атауын енгізіңіз.
8 -қадам: Жалпы код
Сіз жалпы кодты осы Github репозиторийінен таба аласыз.
Несие
- Ардуино Джсон
- Сымсыз температура мен ылғалдылық сенсорлары
- ESP32
- PubSubClient
Ұсынылған:
Ұзақ қашықтықтағы сымсыз температура мен діріл датчиктерінің жұмысын бастау: 7 қадам
Ұзақ диапазондағы сымсыз температура мен діріл датчиктерінің жұмысын бастау: Кейде діріл көптеген қосымшаларда елеулі мәселелердің себебі болып табылады. Машина біліктері мен подшипниктерден қатты дискінің өнімділігіне дейін діріл машинаның зақымдалуына, ерте ауыстырылуына, төмен өнімділігіне әкеледі және дәлдікке үлкен соққы береді. Мониторинг
IoT- Ubidots- ESP32+сымсыз-діріл-температура сенсоры: 7 қадам
IoT- Ubidots- ESP32+сымсыз-діріл-және-температура сенсоры: діріл-бұл моторлы гаджеттердегі машиналар мен компоненттердің шынымен де, әрі-бері қозғалысы немесе тербелісі. Өндірістік жүйеде діріл қиындықтың белгісі немесе мотиві болуы мүмкін немесе оны күнделікті жұмыспен байланыстыруға болады. Мысалы, оскар
MQ135 және сыртқы температура мен ылғалдылық сенсоры бар MQTT бар ауа сапасының мониторы: 4 қадам
MQ135 және MQTT үстіндегі сыртқы температура мен ылғалдылық сенсоры бар ауа сапасының мониторы: бұл сынақ мақсатында
ESP8266 NodeMCU кіру нүктесі (AP) DT11 температура сенсоры бар веб -сервер үшін және шолуда температура мен ылғалдылықты басып шығару: 5 қадам
Браузерде DT11 температура сенсоры мен баспа температурасы мен ылғалдылығы бар веб -серверге арналған ESP8266 NodeMCU кіру нүктесі (AP): Сәлеметсіздер ме, біз ESP8266 пайдаланатын жобалардың көпшілігінде және жобалардың көпшілігінде біз ESP8266 -ды веб -сервер ретінде қолданамыз, осылайша деректерге қол жеткізуге болады. ESP8266 орналастырған веб -серверге кіру арқылы Wi -Fi арқылы кез келген құрылғы, бірақ жалғыз мәселе - бізге жұмыс маршрутизаторы қажет
IOT Long Range сымсыз температура мен ылғалдылық сенсоры қызыл-түйінмен: 27 қадам
IOT Long Range сымсыз температура мен ылғалдылық сенсоры қызыл-түйінмен: сымсыз торлы желінің архитектурасын қолдана отырып 28 миль диапазонына дейін мақтана алатын NCD ұзақ қашықтықтағы температура мен ылғалдылық сенсорымен таныстырады. Honeywell HIH9130 температура мен ылғалдылық сенсоры жоғары температураны жібереді