ዝርዝር ሁኔታ:

IoT Made Ease: ESP-MicroPython-MQTT-Thing ይናገሩ: 12 ደረጃዎች
IoT Made Ease: ESP-MicroPython-MQTT-Thing ይናገሩ: 12 ደረጃዎች

ቪዲዮ: IoT Made Ease: ESP-MicroPython-MQTT-Thing ይናገሩ: 12 ደረጃዎች

ቪዲዮ: IoT Made Ease: ESP-MicroPython-MQTT-Thing ይናገሩ: 12 ደረጃዎች
ቪዲዮ: MicroPython - MQTT tutorial on ESP32 2024, ሀምሌ
Anonim
IoT Made Ease: ESP-MicroPython-MQTT-ThingSpeak
IoT Made Ease: ESP-MicroPython-MQTT-ThingSpeak

በቀድሞው መማሪያዬ ፣ ጁፒተርን በመጠቀም በ ‹‹P›› ላይ‹ ማይክሮፒቶን ›፣‹ ‹MyPython› ን በ ‹‹P›› መሣሪያ ላይ እንዴት መጫን እና ማካሄድ እንደሚቻል ተምረናል። የጁፒተር ማስታወሻ ደብተርን እንደ ልማት አካባቢያችን በመጠቀም ፣ እንዲሁም ከአነፍናፊ (ሙቀት ፣ እርጥበት እና ብሩህነት) እንዴት ማንበብ እንደምንችል ተምረናል ፣ በርካታ የግንኙነት ፕሮቶኮሎችን እና ዘዴዎችን እንጠቀማለን ፣ አናሎግ ፣ ዲጂታል ፣ 1-ሽቦ እና I2C ፣ ይህ የመጨረሻው የእኛን የተያዘውን ለማሳየት በ OLED ማሳያ ላይ ያለ ውሂብ።

አሁን ፣ በዚህ መማሪያ ላይ የ MQTT ፕሮቶኮል በመጠቀም ፣ ሁሉንም የተያዘውን ውሂብ እናገኛለን ፣ ወደ IoT አገልግሎት ፣ ThingSpeak.com እና ወደ ሞባይል መተግበሪያ (የነገር እይታ) በመላክ ፣ በመረጃ ገብተን መጫወት የምንችልበት።

እዚህ ፣ የእኛ ፕሮጀክት የማገጃ ሥዕል

ምስል
ምስል

ደረጃ 1 - ቦኤም - የቁሳቁስ ሂሳብ

  1. NodeMCU - US $ 8.39
  2. DHT22 የሙቀት መጠን እና አንጻራዊ የእርጥበት ዳሳሽ - 9.95 ዶላር
  3. DS18B20 ውሃ የማይገባ የሙቀት ዳሳሽ - 5.95 ዶላር
  4. OLED ማሳያ SSD1366- USD 8.99 (ከተፈለገ)
  5. LDR (1x)
  6. LEDs (1x) (ከተፈለገ)
  7. የግፊት አዝራር (1x)
  8. ተከላካይ 4K7 ohm (2x)
  9. Resistor 10K ohm (1x)
  10. Resistor 220 ohm (1x)

ደረጃ 2 - ኤች

ኤች
ኤች

እዚህ የምንጠቀምበት HW በመማሪያው ላይ ተመሳሳይ ነው - ማይክሮፕቶን በ ESP ጁፒተርን በመጠቀም። ለሁሉም የ HW ግንኙነቶች ያመልክቱ።

በዚህ ፕሮጀክት ውስጥ አንጠቀምም የሚለው ለየት ያለ ሰርቪ ነው።

ከላይ ሙሉውን HW ማየት ይችላሉ። እዚያ እንደሚታየው መሣሪያዎቹን ያገናኙ።

ደረጃ 3 ማይክሮፎን ፣ ሪፕል ፣ ጁፒተር

ማይክሮፕቶንቶን ፣ ሪፕል ፣ ጁፒተር
ማይክሮፕቶንቶን ፣ ሪፕል ፣ ጁፒተር
ማይክሮፕቶንቶን ፣ ሪፕል ፣ ጁፒተር
ማይክሮፕቶንቶን ፣ ሪፕል ፣ ጁፒተር

በእርስዎ ESP መሣሪያ ላይ የተጫነ የማይክሮፎን አስተርጓሚ ሊኖርዎት ይገባል። አንዴ ከተጫነ ፣ እንደ ማንኛውም የሚገኙትን መንገዶች/IDE ዎች በመጠቀም የእርስዎን ESP ፕሮግራም ማድረግ አለብዎት።

  • ድገም
  • ጁፒተር ማስታወሻ ደብተር
  • ESPCut (ዊንዶውስ ብቻ)
  • … ወዘተ

በመማሪያዬ ላይ ማይክሮፕቶን በጁፒተርን በመጠቀም በ ESP ላይ ፣ ማይክሮፒታይን አስተርጓሚ ፣ ESPT መሣሪያዎችን ለማስተዳደር እና እንዴት የጁፒተር ማስታወሻ ደብተርን እንደ ልማት አከባቢ እንዴት እንደሚጠቀሙ እና እንዴት እንደሚጫኑ በዝርዝር ዘርዝሬያለሁ። ለእርስዎ የበለጠ ምቹ የሆነውን ለመጠቀም ነፃነት ይሰማዎ።

እኔ አብዛኛውን ጊዜ በጁፒተር ማስታወሻ ደብተር ላይ ሁሉንም ልማት አደርጋለሁ ፣ እና አንዴ የመጨረሻውን ኮድ ካገኘሁ በኋላ ወደ ጌኒ እገለብጣቸዋለሁ እና አምፒን በመጠቀም በእኔ ESP ላይ እጭነዋለሁ።

ደረጃ 4: ዳሳሾች

ዳሳሾች
ዳሳሾች

ቤተመፃህፍቱን እንጫን ፣ GPIO ን እንገልፃለን ፣ ዕቃዎችን ፣ ተግባሮችን ለሁሉም ዳሳሾች በተናጠል እንፍጠር -

ሀ DHT (የሙቀት መጠን እና እርጥበት)

የ DHT ቤተ -መጽሐፍትን እንጫን እና አንድ ነገር እንፍጠር

ከ DHT ማስመጣት DHT22

ከማሽን ማስመጣት ፒን dht22 = DHT22 (ፒን (12))

አሁን የ DHT ዳሳሽ ለማንበብ ተግባር ይፍጠሩ

def readDht ():

dht22. ልኬት () dht22.temperature () ፣ dht22. እርጥበት () የ DHT ተግባርን ይፈትሹ

አትም (readDht ())

ውጤቱ ለምሳሌ መሆን አለበት

(17.7, 43.4)

ቢ DS18B20 (የውጭ ሙቀት)

ቤተመፃሕፍቱን እንጫንና አንድ ነገር እንፍጠር ፦

አስመጣ onewire, ds18x20

የማስመጣት ጊዜ # የ 1-ሽቦ መሣሪያ የትኛው እንደሚገናኝ ይግለጹ ==> ፒን 2 (D4) dat = ፒን (2) # የ onewire ነገር ds = ds18x20. DS18X20 (onewire. OneWire (dat)) በ bu ላይ ላሉ መሣሪያዎች ይቃኙ

ዳሳሾች = ds.scan ()

ማተም ('የተገኙ መሣሪያዎች ፦' ፣ ዳሳሾች)

የታተመው ውጤት በእውነቱ አስፈላጊ አይደለም ፣ እኛ የምንፈልገው የመጀመሪያው የተገኘ ዳሳሽ ነው - ዳሳሾች [0]። እና አሁን ፣ የዳሳሽ ውሂብን ለማንበብ ተግባር መገንባት እንችላለን-

def readDs ():

ds.convert_temp () time.sleep_ms (750) ds.read_temp (sensors [0])

የተፈጠረውን ተግባር በመጠቀም ዳሳሹን መሞከር ሁል ጊዜ አስፈላጊ ነው

ህትመት (readDs ()) የሙቀት እሴት ካገኙ ኮድዎ ትክክል ነው

17.5

ሐ LDR (ብሩህነት)

ኤልዲአር የእኛን ESP የአናሎግ ፒን ይጠቀማል (በ ESP8266 ጉዳይ ላይ አንድ ብቻ እና ብዙ ወደ ESP32)።

ለዝርዝሮች የእኔን ESP32 አጋዥ ስልጠናን ይመልከቱ።

ከዚህ በፊት እንደተደረገው ተመሳሳይ

# ማስመጣት ቤተመጽሐፍት

ከማሽን ማስመጣት ADC # የነገር adc = ADC (0) ይግለጹ አንድ ቀላል ተግባር: adc.read () የኤዲሲን እሴት ለማንበብ ሊያገለግል ይችላል። ግን ያስታውሱ ውስጣዊው ኤዲሲ በ 0 እና በ 3.3V መካከል በሚለዋወጡ ዲጂታል እሴቶች መካከል ከ 0 ወደ 1023 የሚለዋወጥ መሆኑን ያስታውሱ። አንዴ “ብሩህነት” ላይ ፍላጎት ካለን ፣ ማክስ ብርሃንን ከአነፍናፊው ከፍተኛ የተያዘውን እሴት (በእኔ ውስጥ ጉዳይ 900) እና በእኔ ሁኔታ ውስጥ ያለው አነስተኛ ብርሃን 40. እነዚያን እሴቶች በመያዝ ከ 0 እስከ 100% ባለው ብሩህነት እሴቱን ከ 40 ወደ 900 “ካርታ” ማድረግ እንችላለን። ለዚያ ፣ አዲስ ተግባር እንፈጥራለን

def readLdr ():

lumPerct = (adc.read ()-40)*(10/86) # መቶኛ መለወጥ ("ካርታ") የመመለሻ ዙር (lumPerct)

ህትመት (readLDR ()) በመጠቀም ተግባሩን መሞከር አለብዎት። ውጤቱ በ o እና በ 100 መካከል ኢንቲጀር መሆን አለበት።

መ / የግፊት አዝራር (ዲጂታል ግብዓት)

እዚህ እኛ እንደ digitalሽ-ቁልፍን እንደ ዲጂታል ዳሳሽ እንጠቀማለን ፣ ግን እሱ የአሠራር “ማስተጋባት” (ለምሳሌ አብራ/ጠፍቶ የነበረ ፓምፕ) ሊሆን ይችላል።

# ፒን 13 ን እንደ ግብዓት ይግለጹ እና የውስጥ መጎተት ተከላካይ ያግብሩ-

አዝራር = ፒን (13 ፣ Pin. IN ፣ ፒን። PULL_UP) # ተግባር የማንበብ አዝራር ሁኔታ: def readBut (): የመመለሻ አዝራር (ዋጋ)

የተግባር ህትመቱን በማንበብ አዝራሩን መሞከር ይችላሉ (ያንብቡ ግን ())። W/o ውጤቱን መጫን “1” መሆን አለበት። አዝራሩን በመጫን ውጤቱ “0” መሆን አለበት

ደረጃ 5 በአከባቢ ሁሉንም የአነፍናፊ ውሂብ መያዝ እና ማሳየት

ሁሉንም የአነፍናፊ ውሂብ መያዝ እና ማሳየት
ሁሉንም የአነፍናፊ ውሂብ መያዝ እና ማሳየት

አሁን ለእያንዳንዱ ዳሳሽ አንድ ተግባር ፈጥረናል ፣ ሁሉንም በአንድ ጊዜ የሚያነብ የመጨረሻውን እንፍጠር።

def colectData ():

ቴምፕ ፣ ሃም ፣ = readDht () extTemp = readDs () lum = readLdr () butSts = readBut () ተመለስ ቴምፕ ፣ ሃም ፣ ኤክስቴምፕ ፣ lum ፣ butSts አሁን ከተጠቀሙ

አትም (colectData ())

ሁሉንም የተያዙ መረጃዎችን ከአነፍናፊዎች የሚያካትት ጥብጣብ ያስከትላል።

(17.4, 45.2, 17.3125, 103, 1)

እኛ እንደአማራጭ ፣ እነዚያን መረጃዎች በአካባቢያዊ ማሳያ ላይ ማሳየት እንችላለን-

# ቤተ -መጽሐፍትን ያስመጡ እና ነገር i2c ን ይፍጠሩ

ከማሽን ማስመጣት I2C i2c = I2C (scl = Pin (5) ፣ sda = Pin (4)) # ቤተመፃህፍት ማስመጣት እና የነገር የተቀባ ማስመጣት ssd1306 i2c = I2C (scl = Pin (5) ፣ sda = Pin (4)) oled = ssd1306. SSD1306_I2C (128 ፣ 64 ፣ i2c ፣ 0x3c) # ተግባር ይፍጠሩ def defData (temp ፣ hum ፣ extTemp ፣ lum ፣ butSts): oled.fill (0) oled.text (“Temp:” + str (temp)) + "oC", 0, 4) oled.text ("Hum:" + str (hum) + "%", 0, 16) oled.text ("ExtTemp:" + str (extTemp) + "oC" ፣ 0, 29) oled.text ("Lumin:" + str (lum) + "%", 0, 43) oled.text ("አዝራር:" + str (butSts), 0, 57) oled.show () # የተግባር ማሳያ ውሂብን (ቴምፕ ፣ hum ፣ extTemp ፣ lum ፣ butSts) በመጠቀም ውሂብን ያሳዩ

እንደ አማራጭ ፣ ዳሳሾችን ማንበብ ስንጀምር ፣ ያ ውሂብ ከታየ በኋላ ጠፍቶ በመሄድ ላይ እንዲበራ ኤልኢዲውን እጨምራለሁ። ይህንን ማድረጉ ESP ከፒሲ ተለያይተን በራስ -ሰር ስንሠራ ፕሮግራሙ እየሰራ መሆኑን ለማረጋገጥ ይረዳል።

ስለዚህ “ዋናው ተግባር የሚከተለው ይሆናል

# ሁሉንም ዳሳሾች ለማንበብ ዋና ተግባር

def ዋና (): # የማሳያ ውሂብ ከተግባር led.on () temp ፣ hum ፣ extTemp ፣ lum ፣ butSts = colectData () displayData (temp ፣ hum ፣ extTemp ፣ lum ፣ butSts) led.off ()

ስለዚህ ፣ ዋናውን () በማስፈፀም ፣ በስዕሉ ላይ እንደሚታየው በ OLED ላይ የሚታየውን የአነፍናፊ ውሂብ እናገኛለን።

ደረጃ 6-በ ESP ጅምር ላይ የአካባቢውን ጣቢያ ኮድ ማስኬድ

በ ESP ጅምር ላይ የአካባቢውን ጣቢያ ኮድ ማስኬድ
በ ESP ጅምር ላይ የአካባቢውን ጣቢያ ኮድ ማስኬድ

በኢሠፓአችን እንዲገደል እስካሁን በአንድ ፋይል ላይ የተገነባውን ሁሉ ማግኘት እንችላለን።

ማንኛውንም የጽሑፍ አርታኢ እንከፍት እና በእሱ ላይ ሁሉንም ኮድ እንለፍ

# አጠቃላይ ቤተ -መጽሐፍትን ያስመጡ

ከማሽን ማስመጣት ፒን የማስመጣት ጊዜ # ፒን 0 እንደ ውፅዓት መሪ = ፒን (0 ፣ Pin. OUT) # DHT ከ dht ማስመጣት DHT22 dht22 = DHT22 (ፒን (12)) # ተግባር የ DHT def readDht (): dht22.measure () dht22.temperature () ፣ dht22.humidity () # DS18B20 ማስመጣት onewire ፣ ds18x20 # የ 1-ሽቦ መሣሪያ የትኛው እንደሚገናኝ ይግለጹ ==> ፒን 2 (D4) dat = ፒን (2) # ኦውዌየር ይፍጠሩ ነገር ds = ds18x20. DS18X20 (onewire. OneWire (dat)) በአውቶቡስ ዳሳሾች ላይ ላሉ መሣሪያዎች # መቃኘት = ds.scan () # ተግባር DS18B20 def readDs (): ds.convert_temp () time.sleep_ms (750) መመለስ ዙር (ds.read_temp (ዳሳሾች [0]) ፣ 1) # LDR ከማሽን ማስመጣት ADC # የነገር adc = ADC (0) # ተግባር ለማንበብ ብሩህነት def readLdr (): lumPerct = (adc.read ()-40) *(10/86) # መቶኛ መለወጥ (“ካርታ”) የመመለሻ ዙር (lumPerct) # ፒን 13 ን እንደ ግብዓት ይግለጹ እና የውስጥ መጎተት መቃወሚያውን ያግብሩ-አዝራር = ፒን (13 ፣ Pin. IN ፣ Pin. PULL_UP) # የማንበብ አዝራር ተግባር ሁኔታ: def readBut (): ተመለስ አዝራር (እሴት) (ሁሉንም ውሂብ የማንበብ ተግባር) def cole ctData (): temp ፣ hum ፣ = readDht () extTemp = readDs () lum = readLdr () butSts = readBut () የመመለሻ ጊዜ ፣ hum ፣ extTemp ፣ lum ፣ butSts # ቤተመፃሕፍት ማስመጣት እና ዕቃ i2c ከማሽን ማስመጣት I2C i2c = I2C (scl = ፒን (5) ፣ sda = ፒን (4)) # ቤተመጽሐፍት ያስመጡ እና የነገር የተቀባ ማስመጣት ssd1306 i2c = I2C (scl = Pin (5) ፣ sda = Pin (4)) oled = ssd1306. SSD1306_I2C (128) ፣ 64 ፣ i2c ፣ 0x3c) # ተግባር ይፍጠሩ def defData (temp ፣ hum ፣ extTemp ፣ lum ፣ butSts): oled.fill (0) oled.text (“Temp:” + str (temp) + “oC” ፣ 0, 4) oled.text ("Hum:" + str (hum) + "%", 0, 16) oled.text ("ExtTemp:" + str (extTemp) + "oC", 0, 29) oled. ጽሑፍ ("ሉሚን:" + str (lum) + "%", 0, 43) oled.text ("አዝራር:" + str (butSts), 0, 57) oled.show () # ሁሉንም ዳሳሾች ለማንበብ # ዋና ተግባር def ዋና (): # የማሳያ ውሂብ ከተግባር led.on () temp ፣ hum ፣ extTemp ፣ lum ፣ butSts = colectData () displayData (temp ፣ hum ፣ extTemp ፣ lum ፣ butSts) led.off () ''-- ----- ዋናውን ተግባር አሂድ -------- '' '' ዋና ()

ያስቀምጡት ፣ ለምሳሌ እንደ localData.py።

ይህንን ኮድ በቀጥታ በእርስዎ ተርሚናል ላይ ለማሄድ አምፒ ያስፈልግዎታል።

በመጀመሪያ ፣ ተርሚናል ላይ ለኤምፒ የእኛን ተከታታይ ወደብ እናሳውቅ-

ወደ ውጭ ላክ AMPY_PORT =/dev/tty. SLAB_USBtoUART

አሁን በእኛ የ ESP ስር ማውጫ ውስጥ ያሉትን ፋይሎች ማየት እንችላለን-

ampy ls

እንደ ምላሽ እኛ boot.py እናገኛለን ፣ ያ በስርዓቱ ውስጥ የሚሄድ የመጀመሪያው ፋይል ነው።

አሁን የእኛን ፓይዘን ስክሪፕት LocalData.py እንደ /main.py ለመጫን አምፒን እንጠቀም ፣ ስለዚህ ስክሪፕቱ ከተጫነ በኋላ ብቻ ይሠራል -

ampy አስቀምጥ localData.py /main /py

አሁን ትዕዛዙን ampss የምንጠቀም ከሆነ ፣ በ ESP ውስጥ 2 ፋይሎችን ያያሉ። boot.py እና main.py

የእርስዎን ESP ዳግም ማስጀመር ፣ ፕሮግራሙ localData.py ን በራስ -ሰር እንዲሠራ ያደርገዋል ፣ በማሳያው ላይ ያለውን የዳሳሽ ውሂብ ያሳያል።

ከላይ ያለው ተርሚናል ማተሚያ ማያ ገጽ ያደረግነውን ያሳያል።

ከላይ ባለው ኮድ ፣ ማሳያው አንድ ጊዜ ብቻ ይታያል ፣ ግን በዋናው () ተግባር ላይ አንድ ዙር (ሉፕ) መግለፅ እንችላለን ፣ ይህም በእያንዳንዱ በተወሰነው የጊዜ ክፍተት (PUB_TIME_SEC) ላይ ፣ እና ለምሳሌ ፣ ቁልፉን እስክጫን ድረስ ፦

አዝራሩ እስኪጫን ድረስ # loop ውሂብን ያግኙ

የ button.value (): led.on () temp, hum, extTemp, lum, butSts = colectData () displayData (temp, hum, extTemp, lum, butSts) led.off () time.sleep (PUB_TIME_SEC)

ናሙናዎችዎን በሚፈልጉበት ጊዜ ተለዋዋጭ PUB_TIME_SEC መገለጽ አለበት።

የእኛን ኮድ የበለጠ ለማሳደግ ከሉፕ እንደምንወጣ ማሳወቁ ጥሩ ነው ፣ ምክንያቱም እኛ 2 አዲስ አጠቃላይ ተግባሮችን እንገልፃለን ፣ አንደኛው ማሳያውን ለማፅዳት እና ሌላውን በተወሰኑ ጊዜያት LED ን ብልጭ ድርግም ለማድረግ።

# ግልጽ ማሳያ;

def displayClear (): oled.fill (0) oled.show () # ብልጭ ድርግም የሚል ተግባር ይፍጠሩ def blinkLed (num): በክልል ውስጥ ለ (0 ፣ num): led.on () እንቅልፍ (0.5) led.off () እንቅልፍ (0.5)

ስለዚህ ፣ አሁን የእኛን () ተግባር እንደገና መፃፍ እንችላለን-

button.value ():

led.on () temp, hum, extTemp, lum, butSts = colectData () displayData (temp, hum, extTemp, lum, butSts) led.off () time.sleep (PUB_TIME_SEC) blinkLed (3) displayClear ()

የመጨረሻው ኮድ ከእኔ GitHub: localData.py እና እንዲሁም ለሙሉ ኮድ ልማት የሚያገለግል የጁፒተር ማስታወሻ ደብተር ማውረድ ይችላል - ጁፒተር አካባቢያዊ የውሂብ ልማት።

ደረጃ 7 - ESP ን ከአካባቢያዊ WiFi ጋር በማገናኘት ላይ

ESP ን ከአካባቢያዊ WiFi ጋር በማገናኘት ላይ
ESP ን ከአካባቢያዊ WiFi ጋር በማገናኘት ላይ

የአውታረ መረብ ሞጁል የ WiFi ግንኙነትን ለማዋቀር ያገለግላል። ሁለት የ WiFi በይነገጾች አሉ ፣ አንዱ ለጣቢያው (ESP8266 ከ ራውተር ጋር ሲገናኝ) እና አንዱ ለመዳረሻ ነጥብ (ለሌሎች መሣሪያዎች ከ ESP8266 ጋር እንዲገናኙ)። እዚህ ፣ የእኛ ESP ከአካባቢያዊ አውታረ መረብ ጋር ይገናኛል። ወደ ቤተመጽሐፍት እንደውል እና የአውታረ መረብ ምስክርነቶችን እንገልፃለን-

የማስመጣት አውታረ መረብ

WiFi_SSID = "የእርስዎ SSID" WiFi_PASS = "የእርስዎ የይለፍ ቃል"

ከዚህ በታች ያለው ተግባር ESP ን ከአካባቢያዊ አውታረ መረብዎ ጋር ለማገናኘት ሊያገለግል ይችላል-

def do_connect ():

wlan = network. ማተም ('የአውታረ መረብ ውቅር' ፣ wlan.ifconfig ())

ተግባሩን በማሄድ ፣ በውጤቱ የአይፒ አድራሻውን ማግኘት ይችላሉ-

አገናኝ ()

ውጤቱ የሚከተለው ይሆናል

የአውታረ መረብ ውቅር (('10.0.1.2 '፣' 255.255.255.0 '፣ '10.0.1.1' ፣ '10.0.1.1 ')

በእኔ ሁኔታ 10.0.1.2 የ ESP IP አድራሻ ነው።

ደረጃ 8 - The ThingSpeak

ዘ ThingSpeak
ዘ ThingSpeak

በዚህ ጊዜ ፣ እኛ በሁሉም ዳሳሾች ላይ መረጃን እንዴት መያዝ እንዳለብን ተምረናል ፣ በእኛ OLED ላይ በማሳየት። አሁን ፣ እነዚያን መረጃዎች ወደ ‹IoT› መድረክ ፣ ThingSpeak እንዴት እንደሚልኩ ለማየት ጊዜው አሁን ነው።

እንጀምር!

በመጀመሪያ ፣ በ ThinkSpeak.com ላይ መለያ ሊኖርዎት ይገባል። በመቀጠል ፣ ሰርጥ ለመፍጠር መመሪያዎቹን ይከተሉ እና የሰርጥ መታወቂያዎን እና የኤፒአይ ቁልፍን ይፃፉ።

ከላይ በእኛ ሰርጥ ላይ የሚጠቀሙባቸውን 5 መስኮች ማየት ይችላሉ።

ደረጃ 9 የ MQTT ፕሮቶኮል እና የ ThingSpeak ግንኙነት

MQTT ፕሮቶኮል እና ThingSpeak ግንኙነት
MQTT ፕሮቶኮል እና ThingSpeak ግንኙነት

MQTT በገመድ አልባ አውታረመረቦች ላይ የመተላለፊያ ይዘትን እና በኃይል የተገደበ መሣሪያዎችን ለማገናኘት በዋነኝነት የተገነባ የሕትመት/የደንበኝነት ምዝገባ ሥነ ሕንፃ ነው። በ TCP/IP ሶኬቶች ወይም በዌብሳይቶች ላይ የሚያሄድ ቀላል እና ቀላል ክብደት ፕሮቶኮል ነው። MQTT በ WebSockets ላይ በ SSL ደህንነቱ የተጠበቀ ሊሆን ይችላል። የህትመት/የደንበኝነት ምዝገባ ሥነ -ሕንፃ መሣሪያው አገልጋዩን ያለማቋረጥ ድምጽ መስጠትን ሳያስፈልገው መልእክቶች ወደ ደንበኛ መሣሪያዎች እንዲገፉ ያስችላቸዋል።

የ MQTT ደላላ የግንኙነት ማዕከላዊ ነጥብ ነው ፣ እና በላኪዎች እና በትክክለኛው ተቀባዮች መካከል ሁሉንም መልእክቶች የማስተላለፍ ሃላፊ ነው። አንድ ደንበኛ መረጃውን ለመድረስ ከደራሲው ጋር የሚገናኝ እና ለርዕሶች ማተም ወይም መመዝገብ የሚችል ማንኛውም መሣሪያ ነው። አንድ ርዕስ ለደላላ የማዞሪያ መረጃን ይ containsል። መልዕክቶችን መላክ የሚፈልግ እያንዳንዱ ደንበኛ ወደ አንድ የተወሰነ ርዕስ ያትሟቸዋል ፣ እና መልዕክቶችን መቀበል የሚፈልግ እያንዳንዱ ደንበኛ ለተወሰነ ርዕስ ይመዘገባል። ደላላው ሁሉንም ተዛማጅ ርዕስ ያላቸውን መልዕክቶች ለተገቢው ደንበኞች ያቀርባል።

ThingSpeak URL በዩአርኤል mqtt.thingspeak.com እና ወደብ 1883 ላይ የ MQTT ደላላ አለው።

በእኛ ሁኔታ እኛ እንጠቀማለን- MQTT አትም

ምስል
ምስል

ስዕሉ የርዕስ መዋቅርን ይገልፃል። የኤፒአይ ጻፍ ቁልፍ ለማተም ያስፈልጋል። ደላላው ከ CONNACK ጋር ትክክለኛውን የ CONNECTrequest እውቅና ይቀበላል።

የ MQTT ፕሮቶኮል በማይክሮፎን ሁለትዮሽዎች ውስጥ አብሮ በተሰራው ቤተ-መጽሐፍት ውስጥ ይደገፋል-ይህ ፕሮቶኮል ከእርስዎ ESP8266 ፣ በ WIFI ላይ ፣ ወደ ነፃ የደመና የመረጃ ቋት መረጃን ለመላክ ሊያገለግል ይችላል።

የ umqtt.simple ቤተ -መጽሐፍትን እንጠቀም-

ከ umqtt.simple ማስመጣት MQTTClient

እና የእኛን የአገልጋይ መታወቂያ በማወቅ የእኛን የ MQTT ደንበኛ ነገር መፍጠር ይቻላል-

አገልጋይ = "mqtt.thingspeak.com"

ደንበኛ = MQTTClient ("umqtt_client", አገልጋይ)

አሁን የ ThingSpeak ምስክርነቶችዎን በእጅዎ ይዘው -

CHANNEL_ID = "የእርስዎ የሰርጥ መታወቂያ"

WRITE_API_KEY = "ቁልፍህ እዚህ አለ"

የእኛን MQTT “ርዕስ” እንፍጠር -

ርዕስ = "ሰርጦች/" + CHANNEL_ID + "/ማተም/" + WRITE_API_KEY

የተፈጠረውን ተግባር በመጠቀም የእኛን ውሂብ ወደ ThingSpeak IoT አገልግሎት እንዲላክ እና ምላሹን ለተወሰኑ የውሂብ ተለዋዋጮች እናያይዛቸው -

ቴምፕ ፣ ሃም ፣ extTemp ፣ lum ፣ butSts = colectData ()

በእነዚያ ተለዋዋጮች ተዘምነው የእኛን “MQTT Payload” መፍጠር እንችላለን-

የክፍያ ጭነት = "field1 ="+str (temp)+"& field2 ="+str (hum)+"& field3 ="+str (extTemp)+"& field4 ="+str (lum)+"& field5 ="+str (butSts)

እና ያ ብቻ ነው! ከዚህ በታች ያሉትን 3 የኮድ መስመሮችን በመጠቀም በቀላሉ ወደ ThinsSpeak ለመላክ ዝግጁ ነን።

client.connect ()

client.publish (ርዕስ ፣ የክፍያ ጭነት) client.disconnect ()

አሁን ፣ ወደ የሰርጥዎ ገጽ ከሄዱ (እንደእኔ ከላይ) እርስዎ ከ 5 መስኮች እያንዳንዳቸው ከእርስዎ ዳሳሾች ጋር የተዛመደ ውሂብ ይኖራቸዋል።

ደረጃ 10: ዳሳሽ የውሂብ ምዝግብ ማስታወሻ

ዳሳሽ የውሂብ መዝጋቢ
ዳሳሽ የውሂብ መዝጋቢ

አሁን እኛ በጥቂት የኮድ መስመሮች ብቻ መረጃን ወደ አይኦቲ አገልግሎት መስቀልን እንደሚቻል እናውቃለን ፣ በመደበኛ የጊዜ ክፍተት (በራስ -ሰር ከአካባቢያዊ ውሂብ ጋር እንዳደረግነው) በራስ -ሰር ለማድረግ የሉፕ ተግባር እንፍጠር። ).

ከዚህ በፊት የተነገረውን ተመሳሳዩን ተለዋዋጭ (PUB_TIME_SEC) በመጠቀም ፣ ያለማቋረጥ መረጃን ለመያዝ ፣ በእኛ ሰርጥ ላይ ማስገባቱ የሚከተለው ይሆናል-

እውነት እያለ ፦

temp, hum, extTemp, lum, butSts = colectData () payload = "field1 ="+str (temp)+"& field2 ="+str (hum)+"& field3 ="+str (extTemp)+"& field4 ="+ str (lum)+"& field5 ="+str (butSts) client.connect () client.publish (topic, payload) client.disconnect () time.sleep (PUB_TIME_SEC)

ልብ ይበሉ ፣ ‹ጭነቱ› ብቻ መዘመን እንዳለበት ፣ አንዴ ‹ርዕስ› ከጣቢያችን ምስክርነት ጋር የሚዛመድ እና የማይለወጥ ከሆነ።

የ ThingSpeak ሰርጥ ገጽዎን በመፈለግ ፣ ውሂቡ በእያንዳንዱ መስክ ላይ ያለማቋረጥ እንደሚጫን ይመለከታሉ። ኤልዲአርድን መሸፈን ፣ እጅዎን በ temp/hum sensors ላይ መጫን ፣ አዝራሩን መጫን ፣ ወዘተ … እና ሰርጡ ለወደፊቱ ትንተና እነዚያን መረጃዎች በራስ -ሰር ‹መዝግብ› እንደሚያደርግ ማየት ይችላሉ።

ብዙውን ጊዜ ፣ ለዳታ ምዝግብ ማስታወሻ ፣ በተቻለ መጠን ያነሰ ኃይል ለመጠቀም መሞከር አለብን ፣ ስለዚህ ፣ እኛ LED ን ወይም በአከባቢው ማሳያ አንጠቀምም። እንዲሁም ፣ በ ESP መሣሪያዎች ላይ የተለመደ ነው ፣ “ጥልቅ እንቅልፍ” ላይ ያድርጓቸው ፣ ማይክሮፕሮሰሰር ውሂቡን ለመያዝ እና ወደ IoT መድረክ ለመላክ ጊዜው እስኪደርስ ድረስ በአነስተኛ ኃይል ሁኔታው ላይ ይሆናል።

ግን እዚህ አንድ ጊዜ ሀሳቡ እየተማረ ነው ፣ እኛ ቀደም ሲል እንዳደረግነው ማሳያውን እና ኤልኢዲውን እንጨምር። ያንን በማድረግ የእኛ “የምዝግብ ማስታወሻ” ተግባር እንደሚከተለው ይሆናል

button.value ():

ሊድ. "field1 ="+str (temp)+"& field2 ="+str (hum)+"& field3 ="+str (extTemp)+"& field4 ="+str (lum)+"& field5 ="+str (butSts) ደንበኛ.አገናኝ () client.publish (ርዕስ ፣ የክፍያ ጭነት) ደንበኛ። ግንኙነት () ጊዜ.sleep (PUB_TIME_SEC) ብልጭ ድርግም (3) ማሳያ አጥራ ()

የተሟላ የማይክሮ ፓይቶን ስክሪፕት እዚህ ይገኛል - dataLoggerTS_EXT.py እና ለልማት ያገለገለው የጁፒተር ማስታወሻ ደብተር እዚህም ይገኛል - IoT ThingSpeak Data Logger EXT.ipynb።

በ ESP ላይ ስክሪፕቱን ለመስቀል በእርስዎ ተርሚናል ላይ ትዕዛዙን ይጠቀሙ-

ampy put dataLoggerTS.py /main.py

እና ESP ን - ዳግም ማስጀመሪያ ቁልፍን ይጫኑ። የታችኛው ተጭኖ እስኪያልቅ ድረስ የ ESP መረጃን ይይዛል እና በ ThingSpeak.com ላይ ያስገባሉ (ኤልኢዲ 3 ጊዜ ብልጭ ድርግም እስኪል እና OLED እስኪጠፋ ድረስ ይጠብቁ)።

ደረጃ 11 - የ ThingView መተግበሪያ

የ ThingView መተግበሪያ
የ ThingView መተግበሪያ

የተመዘገበው ውሂብ በቀጥታ በ ThingSpeak.com ጣቢያ ወይም በኤፒፒ በኩል ሊታይ ይችላል ፣ ለምሳሌ ፣ ነገሮችView!

ThingView የ ThingSpeak ሰርጦችዎን በቀላል መንገድ በዓይነ ሕሊናዎ እንዲመለከቱ የሚያስችል በ CINETICA የተገነባ APP ነው ፣ የሰርጥ መታወቂያውን ብቻ ያስገቡ እና ለመሄድ ዝግጁ ነዎት።

ለሕዝብ ሰርጦች ፣ መተግበሪያው የመስኮቶችዎን ቅንብሮች ያከብራል -ቀለም ፣ የጊዜ ሰሌዳ ፣ የገበታ ዓይነት እና የውጤቶች ብዛት። የአሁኑ ስሪት የመስመር እና የአምድ ገበታዎችን ይደግፋል ፣ የስፕሌን ገበታዎች እንደ የመስመር ገበታዎች ይታያሉ።

በኤፒአይ ቁልፍ ብቻ የግል መስኮቶችን መቼቶች ለማንበብ ምንም መንገድ ስለሌለ ለግል ሰርጦች ውሂቡ ነባሪ ቅንብሮችን በመጠቀም ይታያል።

የ ThingView APP ለ ANDROID እና IPHONE ማውረድ ይችላል።

ደረጃ 12 መደምደሚያ

መደምደሚያ
መደምደሚያ

እንደተለመደው ፣ ይህ ፕሮጀክት ሌሎች ወደ አስደሳች የኤሌክትሮኒክስ ዓለም እንዲገቡ ይረዳቸዋል ብዬ ተስፋ አደርጋለሁ!

ለዝርዝሮች እና ለመጨረሻ ኮድ ፣ እባክዎን የ GitHub ማስቀመጫዬን ይጎብኙ - IoT_TS_MQTT

ለተጨማሪ ፕሮጄክቶች እባክዎን የእኔን ብሎግ ይጎብኙ - MJRoBot.org

ሳሉዶስ ከደቡብ ዓለም!

በሚቀጥለው አስተማሪዬ ውስጥ እንገናኝ!

አመሰግናለሁ, ማርሴሎ

የሚመከር: