Агуулгын хүснэгт:
- Алхам 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 11:03
Өмнөх зааварчилгаанд бид Azure, Ubidots, ThingSpeak, Losant гэх мэт өөр өөр үүл платформуудыг туулсан бөгөөд бид бараг бүх үүлний платформ дээр мэдрэгчийн өгөгдлийг үүл рүү илгээх MQTT протоколыг ашиглаж ирсэн. MQTT, түүний HTTP протоколоос давуу болон давуу талуудын талаар нэмэлт мэдээлэл авахыг хүсвэл энэхүү зааварчилгааг ашиглаж болно.
Энэхүү зааварчилгааны хүрээнд бид Amazon Web Services -ийн өөр нэг хамгийн алдартай үүл платформыг үзэх болно. Та нарын ихэнх нь AWS буюу Amazon Web Services буюу AWS -ийн үүлний функцийг мэддэг байх. Энэ нь олон жилийн турш вэб хөгжүүлэлтийн гол цөм болсон юм. IoT програмын цар хүрээ нэмэгдэж байгаатай холбогдуулан AWS нь AWSIoT -ийн шийдлийг гаргаж ирэв. AWSIoT бол манай IoT програмыг байршуулах найдвартай шийдэл юм.
Энэхүү зааварчилгааны дагуу:
- Та IoT програмдаа AWS данс тохируулах боломжтой болно
- Та ESP32 -ийг AWS IoT цөмтэй холбох боломжтой болно
- MQTT болон HTTP протокол ашиглан мессеж илгээх, хүлээн авах
- AWS дээр илгээсэн өгөгдлийг төсөөлөх
Алхам 1: AWS данс тохируулах
AWS данс нээх нь маш хялбар юм. Та хэд хэдэн гэрчилгээ байршуулж, түүнд бодлого хавсаргаж, төхөөрөмжийг бүртгүүлж, мэдрэгчийн өгөгдлийг AWS дээр хүлээн авч эхлэх хэрэгтэй.
AWS данс тохируулахын тулд энэ зааврыг дагана уу.
Алхам 2: Техник хангамж ба програм хангамжийн үзүүлэлтүүд
Програм хангамжийн тодорхойлолт
AWS данс
Тоног төхөөрөмжийн тодорхойлолт
- ESP32
- Утасгүй температур ба чичиргээ мэдрэгч
- Zigmo гарц хүлээн авагч
Алхам 3: Утасгүй чичиргээ ба температур мэдрэгч
Энэ бол утасгүй сүлжээний сүлжээний архитектурыг ашиглан 2 милийн зайтай, урт хугацааны үйлдвэрлэлийн IoT утасгүй чичиргээ ба температур мэдрэгч юм. 16 битийн чичиргээ ба температур мэдрэгчийг агуулсан энэхүү мэдрэгч нь чичиргээний өгөгдлийг хэрэглэгчийн тодорхойлсон интервалаар дамжуулдаг. Энэ нь дараахь онцлог шинж чанартай байна.
- Үйлдвэрийн зэрэглэлийн 3 тэнхлэгтэй чичиргээ мэдрэгч нь ± 32g хүрээтэй
- RMS, MAX, MIN g Vibration -ийг тооцоолно
- Бага нэвтрүүлэх шүүлтүүр ашиглан дуу чимээг арилгах
- Давтамжийн хүрээ (зурвасын өргөн) 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, дэд сүлжээний маск, гарц, утасгүй мэдрэгчийн гарц зэрэг итгэмжлэлийг оруулна уу.
- Wi -Fi сүлжээ болон 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 aka ашиглах болно. Цуваа өгөгдлийг авахын тулд ESP32 хавтангийн GPIO 16 ба GPIO 17 зүү.
#оруулах
# тодорхойлох RXD2 16 # тодорхойлох TXD2 17
Serial2.ben эхлэх (115200, SERIAL_8N1, RXD2, TXD2); // зүү 16 rx2, 17 tx2, 19200 bps, 8 бит нь паритетгүй 1 зогсолтын бит
Дараахь алхамууд нь мэдрэгчийн жинхэнэ утгыг олж авах болно
- Температур, чийгшил, батерей болон бусад мэдрэгчийн утгыг хадгалах хувьсагч үүсгэх
- Тоног төхөөрөмжийн сериалын Rx, tx pin, baud rate болон parity bit -ийг тохируулна уу
- Эхлээд 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 (өгөгдөл [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 ("Firmware хувилбар"); Serial.println (өгөгдөл [17]); Serial.print ("Цельсийн температур:"); Цуваа.хэвлэх (cTemp); Serial.println ("C"); Serial.print ("X тэнхлэг дэх RMS чичиргээ:"); Цуваа.хэвлэх (rms_x); Serial.println ("мг"); Serial.print ("Y тэнхлэг дэх RMS чичиргээ:"); Цуваа.хэвлэх (rms_y); Serial.println ("мг"); Serial.print ("Z тэнхлэг дэх RMS чичиргээ:"); Цуваа.хэвлэх (rms_z); Serial.println ("мг");
Serial.print ("X тэнхлэг дэх хамгийн бага чичиргээ:");
Цуваа.хэвлэх (мин_х); Serial.println ("мг"); Serial.print ("Y тэнхлэг дэх хамгийн бага чичиргээ:"); Цуваа.хэвлэх (мин_y); Serial.println ("мг"); Serial.print ("Z тэнхлэг дэх хамгийн бага чичиргээ:"); Цуваа.хэвлэх (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 hub -тай холбоо тогтоохын тулд AWS_IOT.h, WiFi.h толгой файлуудыг оруулна уу.
- Бодлогын нэр болох Хостын хаяг, Үйлчлүүлэгчийн ID, зүйлийн нэр болох сэдвийн нэрийг оруулна уу
// ********* 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 төвд холбогдоно уу
хүчингүй reconnectMQTT () {if (hornbill.connect (HOST_ADDRESS, CLIENT_ID) == 0) {Serial.println ("AWS -д холбогдсон"); саатал (1000);
хэрэв (0 == hornbill.subscribe (TOPIC_NAME, mySubCallBackHandler))
{Serial.println ("Амжилттай бүртгүүлэх"); } өөр {Serial.println ("Захиалга амжилтгүй болсон, зүйлийн нэр, гэрчилгээг шалгана уу"); байхад (1); }} өөр {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 (ачаалал); } өөр {Serial.println ("Нийтэлж чадсангүй"); }} vTaskDelay (1000 / портTICK_RATE_MS); тэмдэглэгээ ++;
Алхам 7: AWS дээр өгөгдлийг дүрслэн харуулах
- AWS данс руугаа нэвтэрнэ үү.
- Хэрэгслийн самбарын зүүн буланд та "Үйлчилгээ" табыг олох болно
- Энэ таб дээр дарж, Интернетийн зүйлийн гарчгийн доор IoT Core -ийг сонгоно уу.
- QoS -ийг сонгоно уу, үгүй. захиалагчдад илгээсэн мессежүүд. Сэдвийн нэрийг оруулна уу.
Алхам 8: Ерөнхий код
Та энэ кодыг Github репозитороос олж болно.
Зээл
- Ардуино Жсон
- Утасгүй температур ба чийгшил мэдрэгч
- ESP32
- PubSubClient
Зөвлөмж болгож буй:
Урт хугацааны утасгүй температур ба чичиргээ мэдрэгчийг эхлүүлэх нь: 7 алхам
Урт хугацааны утасгүй температур ба чичиргээ мэдрэгчийг эхлүүлэх нь: Заримдаа чичиргээ нь олон програмын ноцтой асуудлын шалтгаан болдог. Машины босоо ам, холхивчоос эхлээд хатуу дискний гүйцэтгэл хүртэлх чичиргээ нь машиныг гэмтээх, эрт солих, гүйцэтгэл муутай болгож, нарийвчлалд ихээхэн цохилт өгдөг. Хяналт хийж байна
Сонгодог тээврийн хэрэгслийн утасгүй датчик бүхий хөдөлгүүрийн температур мэдрэгч/хэмжигч: 7 алхам
Хөдөлгүүрийн температурын мэдрэгч/сонгодог тээврийн хэрэгслийн утасгүй шалгалт хэмжигч: Би хөөрхөн Чипитактаа зориулж энэхүү датчик хийсэн. Арын тагны доор 2 цилиндртэй агаар хөргөлттэй хөдөлгүүртэй fiat 126 автомашинтай. Ципитак нь хөдөлгүүр ямар халуун байгааг харуулах температур хэмжигчгүй тул мэдрэгч нь туслах болно гэж бодсон
Хэт авианы мэдрэгч ба контактгүй температур мэдрэгч бүхий Arduino интерфейс: 8 алхам
Хэт авианы мэдрэгч ба контактгүй температур мэдрэгч бүхий Arduino интерфейс: Өнөө үед үйлдвэрлэгчид, хөгжүүлэгчид төслийн загварыг хурдан хөгжүүлэхийн тулд Arduino -г илүүд үздэг болсон. Arduino бол ашиглахад хялбар техник хангамж, програм хангамж дээр суурилсан нээлттэй эхийн электроникийн платформ юм. Arduino нь маш сайн хэрэглэгчийн нийгэмлэгтэй. Энэхүү төсөлд
IOT Long Range утасгүй температур ба чийгшил мэдрэгч нь зангилаа-улаан: 27 алхам
IOT Long Range утасгүй температур ба чийгшил мэдрэгч зангилаа улаанаар: Утасгүй сүлжээний архитектурыг ашиглан 28 миль хүртэлх зайтай NCD-ийн урт хугацааны утасгүй температур, чийгшлийн мэдрэгчийг танилцуулж байна. Honeywell HIH9130 температур-чийгшлийн мэдрэгчийг агуулсан нь өндөр нарийвчлалтай температурыг дамжуулдаг
IoT утасгүй температур ба хөдөлгөөн мэдрэгч: 11 алхам (зурагтай)
IoT утасгүй температур ба хөдөлгөөн мэдрэгч: Би зааварчилгаанд байдаг IoT -ийн олон төслүүдээс санаа авсан тул суралцах явцдаа холбогдох зарим хэрэгтэй програмуудыг нэгтгэхийг хичээж байна. IoT температур мэдрэгчтэй холбоотой миний өмнөх зааварчилгааны өргөтгөлийн хувьд би одоо