Агуулгын хүснэгт:

IBM Watson нь ESP32 -ийг төгсгөлийн цэг болгон ашиглах: 11 алхам
IBM Watson нь ESP32 -ийг төгсгөлийн цэг болгон ашиглах: 11 алхам

Видео: IBM Watson нь ESP32 -ийг төгсгөлийн цэг болгон ашиглах: 11 алхам

Видео: IBM Watson нь ESP32 -ийг төгсгөлийн цэг болгон ашиглах: 11 алхам
Видео: Wokwi to IBM watson cloud - IOT 2024, Долдугаар сарын
Anonim
Image
Image
ESP32 зүү
ESP32 зүү

Би энд энд Endpoint төхөөрөмжийг ESP32 ашиглан хэрхэн холбож, дараа нь үүл үйлчилгээнд илгээх тухай цувралын эхний видеог энд байрлуулж байна. Энэхүү тодорхой хэсэгт би IBM Watson -ийн MQTT протоколыг ашиглан DHT22 мэдрэгчээс мэдээлэл хэрхэн илгээхийг танд үзүүлэх болно.

Бид эхлээд MQTT-ийг танилцуулах болно, энэ нь IoT (Интернетийн зүйл) -д ашигладаг машинаас машин руу дамжих протокол юм. Бид мөн энэхүү протоколыг ашиглан температур, чийгшлийн мэдрэгчийн өгөгдлийг илгээж, дараа нь энэ өгөгдөл бүхий графикийг вэб хуудаснаас шалгана.

Алхам 1: ESP32 Pinout

Би энд бидний жишээнд ашигладаг ESP32 -ийн Pinout -ийг байрлуулсан. Гэсэн хэдий ч, төсөл нь ESP8266 -тэй, тэр ч байтугай ижил эх кодтой ажилладаг гэдгийг тодорхой хэлмээр байна.

Алхам 2: NodeMCU Pinout

NodeMCU Pinout
NodeMCU Pinout

Алхам 3: MQTT

MQTT
MQTT

MQTT бол IoT-д ашигладаг машинаас машин руу дамжих протокол юм. Энэ нь хөнгөн, хурдан байхаар хийгдсэн. Энэ нь захиалах/нийтлэх системийг ашигладаг бөгөөд төхөөрөмж нь таны сонирхож буй тодорхой мэдээлэл бүхий сэдвийг "захиалдаг" бөгөөд дараа нь төхөөрөмж энэ сэдвээр мэдээлэл нийтлэх бүрт мэдээллийг хүлээн авдаг.

Серверийн програмын нэгэн адил MQTT програм хангамж хэрэгтэй. Үүнийг брокер гэж нэрлэдэг. Энэ тохиолдолд бид IBM -ийн Bluemix IoT үйлчилгээг ашиглах болно. Энэхүү үйлчилгээ нь эцсийн цэгийн туршилтанд үнэ төлбөргүй байдаг.

Дараа нь бид MQTT үйлчлүүлэгч болох Програмын талтай гар утас эсвэл таблеттай байх ёстой. Бидэнд Төхөөрөмжийн тал байгаа бөгөөд энэ нь термометр бүхий ESP тал юм. Энэ нь температур, чийгшлийн өгөгдлийг Bluemix руу илгээдэг бөгөөд дараа нь энэ мэдээллийг Application Side руу илгээдэг.

Алхам 4: угсрах

Чуулган
Чуулган

Манай хэлхээ нь 3.3v ба өгөгдлийн зүү хоорондын 4.7k Ом эсэргүүцэлээс гадна ESP32 эсвэл NodeMCU -ийн GPIO4 -т холбогдсон DHT22 -ээс бүрдэнэ. Тиймээс энэ бол бидний эцсийн цэг юм.

Алхам 5: Диаграм

Диаграм
Диаграм
Диаграм
Диаграм

Би энд MQTT Local Broker -тэй ажиллах хэд хэдэн аргыг энд харуулав. Би диаграмын хоёр загварыг байрлуулсан. Видео бичлэг дээр би жишээ нь Raspberry Pi ашиглан хаалга онгойлгох талаар ярьж байна.

Дээрх зурган дээр бид орон нутгийн Брокерыг тууштай ашигладаг анхны архитектуртай бөгөөд доор нь зөвхөн брокертой үүлэн дотор харилцдаг хоёрдахь архитектуртай.

Диаграммд үзүүлснээр бидний мэдрэгч температур, чийгшлийн мэдээллийг IBM Watson руу илгээдэг. IBM Watson өгөгдлийг зөвхөн график хэлбэрээр харуулдаг тул энэ тохиолдолд бичдэггүй гэдгийг онцлон тэмдэглэх нь зүйтэй. Учир нь бид өнөөдрийн жишээн дээр өгөгдлийн сангийн аливаа үйлдлийг шийдвэрлэхгүй, харин зөвхөн төгсгөлийн цэгийн статусыг харуулах Quickstart хуудсанд (https://quickstart.internetofthings.ibmcloud.com/) хандах хандалтыг зааж өгсөн болно. Энэхүү схем нь энгийн бөгөөд өгөгдөл илгээхдээ WiFi ашигладаг.

Алхам 6: Номын сан

Arduino IDE дээр Sketch цэс рүү очно уу -> Номын санг оруулах -> Номын санг удирдах …

Нээгдсэн дэлгэц дээр "DHT" гэсэн хайлтыг оруулаад "DHT мэдрэгчийн номын сан" -г суулгана уу.

Дараа нь "PubSubClient" гэж бичээд "PubSubClient" lib -ийг суулгана уу.

Алхам 7: Температур ба чийгшил унших номын сан

Температур ба чийгшил унших номын сан
Температур ба чийгшил унших номын сан

Алхам 8: MQTT номын сан

MQTT номын сан
MQTT номын сан

Алхам 9: MQTT.ino

Бид ямар ESP ашиглаж байгааг шалгаж, холбогдох номын сан болон WiFi импортлох замаар эх кодыг эхлүүлнэ. Бид MQTT Libs ба Температур ба чийгшил мэдрэгчийг одоо хүртэл оруулсаар байна.

// Verifica qual ESP está sendo utilizado // e importa a lib e wifi корреспондент #if defined (ESP8266) #include #else #include #endif // Lib de MQTT #include // Lib do sensor de temperatura e umidade #include

Дараа нь бид дараахь зүйлийг тодорхойлдог: өгөгдөл оруулах хоорондох интервал, ашиглах MQTT сервер, диаграм дээрх хэвлэх мэдээлэл, ID. Бид QUICK_START мөр ямар байх ёстойг бас онцолсон.

// Intervalo entre os envios #INTERVAL 1000 -ийг тодорхойлох // SSID -ийг солих #TesteESP -ийг тодорхойлох // Орлуулах оролт нь "87654321" нууц үгийг тодорхойлох // Server MQTT que iremos utlizar #dequine MQTstSERVER ".messaging.internetofthings.ibmcloud.com "// Nome do tópico que devemos enviar os dados // para que eles apareçam nos gráficos #define TOPIC_NAME" iot-2/evt/status/fmt/json "// ID que usaremos para conectar // QUICK_START хөгжүүлэлтийн байнгын гүйцэтгэл String QUICK_START = "d: quickstart: arduino:";

Энэ алхамд бид өвөрмөц ID тодорхойлдог. Энэ жишээнд бид ашиглаж буй төхөөрөмжийн MAC хаягийг ашигладаг. Энэ нь QuickStart сайт дээр таних үүрэг гүйцэтгэх болно. Энд бид Quickstart ID -г төхөөрөмжийнхөө ID -тай холбож өгдөг.

// DEVICE_ID -ийг ашиглах боломжгүй байна // MAC хаягийг ашиглах шаардлагагүй // MAC хаягийг ашиглах // сайтад хандах шаардлагагүй // сайтад хандах шаардлагагүй //https://quickstart.internetofthings.ibmcloud.com String DEVICE_ID = "240ac40e3fd0"; // Concatemos o id do faststart com o id do nosso // dispositivo const String CLIENT_ID = QUICK_START + DEVICE_ID;

Дараа нь бид MQTT ба WiFi, түүнчлэн температур, чийгшлийн утгатай холбоотой объект, хувьсагчдыг тохируулдаг.

// Хэрэглэгчийн WiFi холболт нь WIFIClient wifiClient; // Cliente MQTT, url do сервер, портал // дамжуулагч WiFi PubSubClient клиент (MQTT_SERVER, 1883, wifiClient); // Tempo em que o último envio foi feito long lastPublishTime = 0; // Objecto que realiza a leitura da temperatura e da umidade DHT dht (4, DHT22); // Variável para guardarmos o valor da temperatura хөвөх температур = 0; // Хувьсах чийгшил = 0;

MQTT.ino - тохиргоо

Тохиргоонд бид DHT -ийг эхлүүлж, WiFi сүлжээ болон MQTT сервер рүү холбогдох болно.

void setup () {Serial.begin (115200); // Incializamos o dht dht.begin (); // Conectamos à rede WiFi setupWiFi (); // Conquamos эсвэл сервер MQTT connectMQTTServer (); }

MQTT.ino - давталт

Loop дээр бид IBM Watson -ийн график үүсгэхийг хүсч буй сэдвээр нийтлэгдэх Json -ийг үүсгэхийн тулд мэдрэгчийн өгөгдлийг цуглуулдаг.

void loop () {// Tempos agora em milisegundos long now = millis (); // Se o tempo desde o último envio for maior que o intervalo de envio if (now - lastPublishTime> INTERVAL) {// Atualizamos o tempo em que ocorreu o último envio lastPublishTime = now; // Fazemos a leitura da temperatura e umidade readSensor (); Serial.print ("Зурвас нийтлэх:"); // Criamos o json que enviaremos para server mqtt String msg = createJsonString (); Serial.println (msg); // Publicamos no tópico onde o o servidor espera para resberber // e gerar o gráfico client.publish (TOPIC_NAME, msg.c_str ()); }}

MQTT.ino - setupWiFi

Энд бид WiFi сүлжээнд холбогдох үүрэгтэй.

// WiFivoid setupWiFi () {Serial.println (); Serial.print ("Холбогдож байна"); Serial.print (SSID); // Manda o esp se conectar à rede através // do ssid e senha WiFi.begin (SSID, PASSWORD); // Espera até que a conexão com a make a reseca setelecida while (WiFi.status ()! = WL_CONNECTED) {саатал (500); Serial.print ("."); } // Seggou aqui é porque conectou Serial.println (""); Serial.println ("WiFi холбогдсон"); }

MQTT.ino - connectMQTTServer

Энэ алхамд бид MQTT сервертэй холбогдох үүргийг ашигладаг.

// MQTTvoid connectMQTTServer () {Serial.println ("MQTT Сервертэй холбогдож байна …") серверийн үүрэг гүйцэтгэгчээс авсан үүрэг хариуцлага. // Холбоо барих эсвэл тодорхойлох нь if (client.connect (CLIENT_ID.c_str ()))) {// Serial.println ("холбогдсон") холболтыг сонгоно уу; } else {// Serial.print ("алдаа ="); Serial.println (client.state ()); }}

MQTT.ino - readSensor

Температур, чийгшлийн өгөгдлийг энэ функцээр тодорхойлдог.

// Função answerável a realizar a leitura // da temperatura e umidade void readSensor () {float value; // Faz a leitura da temperatura утга = dht.readTemperature (); // Se o valor lido é válido if (! Isnan (утга)) {// Armazena o novo valor da temperatura температур = утга; } // Faz a leitura da umidade value = dht.readHumidity (); // Se o valor for válido if (! Isnan (value)) {// Armazena o novo valor da umidade чийгшил = утга; }}

MQTT.ino - createJsonString

Энд бид өгөгдлийг уншсан Json үүсгэх үүрэгтэй.

// Funksão answerável criar // um Json com os dados lidos String createJsonString () {String data = "{"; өгөгдөл+= "\" d / ": {"; өгөгдөл+= "\" температур / ":"; өгөгдөл+= Мөр (температур); өгөгдөл+= ","; өгөгдөл+= "\" чийгшил / ":"; өгөгдөл+= Мөр (чийгшил); өгөгдөл+= "}"; өгөгдөл+= "}"; өгөгдлийг буцаах; }

Алхам 10: График

График
График
График
График

Мэдрэгчийн графикийг үзэхийн тулд очно уу

quickstart.internetofthings.ibmcloud.com руу орно уу

Төхөөрөмжийн ID талбарт кодонд тодорхойлсон DEVICE_ID -ийг оруулна уу.

- Энэ төхөөрөмжийн ID -г өөр хүний илгээсэн өгөгдөлтэй зөрчилдөхөөс зайлсхийхийн тулд ашигладаг өвөрмөц ID болгон өөрчлөх нь чухал юм.

Эцэст нь нөхцлийг хүлээн зөвшөөрч, Go дээр дарна уу.

Энэ төсөлд бид IBM Watson сервер дээр Endpoint -ийг туршиж үзсэн. Энэ нь манай Arduino програм нь платформтой зөв харилцаж байгаа бөгөөд хэрэв бид данс үүсгэвэл бидний илгээсэн өгөгдлийг үүл үйлчилгээ хялбархан хүлээж авах болно.

Энэ цувралын удахгүй болох видеон дээр би IBM Watson -д хэрхэн нэвтрэх, мөн Google, Amazon гэх мэт энэ эсвэл өөр үүл үйлчилгээний мэдээллийн санд бичих талаар танд үзүүлэх болно.

Алхам 11: Файлууд

Файлуудыг татаж авах:

PDF

INO

Зөвлөмж болгож буй: