Përmbajtje:
- Hapi 1: ESP32 Pinout
- Hapi 2: NodeMCU Pinout
- Hapi 3: MQTT
- Hapi 4: Asambleja
- Hapi 5: Diagrami
- Hapi 6: Bibliotekat
- Hapi 7: Biblioteka e leximit të temperaturës dhe lagështisë
- Hapi 8: Biblioteka MQTT
- Hapi 9: MQTT.ino
- Hapi 10: Grafik
- Hapi 11: Skedarët
Video: IBM Watson Me ESP32 si pikë përfundimi: 11 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:26
Unë po postoj sot këtu videon e parë të një serie se si të montoni një pajisje Endpoint me ESP32, dhe pastaj ta dërgoni atë në një shërbim cloud. Në këtë episod të veçantë, unë do t'ju tregoj se si të dërgoni informacion nga një sensor DHT22 duke përdorur protokollin MQTT për IBM Watson.
Së pari do të prezantojmë MQTT, i cili është një protokoll makinë nga makina e përdorur në IoT (Internet of Things). Ne gjithashtu do të dërgojmë të dhëna nga sensori i temperaturës dhe lagështisë duke përdorur këtë protokoll, dhe pastaj do të kontrollojmë grafikun me këto të dhëna në një faqe në internet.
Hapi 1: ESP32 Pinout
Vendosa këtu Pinout -in e ESP32, të cilin e përdorim në shembullin tonë. Sidoqoftë, dua ta bëj të qartë se projekti gjithashtu punon me ESP8266, dhe madje edhe me të njëjtin kod burim.
Hapi 2: NodeMCU Pinout
Hapi 3: MQTT
MQTT është një protokoll makinë nga makina e përdorur në IoT. Shtë projektuar të jetë i lehtë dhe i shpejtë. Ai përdor një sistem abonimi/publikimi, ku një pajisje "pajtohet" në një temë me informacionin specifik të interesit tuaj, dhe pastaj merr informacionin sa herë që një pajisje publikon të dhëna në lidhje me këtë temë.
Ashtu si një program serveri, MQTT ka nevojë për softuer. Ky quhet ndërmjetës. Në këtë rast specifik, ne do të përdorim Shërbimin IoM Bluemix IBM. Ky shërbim është falas për testimin e pikës përfundimtare.
Tjetra, ne duhet të kemi një celular ose tabletë me anën e Aplikimit, domethënë si një klient MQTT. Ne gjithashtu kemi anën e Pajisjes, e cila është ana ESP me një termometër. Kjo dërgon të dhënat e temperaturës dhe lagështisë në Bluemix, e cila më pas e dërgon këtë informacion në Anën e Aplikimit.
Hapi 4: Asambleja
Qarku ynë përbëhet nga një rezistencë 4.7k Ohms midis 3.3v dhe pinit të të dhënave, plus një DHT22 të lidhur me GPIO4 të një ESP32 ose NodeMCU. Kështu, kjo është pika jonë përfundimtare.
Hapi 5: Diagrami
Unë tregoj këtu disa mënyra për të punuar me ndërmjetësin lokal MQTT. Vendosa dy modele diagramesh. Në video, unë flas për një situatë duke përdorur një Raspberry Pi për të hapur një portë, për shembull.
Në imazhin e mësipërm, ne kemi arkitekturën e parë që përdor një ndërmjetës lokal me këmbëngulje, dhe një arkitekturë të dytë më poshtë që komunikon vetëm me ndërmjetësin në re.
Siç tregohet në diagram, sensori ynë pastaj dërgon të dhënat e temperaturës dhe lagështisë në IBM Watson. Importantshtë e rëndësishme të theksohet se IBM Watson nuk po i shkruan të dhënat në këtë rast, pasi ato shfaqen vetëm në grafikë. Kjo ndodh sepse ne nuk do të trajtojmë asnjë operacion të bazës së të dhënave në shembullin e sotëm, por vetëm do të tregojmë qasje në faqen Quickstart (https://quickstart.internetofthings.ibmcloud.com/), e cila do të shfaq statusin e Endpoint. Skema është e thjeshtë dhe përdor WiFi për të dërguar të dhëna.
Hapi 6: Bibliotekat
Në Arduino IDE, shkoni te menyja Sketch -> Përfshi Bibliotekën -> Menaxho Bibliotekat …
Në ekranin që hapet, futni në kërkimin "DHT" dhe instaloni lib "bibliotekën e sensorit DHT"
Pastaj, shtypni "PubSubClient" dhe instaloni librin "PubSubClient".
Hapi 7: Biblioteka e leximit të temperaturës dhe lagështisë
Hapi 8: Biblioteka MQTT
Hapi 9: MQTT.ino
Ne e fillojmë kodin burimor duke kontrolluar se cili ESP po përdoret dhe duke importuar bibliotekën përkatëse dhe WiFi. Ne ende përfshijmë Librat MQTT dhe Sensorin e Temperaturës dhe Lagështisë.
// Verifica qual ESP está sendo utilizado // e importon një lib e wifi korrespondente #nëse është përcaktuar (ESP8266) #include #else #include #endif // Lib de MQTT #include // Lib do sensor de temperatura e umidade #include
Tjetra, ne përcaktojmë sa vijon: intervalin midis paraqitjeve të të dhënave, serverit MQTT që do të përdoret, informacionit të printuar në tabelë dhe ID. Ne gjithashtu vumë në dukje se si duhet të jetë vargu QUICK_START.
// Intervalo entre os envios #define INTERVAL 1000 // Zëvendësoni SSID -in tuaj për të përcaktuar #define SSID "TesteESP" // Zëvendësoni të dhënat tuaja për të rivendosur #define PASSWORD "87654321" // Serveri MQTT dhe iremos utlizar #define MQTT_SER.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 zhvillimi i përgjithshëm i este const String QUICK_START = "d: quickstart: arduino:";
Në këtë hap, ne përcaktojmë një ID unike. Në këtë shembull, ne përdorim adresën MAC të pajisjes që po përdorim. Kjo do të shërbejë si identifikim në faqen e QuickStart. Këtu, ne gjithashtu lidhim ID -në e Quickstart me ID -në e pajisjes sonë.
// Asnjë DEVICE_ID nuk do të thotë për idenë tuaj Aqunico // Ju mund të përdorni një adresë MAC // bëni disponueshmërinë e përdorimit të shërbimeve // Shërbimet për identifikim pa faqe //https://quickstart.internetofthings.ibmcloud.com const String DEVICE_ID = "240ac40e3fd0"; // Konkluzionet ose id do të filloni me shpejtësi ose do të filloni // dispozitivo const String CLIENT_ID = QUICK_START + DEVICE_ID;
Ne pastaj konfigurojmë MQTT dhe WiFi, si dhe objektet dhe ndryshoret e përfshira me vlerat e temperaturës dhe lagështisë.
// WiFi i Klientit që është përdorur nga MQTT duke përdorur wi WiiClient ConnectarWiFiClient; // Cliente MQTT, kalon një url do server, një porta // e o klientë WiFi PubSubClient klient (MQTT_SERVER, 1883, wifiClient); // Tempo em que o último envio foi feito longPublishTime = 0; // Objekti që ka realizuar një temperaturë të temperaturës së një umidade DHT dht (4, DHT22); // Variável para guardarmos o valor da temperatura temperatura e notimit = 0; // Variável para guardarmos o valor da umidade lagështia e notit = 0;
MQTT.ino - konfigurimi
Në Setup, ne do të fillojmë DHT dhe do të lidhemi në rrjetin WiFi dhe serverin MQTT.
void setup () {Serial.begin (115200); // Incializamos o dht dht.filloj (); // Conectamos de redde WiFi setupWiFi (); // Conectamos ao server MQTT connectMQTTServer (); }
MQTT.ino - lak
Në Loop, ne mbledhim të dhënat e sensorit për të krijuar Json që do të publikohet në temën që IBM Watson pret të krijojë grafikun.
void loop () {// Tempos agora em milisegundos tani tani = 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 = tani; // Fazemos a leitura da temperatura e umidade readSensor (); Serial.print ("Publiko mesazhin:"); // Criamos ose json për zili për serverin mqtt String msg = createJsonString (); Serial.println (msg); // Publicamos nuk ka nevojë të shërbejë për shërbimin e espera për pranuesin // dhe të dhënat e klientit.publish (TOPIC_NAME, msg.c_str ()); }}
MQTT.ino - setupWiFi
Këtu, ne kemi funksionin përgjegjës për t'u lidhur me rrjetin WiFi.
// Përgjigje Funksionale për konektorin dhe rregullimin e WiFivoid setupWiFi () {Serial.println (); Serial.print ("Lidhu me"); Serial.print (SSID); // Manda o esp se conectar à rede através // do ssid e senha WiFi.filloj (SSID, Fjalëkalimi); // Espera është një përfundim që mund të bëhet duke krijuar (WiFi.status ()! = WL_CONNECTED) {vonesë (500); Serial.print ("."); } // Se chegou aqui é porque conectou Serial.println (""); Serial.println ("WiFi i lidhur"); }
MQTT.ino - lidh MQTTServer
Në këtë hap, ne përdorim funksionin përgjegjës për t'u lidhur me serverin MQTT.
// Funksioni i përgjigjes për serverin konektor MQTTvoid connectMQTTServer () {Serial.println ("Lidhja me serverin MQTT …"); // Se conecta ao id que definimos if (client.connect (CLIENT_ID.c_str ())) {// Se a conexão foi bem sucedida Serial.println ("lidhur"); } else {// Se ocorreu algum erro Serial.print ("error ="); Serial.println (client.state ()); }}
MQTT.ino - lexoSensor
Leximi i të dhënave të temperaturës dhe lagështisë përcaktohet në këtë funksion.
// Funksioni i përgjigjes për realizimin e një leiture // temperatura e umidade void readSensor () {vlera e notës; // Faz a leitura da temperatura value = dht.readTemperature (); // Se o valor lido é válido if (! Isnan (vlera)) {// Armazena o novo valor da temperatura temperature = vlera; } // Faz a leitura da umidade value = dht.readHumidity (); // Se o valor për válido nëse (! Isnan (vlera)) {// Armazena o novo valor da umidade lagështia = vlera; }}
MQTT.ino - krijoJsonString
Këtu, ne kemi funksionin përgjegjës për krijimin e një Json me të dhënat e lexuara.
// Funksioni i përgjigjes për criar // um Json com os dados lidos String createJsonString () {String data = "{"; të dhëna+= "\" d / ": {"; të dhëna+= "\" temperatura / ":"; të dhëna+= Vargu (temperatura); të dhëna+= ","; të dhëna+= "\" lagështia / ":"; të dhëna+= Vargu (lagështia); të dhëna+= "}"; të dhëna+= "}"; ktheni të dhënat; }
Hapi 10: Grafik
Për të parë grafikun e sensorit, shkoni
në
Në fushën ID e pajisjes, futni DEVICE_ID që keni përcaktuar në kod.
- importantshtë e rëndësishme të ndryshoni këtë ID të Pajisjes në një ID unike, e përdorur vetëm për të shmangur konfliktin me të dhënat e dërguara nga një person tjetër.
Më në fund, pranoni kushtet dhe klikoni Shko.
Në këtë projekt, ne testuam Endpoint -in tonë në serverin IBM Watson. Kjo siguron që programi ynë Arduino po komunikon siç duhet me platformën dhe se të dhënat që dërgojmë do të merren pa probleme nga një shërbim cloud nëse krijojmë një llogari.
Në një video të ardhshme në këtë seri, unë do t'ju tregoj se si të regjistroheni në IBM Watson, si dhe të shkruani në bankën e të dhënave të këtij ose një shërbimi tjetër cloud, si Google, Amazon, ndër të tjera.
Hapi 11: Skedarët
Shkarkoni skedarët:
INO
Recommended:
Përfundimi i Klasës Otto DIY: 4 hapa
Finalja e Klasës Otto DIY: Ky projekt u bë i mundur nga Otto dhe Kolegji Teknik i Athinës. Për të filluar, së pari duhet të blini kompletin nga: https://www.ottodiy.com/store/products/49452Pastaj ndiqni hapat në: https: //wikifactory.com/+OttoDIY/otto-diy
Lëkundës i kontrolluar i tensionit pikë për pikë: 29 hapa
Lëkundës i kontrolluar i tensionit pikë për pikë: Përshëndetje! Ju keni gjetur një projekt ku marrim një mikroçip vërtet të lirë, një CD4069 (i bukur), dhe i bashkojmë disa pjesë, dhe marrim një oshilator shumë të dobishëm të përcjelljes së tensionit të kontrolluar! Versioni që do të ndërtojmë ka vetëm një valë sharre ose devijimi, e cila është
Qarku Crossfader pikë për pikë: 16 hapa (me fotografi)
Qarku Crossfader Point-to-Point: Ky është një qark crossfader. Ai pranon dy hyrje dhe zbehet midis tyre, me daljen që është një përzierje e dy hyrjeve (ose vetëm një prej hyrjeve). Circuitshtë një qark i thjeshtë, shumë i dobishëm dhe i lehtë për t’u ndërtuar! Ai përmbys sinjalin që kalon përmes tij,
Qarku pikë-për-pikë Eurorack i prishjes së dyfishtë: 12 hapa
Qarku pikë-për-pikë Eurorack i prishjes së dyfishtë: Qëllimi i këtij udhëzuesi është të tregojë se si mund të bëni një qark DECAL DECAY për sintetizuesin tuaj modular. Ky është një qark pikë për pikë pa asnjë PCB dhe demonstron një mënyrë tjetër për të ndërtuar qarqe funksionale sintetizuese me pjesë minimale
Pike - Drejtoni makinë më të sigurt, ngasni më zgjuar, drejtoni një pike !: 5 hapa
Pike - Drejtoni makinë, Drejtoni më zgjuar, Drejtoni një Pike !: Mirë se vini në projektin tim të quajtur Pike! Ky është një projekt si pjesë e edukimit tim. Unë jam një student NMCT në Howest në Belgjikë. Qëllimi ishte për të bërë diçka të zgjuar duke përdorur një Raspberry Pi. Ne kishim liri të plotë në të cilën donim të bëheshim të zgjuar. Për mua është