Агуулгын хүснэгт:
- Алхам 1: ESP32 Pinout
- Алхам 2: NodeMCU Pinout
- Алхам 3: MQTT
- Алхам 4: угсрах
- Алхам 5: Диаграм
- Алхам 6: Номын сан
- Алхам 7: Температур ба чийгшил унших номын сан
- Алхам 8: MQTT номын сан
- Алхам 9: MQTT.ino
- Алхам 10: График
- Алхам 11: Файлууд
Видео: IBM Watson нь ESP32 -ийг төгсгөлийн цэг болгон ашиглах: 11 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Би энд энд Endpoint төхөөрөмжийг ESP32 ашиглан хэрхэн холбож, дараа нь үүл үйлчилгээнд илгээх тухай цувралын эхний видеог энд байрлуулж байна. Энэхүү тодорхой хэсэгт би IBM Watson -ийн MQTT протоколыг ашиглан DHT22 мэдрэгчээс мэдээлэл хэрхэн илгээхийг танд үзүүлэх болно.
Бид эхлээд MQTT-ийг танилцуулах болно, энэ нь IoT (Интернетийн зүйл) -д ашигладаг машинаас машин руу дамжих протокол юм. Бид мөн энэхүү протоколыг ашиглан температур, чийгшлийн мэдрэгчийн өгөгдлийг илгээж, дараа нь энэ өгөгдөл бүхий графикийг вэб хуудаснаас шалгана.
Алхам 1: ESP32 Pinout
Би энд бидний жишээнд ашигладаг ESP32 -ийн Pinout -ийг байрлуулсан. Гэсэн хэдий ч, төсөл нь ESP8266 -тэй, тэр ч байтугай ижил эх кодтой ажилладаг гэдгийг тодорхой хэлмээр байна.
Алхам 2: NodeMCU Pinout
Алхам 3: 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 номын сан
Алхам 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: Файлууд
Файлуудыг татаж авах:
INO
Зөвлөмж болгож буй:
IoT ухаалаг цагны цэг матрицыг ашиглах Wemos ESP8266 - ESP матриц: 12 алхам (зурагтай)
IoT ухаалаг цагны цэг матрицыг ашиглах Wemos ESP8266-ESP матриц: IoT ухаалаг цагийг өөрийн гараар хийж болно: Үзэсгэлэнт хөдөлгөөнт дүрс бүхий цагийг харуулах Сануулагч-1-ээс Сануулагч-5 руу хуанли харуулах Bitcoin ханшийн дэлгэц
Max7219 8x8 цэг матрицыг "skiiiD" ашиглан хэрхэн ашиглах вэ: 9 алхам
Max7219 8x8 цэг матрицыг "skiiiD" -ээр хэрхэн ашиглах вэ: Энэ бол Max7219 8x8 цэг матрицын видео заавар бөгөөд "skiiiD" ашиглан эхлэхээс өмнө skiiiD -ийг хэрхэн ашиглах үндсэн заавар юм. Http://www.instructables.com/id /Эхлэх-W
LM3914 цэг/бар дэлгэцийн драйвер IC ашиглах: 5 алхам
LM3914 Dot/Bar Display Driver IC -ийг ашиглах нь: LM3914 нь 20 -р зууны сүүлчээр алдартай бүтээгдэхүүн байсан ч өнөөг хүртэл алдартай хэвээр байгаа. Энэ нь шугаман хүчдэлийн түвшинг харуулах хамгийн хялбар аргуудыг санал болгодог бөгөөд нэг буюу хэд хэдэн арван LED бүлгийг хамгийн бага чимээ шуугиантайгаар харуулдаг. Та LM3914 загварыг
Arduino болон Shift бүртгэлтэй цэг матрицын LED ашиглах: 5 алхам
Arduino болон Shift бүртгэлтэй цэг матрицын LED ашиглах: Siemens DLO7135 цэг матриц LED нь оптоэлектроникийн нэг гайхалтай хэсэг юм. Санах ой/декодер/драйвер бүхий 5x7 цэг матрицын ухаалаг дэлгэц (r) гэж тооцогддог. Энэхүү санах ойн хамт 96 тэмдэгт бүхий ASCII дэлгэцтэй бөгөөд дээд ба доод
Утасгүй чиглүүлэгчийг утасгүй өргөтгөгч 2х хандалтын цэг болгон хөрвүүлэх: 5 алхам
Утасгүй чиглүүлэгчийг утасгүй өргөтгөлийн 2x хандалтын цэг болгон хөрвүүлэх: RSJ (таазанд металл тулгуур туяа) залгагдсаны улмаас би байшиндаа утасгүй интернет холболт муутай байсан бөгөөд дохиог нэмэгдүүлэх эсвэл байшингийн бусад хэсэгт нэмэлт өргөтгөл нэмэхийг хүссэн. Би цахилгаан сэлгээнд 50 фунт стерлинг харсан