ዝርዝር ሁኔታ:

IBM ዋትሰን ከ ESP32 ጋር እንደ የመጨረሻ ነጥብ: 11 ደረጃዎች
IBM ዋትሰን ከ ESP32 ጋር እንደ የመጨረሻ ነጥብ: 11 ደረጃዎች

ቪዲዮ: IBM ዋትሰን ከ ESP32 ጋር እንደ የመጨረሻ ነጥብ: 11 ደረጃዎች

ቪዲዮ: IBM ዋትሰን ከ ESP32 ጋር እንደ የመጨረሻ ነጥብ: 11 ደረጃዎች
ቪዲዮ: How to install IBM SPSS 25. 2024, ሀምሌ
Anonim
Image
Image
ESP32 Pinout
ESP32 Pinout

የ ‹Endpoint› መሣሪያን በ ESP32 እንዴት እንደሚጭኑ እና ከዚያ ወደ የደመና አገልግሎት እንዴት እንደሚልኩ የተከታታይ የመጀመሪያ ቪዲዮ ዛሬ እዚህ እለጥፋለሁ። በዚህ የተወሰነ ክፍል ውስጥ ፣ ለኤቢኤም ዋትሰን የ MQTT ፕሮቶኮል በመጠቀም መረጃን ከ DHT22 ዳሳሽ እንዴት እንደሚልኩ አሳያችኋለሁ።

በመጀመሪያ በ IoT (የነገሮች በይነመረብ) ውስጥ ጥቅም ላይ የዋለው የማሽን-ወደ-ማሽን ፕሮቶኮል የሆነውን MQTT ን እናስተዋውቃለን። እንዲሁም ይህንን ፕሮቶኮል በመጠቀም ከአየር ሙቀት እና እርጥበት ዳሳሽ መረጃ እንልካለን ፣ እና ከዚያ በድረ -ገጽ ላይ ከዚህ ውሂብ ጋር ግራፉን ይፈትሹ።

ደረጃ 1: ESP32 Pinout

በእኛ ምሳሌ ውስጥ የምንጠቀመውን የ ESP32 Pinout እዚህ አስቀምጫለሁ። ሆኖም ግን ፣ ፕሮጀክቱ ከ ESP8266 ፣ እና በተመሳሳይ ምንጭ ኮድ እንኳን እንደሚሰራ ግልፅ ማድረግ እፈልጋለሁ።

ደረጃ 2: NodeMCU Pinout

NodeMCU Pinout
NodeMCU Pinout

ደረጃ 3: MQTT

MQTT
MQTT

MQTT በ IoT ውስጥ ጥቅም ላይ የሚውል የማሽን-ወደ-ማሽን ፕሮቶኮል ነው። ክብደቱ ቀላል እና ፈጣን እንዲሆን ታስቦ ነበር። የፍላጎትዎን የተወሰነ መረጃ ለርዕሰ ጉዳይ “ሲመዘገብ” እና የደንበኝነት ምዝገባ/የማተም ስርዓትን ይጠቀማል ፣ እና አንድ መሣሪያ ይህንን ርዕስ በሚመለከት መረጃ ባሳተመ ቁጥር መረጃውን ይቀበላል።

ልክ እንደ የአገልጋይ ፕሮግራም ፣ MQTT ሶፍትዌር ይፈልጋል። ይህ ደላላ ይባላል። በዚህ ልዩ ሁኔታ ፣ የ IBM ን የብሉሚክስ አይኦቲ አገልግሎት እንጠቀማለን። ይህ አገልግሎት ለመጨረሻ ነጥብ ሙከራ ነፃ ነው።

በመቀጠል ፣ ከመተግበሪያው ጎን ፣ ማለትም እንደ MQTT ደንበኛ የሞባይል ስልክ ወይም ጡባዊ ሊኖረን ይገባል። እኛ ደግሞ ቴርሞሜትር ያለው የ ESP ጎን የሆነው የመሣሪያ ጎን አለን። ይህ የሙቀት እና የእርጥበት መረጃን ወደ ብሉሚክስ ይልካል ፣ ከዚያ ይህንን መረጃ ወደ የትግበራ ጎን ይልካል።

ደረጃ 4 - ስብሰባ

ስብሰባ
ስብሰባ

የእኛ ወረዳ በ 3.3v እና በመረጃ ፒን መካከል 4.7k Ohms resistor ፣ እንዲሁም ከ ESP32 ወይም NodeMCU GPIO4 ጋር የተገናኘ DHT22 ን ያካትታል። ስለዚህ ፣ ይህ የእኛ የመጨረሻ ነጥብ ነው።

ደረጃ 5: ዲያግራም

ዲያግራም
ዲያግራም
ዲያግራም
ዲያግራም

ከ MQTT አካባቢያዊ ደላላ ጋር ለመስራት በርካታ መንገዶችን እዚህ አሳያለሁ። ሁለት ዲያግራም ሞዴሎችን አስቀምጫለሁ። በቪዲዮው ውስጥ ፣ ለምሳሌ በር ለመክፈት Raspberry Pi ን ስለ አንድ ሁኔታ እናገራለሁ።

ከላይ ባለው ምስል ፣ እኛ የአካባቢያዊ ደላላን በጽናት የሚጠቀም የመጀመሪያው ሥነ ሕንፃ ፣ እና በደመናው ውስጥ ካለው ደላላ ጋር ብቻ የሚገናኝ ሁለተኛ ሥነ ሕንፃ ከዚህ በታች አለን።

በስዕላዊ መግለጫው ላይ እንደሚታየው የእኛ አነፍናፊ ከዚያ የሙቀት እና የእርጥበት መረጃን ወደ IBM Watson ይልካል። በግራፍ ውስጥ ብቻ ስለሚታይ IBM ዋትሰን በዚህ ጉዳይ ላይ ውሂቡን እየጻፈ አለመሆኑን ማጉላት አስፈላጊ ነው። ይህ የሆነበት ምክንያት ዛሬ ባለው ምሳሌ ውስጥ ማንኛውንም የውሂብ ጎታ ሥራዎችን አንመለከትም ፣ ግን የፍጻሜው ገጽ (https://quickstart.internetofthings.ibmcloud.com/) መዳረሻን ብቻ የሚያመለክት ስለሆነ ፣ የመጨረሻውን ነጥብ ያሳያል። መርሃግብሩ ቀላል እና ውሂብ ለመላክ WiFi ይጠቀማል።

ደረጃ 6: ቤተመፃህፍት

በአርዱዲኖ አይዲኢ ውስጥ ወደ ረቂቅ ምናሌ ይሂዱ -> ቤተ -መጽሐፍትን ያካትቱ -> ቤተ -መጽሐፍቶችን ያቀናብሩ…

በሚከፈተው ማያ ገጽ ላይ “DHT” በሚለው ፍለጋ ውስጥ ያስገቡ እና “DHT ዳሳሽ ቤተ -መጽሐፍት” ን ይጫኑ።

ከዚያ “PubSubClient” ብለው ይተይቡ እና “PubSubClient” lib ን ይጫኑ።

ደረጃ 7 - የሙቀት እና እርጥበት ንባብ ቤተ -መጽሐፍት

የሙቀት እና እርጥበት ንባብ ቤተ -መጽሐፍት
የሙቀት እና እርጥበት ንባብ ቤተ -መጽሐፍት

ደረጃ 8: MQTT ቤተ -መጽሐፍት

MQTT ቤተ -መጽሐፍት
MQTT ቤተ -መጽሐፍት

ደረጃ 9: MQTT.ino

የትኛው ESP ጥቅም ላይ እየዋለ እንደሆነ እና ተጓዳኝ ቤተ -መጽሐፍት እና ዋይፋይ በማስመጣት የምንጭ ኮዱን እንጀምራለን። እኛ አሁንም የ MQTT Libs ን እና የሙቀት እና እርጥበት ዳሳሽን አካተናል።

// Verifica qual ESP está sendo utilizado // e importa a lib e wifi ዘጋቢ #ከተገለጸ (ESP8266) #ያካትቱ #ሌላ #ያካተተ #endif // Lib de MQTT #ያካትቱ // Lib do sensor de temperatura e umidade #

በመቀጠል የሚከተለውን እንገልፃለን -በመረጃ ማስረከቢያዎች መካከል ያለው የጊዜ ክፍተት ፣ ጥቅም ላይ የሚውለው የ MQTT አገልጋይ ፣ በገበታው ላይ ያለው የህትመት መረጃ እና መታወቂያው። እንዲሁም QUICK_START ሕብረቁምፊ እንዴት መሆን እንዳለበት ጠቁመናል።

// Intervalo entre os envios #INTERVAL 1000 ን ይግለጹ // Substitua pelo SSID da sua rede #define SSID "TesteESP" // Substitua pela senha da sua rede #define PASSWORD "87654321" // አገልጋይ MQTT que iremos utlizar #define MQTT_SERVER "quick".messaging. // QUICK_START deve permanecer como está const String QUICK_START = "መ: quickstart: arduino:";

በዚህ ደረጃ ፣ ልዩ መታወቂያ እንገልፃለን። በዚህ ምሳሌ ውስጥ እኛ የምንጠቀምበትን መሣሪያ የ MAC አድራሻ እንጠቀማለን። ይህ በ QuickStart ጣቢያ ላይ እንደ መታወቂያ ሆኖ ያገለግላል። እዚህ ፣ እንዲሁም የ Quickstart መታወቂያውን ከመሣሪያችን መታወቂያ ጋር እናገናኘዋለን።

// ምንም DEVICE_ID você deve mudar para um id único // Aqui nesse ምሳሌ utilizamos o MAC አድራሻ // do dispositivo que estamos utilizando // Servirá como identificação ምንም ጣቢያ //https://quickstart.internetofthings.ibmcloud.com const String DEVICE_ID = "240ac40e3fd0"; // Concatemos o id do soonstart com o id do nosso // dispositivo const String CLIENT_ID = QUICK_START + DEVICE_ID;

ከዚያ MQTT ን እና WiFi ን ፣ እንዲሁም ከሙቀት እና እርጥበት እሴቶች ጋር የተዛመዱ ዕቃዎችን እና ተለዋዋጮችን እናዋቅራለን።

// የደንበኛ ዋይፋይ ለኤም.ኬ.ቲ. // Cliente MQTT ፣ passamos a url do server ፣ porta // e o cliente WiFi PubSubClient client (MQTT_SERVER ፣ 1883 ፣ wifiClient) ፤ // Tempo em que o último envio foi feito long lastPublishTime = 0; // Objeto que realiza a leitura da temperatura e da Umidade DHT dht (4 ፣ DHT22) ፤ // Variável para guardarmos o valor da temperatura ተንሳፋፊ ሙቀት = 0; // Variável para guardarmos o valor da umidade ተንሳፋፊ እርጥበት = 0;

MQTT.ino - ማዋቀር

በማዋቀሩ ውስጥ DHT ን እናስጀምራለን ፣ እና በ WiFi አውታረ መረብ እና በ MQTT አገልጋይ ውስጥ እንገናኛለን።

ባዶነት ማዋቀር () {Serial.begin (115200); // Incializamos o dht dht.begin (); // Conectamos à rede WiFi setupWiFi (); // Conectamos ao አገልጋይ MQTT connectMQTTServer (); }

MQTT.ino - loop

በ Loop ውስጥ ፣ IBM ዋትሰን ግራፉን ለማመንጨት በሚጠብቀው ርዕስ ውስጥ የሚታተመውን ጄሰን ለመፍጠር የአነፍናፊ መረጃን እንሰበስባለን።

ባዶነት loop () {// Tempos agora em milisegundos long now = millis (); // Se o tempo desde o último envio for maior que o intervalo de envio (አሁን - lastPublishTime> INTERVAL) {// Atualizamos o tempo em que ocorreu o último envio lastPublishTime = now; // ፋዚሞስ አንድ ሊቱራ ዳ የሙቀት መጠን እና umidade readSensor (); Serial.print ("መልዕክት አትም:"); // Criamos o json que enviaremos para o server mqtt String msg = createJsonString (); Serial.println (msg); // Publicamos no tópico onde o servidor espera para receber // e gerar o gráfico client.plish (TOPIC_NAME ፣ msg.c_str ()) ፤ }}

MQTT.ino - setupWiFi

እዚህ ፣ ከ WiFi አውታረ መረብ ጋር የመገናኘት ኃላፊነት አለብን።

// Função responsável por conectar à rede WiFi ያስወግዱ 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 rede seja estabelecida while (WiFi.status ()! = WL_CONNECTED) {መዘግየት (500); Serial.print ("."); } // Se chegou aqui é porque conectou Serial.println (""); Serial.println ("WiFi ተገናኝቷል"); }

MQTT.ino - ተገናኝ MQTTServer

በዚህ ደረጃ ፣ ከ MQTT አገልጋዩ ጋር ለመገናኘት ኃላፊነት ያለውን ተግባር እንጠቀማለን።

// Função responsável por conectar ao server MQTT connectMQTTServer () {Serial.println («ከ MQTT አገልጋይ ጋር መገናኘት …»); // conecta ao id que definimos if (client.connect (CLIENT_ID.c_str ())) {// Se conexão foi bem sucedida Serial.println ("ተገናኝቷል") ፤ } ሌላ {// Se ocorreu algum erro Serial.print ("error ="); Serial.println (client.state ()); }}

MQTT.ino - አንባቢን ያንብቡ

በዚህ ተግባር ውስጥ የሙቀት እና እርጥበት መረጃ ንባብ ይገለጻል።

// Função responsável por realizar a leitura // da temperatura e umidade void readSensor () {float value; // Faz a leitura da temperatura value = dht.readTemperature (); // (! Isnan (እሴት)) {// Armazena o novo valor da temperatura temperature = value; } // Faz a leitura da umidade value = dht.readHumidity (); // (! ኢስናን (እሴት)) {// Armazena o novo valor da umidade እርጥበት = እሴት; }}

MQTT.ino --JsonString ን ይፍጠሩ

እዚህ ፣ ከተነበበው መረጃ ጋር ጄሰን የመፍጠር ኃላፊነት አለብን።

// Função responsável por criar // um Json com os dados lidos String createJsonString () {String data = "{"; ውሂብ+= "\" d / ": {"; ውሂብ+= "\" ሙቀት / ":"; ውሂብ+= ሕብረቁምፊ (ሙቀት); ውሂብ+= ","; data+= "\" እርጥበት / ":"; ውሂብ+= ሕብረቁምፊ (እርጥበት); ውሂብ+= "}"; ውሂብ+= "}"; ውሂብን መመለስ; }

ደረጃ 10 ግራፊክ

ግራፊክ
ግራፊክ
ግራፊክ
ግራፊክ

የአነፍናፊውን ግራፍ ለማየት ፣ ይሂዱ

ወደ

በመሣሪያ መታወቂያ መስክ ውስጥ በኮዱ ውስጥ የገለጹትን DEVICE_ID ያስገቡ።

- ይህንን የመሣሪያ መታወቂያ ወደ ሌላ መታወቂያ መለወጥ አስፈላጊ ነው ፣ በሌላ ሰው ከተላከ ውሂብ ጋር ግጭትን ለማስወገድ ብቻ ጥቅም ላይ ውሏል።

በመጨረሻም ውሎቹን ይቀበሉ እና ይሂዱ የሚለውን ጠቅ ያድርጉ።

በዚህ ፕሮጀክት ውስጥ የእኛን የመጨረሻ ነጥብ በ IBM ዋትሰን አገልጋይ ላይ ሞከርን። ይህ የእኛ የአርዱዲኖ መርሃ ግብር ከመድረክ ጋር በትክክል መገናኘቱን ያረጋግጣል ፣ እና እኛ የምንልከው ውሂብ መለያ ከፈጠርን በደመና አገልግሎት በተቀላጠፈ ሁኔታ ይቀበላል።

በዚህ ተከታታይ ውስጥ በሚመጣ ቪዲዮ ውስጥ ፣ ወደ IBM ዋትሰን እንዴት እንደሚገቡ ፣ እንዲሁም በዚህ ወይም በሌላ እንደ የደመና አገልግሎት ፣ እንደ ጉግል ፣ አማዞን ፣ ወዘተ ባሉ የውሂብ ጎታ ውስጥ ይፃፉ።

ደረጃ 11 - ፋይሎች

ፋይሎቹን ያውርዱ ፦

ፒዲኤፍ

INO

የሚመከር: