ዝርዝር ሁኔታ:

IoT የአየር ሁኔታ ጣቢያ ከ RPi እና ESP8266: 10 ደረጃዎች ጋር
IoT የአየር ሁኔታ ጣቢያ ከ RPi እና ESP8266: 10 ደረጃዎች ጋር

ቪዲዮ: IoT የአየር ሁኔታ ጣቢያ ከ RPi እና ESP8266: 10 ደረጃዎች ጋር

ቪዲዮ: IoT የአየር ሁኔታ ጣቢያ ከ RPi እና ESP8266: 10 ደረጃዎች ጋር
ቪዲዮ: SKR 1.4 - Basics with new Marlin firmware 2.0.9.1 2024, ህዳር
Anonim
የአይቲ የአየር ሁኔታ ጣቢያ ከ RPi እና ESP8266 ጋር
የአይቲ የአየር ሁኔታ ጣቢያ ከ RPi እና ESP8266 ጋር

በቀደሙት ትምህርቶች ላይ እኛ ከኖድኤምሲዩ ፣ አነፍናፊዎች ጋር እየተጫወትን እና በ ThingSpeak (የነገሮች በይነመረብ (IoT) መድረክ ላይ ዳሳሽ መረጃን እንዲሰበስቡ እና እንዲያከማቹ እና የ IoT መተግበሪያዎችን እንዲያዳብሩ የሚያስችል)

IOT MADE ቀላል: የርቀት የአየር ሁኔታ መረጃን መያዝ - UV እና የአየር ሙቀት እና እርጥበት

በዚህ አዲስ መማሪያ ፣ እኛ እንዴት ማድረግ እንደምንችል እንማራለን ፣ ግን በዚህ ጊዜ ከብዙ የተለያዩ ዳሳሾች መረጃን ለመያዝ እና እንዲሁም በመሳሪያዎች እና በድር መካከል የተለያዩ የመገናኛ መንገዶችን በመዳሰስ Raspberry Pi ን በመጠቀም

ዳሳሾች እና የግንኙነት ዓይነት;

  • DHT22 (የሙቀት መጠን እና እርጥበት) ==> ዲጂታል ግንኙነት
  • BMP180 (የሙቀት መጠን እና ግፊት) ==> I2C ፕሮቶኮል
  • DS18B20 (የሙቀት መጠን) ==> 1-ሽቦ ፕሮቶኮል

የማገጃ ሥዕሉ በዚህ ፕሮጀክት መጨረሻ ምን እንደምናገኝ ያሳያል-

ምስል
ምስል

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

  1. Raspberry Pi V3 - US $ 32.00
  2. DHT22 የሙቀት መጠን እና አንጻራዊ የእርጥበት ዳሳሽ - 9.95 ዶላር
  3. ተከላካይ 4K7 ohm
  4. DS18B20 ውሃ የማይገባ የሙቀት ዳሳሽ - 5.95 ዶላር
  5. ተከላካይ 4K7 ohm
  6. BMP180 ባሮሜትሪክ ግፊት ፣ የሙቀት መጠን እና ከፍታ ዳሳሽ - 6.99 ዶላር

ደረጃ 2 የሙቀት እና እርጥበት ዳሳሽ መጫን

የሙቀት እና እርጥበት ዳሳሽ መጫን
የሙቀት እና እርጥበት ዳሳሽ መጫን

የሚጫነው የመጀመሪያው ዳሳሽ የአየር ሙቀትን እና አንጻራዊ የእርጥበት መረጃን ለመያዝ DHT22 ይሆናል። የ ADAFRUIT ጣቢያ ስለ እነዚያ ዳሳሾች ታላቅ መረጃ ይሰጣል። ታች ፣ አንዳንድ መረጃዎች ከዚያ የተወሰዱ ናቸው-

አጠቃላይ እይታ

አነስተኛ ዋጋ ያለው የዲኤችቲ ሙቀት እና እርጥበት ዳሳሾች በጣም መሠረታዊ እና ቀርፋፋ ናቸው ነገር ግን አንዳንድ መሠረታዊ የውሂብ ምዝግብ ማስታወሻን ለሚፈልጉ የትርፍ ጊዜ ማሳለፊያዎች በጣም ጥሩ ናቸው። የዲኤችቲ ዳሳሾች በሁለት ክፍሎች የተሠሩ ናቸው ፣ አቅም ያለው እርጥበት ዳሳሽ እና የሙቀት መቆጣጠሪያ። እንዲሁም ወደ ዲጂታል ልወጣ አንዳንድ አናሎግ የሚያደርግ እና ከሙቀት እና እርጥበት ጋር ዲጂታል ምልክት የሚጥል በጣም መሠረታዊ ቺፕ አለ። ማንኛውንም ማይክሮ መቆጣጠሪያ በመጠቀም ዲጂታል ምልክቱ በቀላሉ ለማንበብ ቀላል ነው።

DHT22 ዋና ባህሪዎች

  • ዝቅተኛ ዋጋ
  • ከ 3 እስከ 5 ቪ ኃይል እና እኔ/ኦ
  • በሚለወጡበት ጊዜ 2.5mA ከፍተኛ የአሁኑ አጠቃቀም (ውሂብ ሲጠይቁ)
  • ለ 0-100% እርጥበት ንባቦች ከ2-5% ትክክለኛነት ጋር ጥሩ
  • ለ -40 እስከ 125 ° ሴ የሙቀት ንባቦች ± 0.5 ° ሴ ትክክለኛነት ጥሩ
  • ከ 0.5 Hz የናሙና ደረጃ አይበልጥም (በየ 2 ሰከንዶች አንድ ጊዜ)
  • የሰውነት መጠን 15.1 ሚሜ x 25 ሚሜ x 7.7 ሚሜ
  • 0.1 ኢንች ያለው 4 ፒኖች

አንዴ ብዙውን ጊዜ ዳሳሹን ከ 20 ሜትር ባነሰ ርቀቶች ላይ ይጠቀማሉ ፣ የ 4K7 ohm resistor በመረጃ እና በ VCC ፒኖች መካከል መገናኘት አለበት። የ DHT22 የውጤት መረጃ ፒን ከ Raspberry GPIO 16. ጋር ይገናኛል።

  1. ፒን 1 - Vcc ==> 3.3V
  2. ፒን 2 - መረጃ ==> ጂፒኦ 16
  3. ፒን 3 - አይገናኝ
  4. ፒን 4 - Gnd ==> Gnd

በቪሲሲ እና በውሂብ ፒኖች መካከል የ 4K7 ohm resistor ን መጫንዎን አይርሱ

አንዴ አነፍናፊው ከተገናኘ ፣ በእኛ ቤተ -መጽሐፍት በእኛ RPi ላይም መጫን አለብን።

የ DHT ቤተ -መጽሐፍት መጫን;

በእርስዎ Raspberry ላይ ፣ ከ /ቤት ጀምሮ ፣ ወደ /ሰነዶች ይሂዱ

ሲዲ ሰነዶች

ቤተ -መጽሐፍቱን ለመጫን እና ወደዚያ ለመሄድ ማውጫ ይፍጠሩ

mkdir DHT22_Sensor

ሲዲ DHT22_Sensor

በአሳሽዎ ላይ ወደ Adafruit GitHub ይሂዱ

github.com/adafruit/Afad_Python_DHT

የማውረጃውን ዚፕ አገናኝ ወደ ቀኝ ጠቅ በማድረግ ቤተ -መጽሐፍቱን ያውርዱ እና በቅርቡ በተፈጠረው አቃፊዎ Raspberry Pi ላይ ማህደሩን ይንቀሉት። ከዚያ ወደ ቤተ -መጽሐፍት ማውጫ (ፋይሉን ሲፈቱ በራስ -ሰር የተፈጠረ ንዑስ አቃፊ) ይሂዱ እና ትዕዛዙን ያስፈጽሙ-

sudo python3 setup.py ጫን

ከእኔ GITHUB የሙከራ ፕሮግራም (DHT22_test.py) ይክፈቱ

Adafruit_DHT አስመጣ

DHT22Sensor = Adafruit_DHT. f}%'. ቅርጸት (የሙቀት መጠን ፣ እርጥበት)) ሌላ ፦ ማተም (' ንባብ ማግኘት አልተሳካም። እንደገና ይሞክሩ! ')

በትእዛዙ ፕሮግራሙን ያስፈጽሙ-

python3 DHT22_test.py

ከዚህ በታች ያለው ተርሚናል የህትመት ማያ ገጽ ውጤቱን ያሳያል።

ምስል
ምስል

ደረጃ 3: DS18B20 ን መጫን - የሙቀት ዳሳሽ

DS18B20 ን መጫን - የሙቀት ዳሳሽ
DS18B20 ን መጫን - የሙቀት ዳሳሽ
DS18B20 ን መጫን - የሙቀት ዳሳሽ
DS18B20 ን መጫን - የሙቀት ዳሳሽ

የዳሳሽ አጠቃላይ እይታ ፦

በዚህ መማሪያ ውስጥ የ DS18B20 ዳሳሽ የውሃ መከላከያ ስሪት እንጠቀማለን። በእርጥበት ሁኔታ ውስጥ ለርቀት የሙቀት መጠን በጣም ጠቃሚ ነው ፣ ለምሳሌ በእርጥበት አፈር ላይ። አነፍናፊው ተነጥሎ እስከ 125oC ድረስ ልኬቶችን ሊወስድ ይችላል (Adafrut በኬብል PVC ጃኬቱ ምክንያት ከ 100 o ሴ በላይ እንዲጠቀም አይመክረውም)።

DS18B20 በረጅም ርቀት ላይ እንኳን ለመጠቀም ጥሩ የሚያደርገው ዲጂታል ዳሳሽ ነው! እነዚህ ባለ 1-ሽቦ ዲጂታል የሙቀት ዳሳሾች በትክክል (the 0.5 ° ሴ ከብዙ ክልል በላይ) እና ከቦርዱ ዲጂታል ወደ አናሎግ መቀየሪያ እስከ 12 ቢት ትክክለኛነት ሊሰጡ ይችላሉ። አንድ ዲጂታል ፒን በመጠቀም ከኖድኤምሲዩ ጋር በጥሩ ሁኔታ ይሰራሉ ፣ እና ብዙዎችን እንኳን ወደ ተመሳሳይ ፒን ማገናኘት ይችላሉ ፣ እያንዳንዳቸው እነሱን ለመለየት በፋብሪካው ውስጥ የተቃጠለ ልዩ 64-ቢት መታወቂያ አለው።

አነፍናፊው ከ 3.0 ወደ 5.0V ይሠራል ፣ ይህ ማለት በአንደኛው Raspberry pins (1 ወይም 17) ከሚሰጡት 3.3V በቀጥታ ሊሠራ ይችላል ማለት ነው።

አነፍናፊው 3 ሽቦዎች አሉት

  • ጥቁር: GND
  • ቀይ: ቪ.ሲ.ሲ
  • ቢጫ: 1-ሽቦ ውሂብ

እዚህ ፣ ሙሉውን መረጃ DS18B20 የውሂብ ሉህ ማግኘት ይችላሉ

የዳሳሽ መጫኛ;

ከላይ ያለውን ንድፍ ይከተሉ እና ግንኙነቶችን ያድርጉ

  • ቪሲሲ ==> 3.3 ቪ
  • Gnd ==> Gnd
  • ውሂብ ==> GPIO 4 (ለቤተ -መጽሐፍት ነባሪ)

የ Python ቤተ -መጽሐፍትን መጫን;

በመቀጠል ፣ ዳሳሹን የሚያስተናግደው የ Python ቤተ -መጽሐፍትን እንጫን-

sudo pip3 w1thermsensor ን ይጫኑ

አነፍናፊውን ለመፈተሽ ስክሪፕቱን ከማሄድዎ በፊት የ “1-ሽቦ” በይነገጽ በእርስዎ አርፒአይ ውስጥ ከነቃ (ከላይ የህትመት ማያ ገጽ ይመልከቱ)

ውቅሩን ከቀየሩ በኋላ የእርስዎን RPi እንደገና ማስጀመር አይርሱ

ዳሳሹን መሞከር;

ዳሳሹን ለመፈተሽ ቀለል ያለ የፓይዘን ስክሪፕት መጠቀም ይቻላል-

የማስመጣት ጊዜ

ከ w1thermsensor ማስመጣት W1ThermSensor ds18b20Sensor = W1ThermSensor () እውነት ሆኖ ሳለ ሙቀት = ds18b20Sensor.get_temperature () ህትመት ("ሙቀቱ % s ሴልሲየስ" % ሙቀት) ጊዜ። እንቅልፍ (1)

ደረጃ 4 BMP180 ን በመጫን ላይ

BMP180 ን በመጫን ላይ
BMP180 ን በመጫን ላይ
BMP180 ን በመጫን ላይ
BMP180 ን በመጫን ላይ
BMP180 ን በመጫን ላይ
BMP180 ን በመጫን ላይ

የዳሳሽ አጠቃላይ እይታ ፦

BMP180 ለሸማቾች ትግበራዎች ከፍተኛ ትክክለኛ የዲጂታል ግፊት ዳሳሾች አዲስ ትውልድ የ BMP085 ተተኪ ነው። የ BMP180 እጅግ በጣም ዝቅተኛ ኃይል ፣ ዝቅተኛ የቮልቴጅ ኤሌክትሮኒክስ በሞባይል ስልኮች ፣ በፒዲኤዎች ፣ በጂፒኤስ አሰሳ መሣሪያዎች እና በውጭ መሣሪያዎች ውስጥ ለመጠቀም የተመቻቸ ነው። በፍጥነት የመቀየሪያ ጊዜ በዝቅተኛ ከፍታ ጫጫታ 0.25 ሜትር ብቻ ፣ BMP180 የላቀ አፈፃፀም ይሰጣል። የ I2C በይነገጽ ከማይክሮ መቆጣጠሪያ ጋር በቀላሉ የስርዓት ውህደትን ይፈቅዳል። BMP180 ለኤኤምሲ ጥንካሬ ፣ ከፍተኛ ትክክለኛነት እና መስመራዊነት እንዲሁም ለረጅም ጊዜ መረጋጋት በፓይዞ-ተከላካይ ቴክኖሎጂ ላይ የተመሠረተ ነው።

የተሟላ የ BMP መረጃ ሉህ እዚህ ይገኛል - BMP180 - ዲጂታል ግፊት ዳሳሽ

የዳሳሽ መጫኛ - ከላይ ያለውን ንድፍ ይከተሉ እና ግንኙነቶችን ያድርጉ

  • ቪን ==> 3.3 ቪ
  • GND ==> GND
  • SCL ==> ጂፒኦ 3
  • ኤስዲኤ ==> ጂፒኦ 2

I2C በይነገጽን ማንቃት

ወደ RPi ውቅር ይሂዱ እና የ I2C በይነገጽ እንደነቃ ያረጋግጡ። ካልሆነ ያንቁ እና RPi ን እንደገና ያስጀምሩ።

BMP180 ን በመጠቀም

ሁሉም ነገር ደህና ሆኖ ከተጫነ ፣ እና ሁሉም ነገር ደህና ሆኖ ከተገናኘ ፣ አሁን የእርስዎን Pi ለማብራት እና BMP180 በዙሪያዎ ስላለው ዓለም የሚነግርዎትን ለማየት ለመጀመር ዝግጁ ነዎት።

ማድረግ ያለብዎት የመጀመሪያው ነገር ፒ ፒ የእርስዎን BMP180 ያየ መሆኑን ማረጋገጥ ነው። በተርሚናል መስኮት ውስጥ የሚከተሉትን ይሞክሩ

sudo i2cdetect -y 1

ትዕዛዙ ከሰራ ፣ BMP180 በሰርጥ ‹77› ላይ መሆኑን ከላይ ካለው ተርሚናል ማተሚያ ማያ ገጽ ጋር ተመሳሳይ የሆነ ነገር ማየት አለብዎት።

የ BMP180 ቤተ -መጽሐፍትን በመጫን ላይ

ቤተ -መጽሐፍቱን ለመጫን ማውጫ ይፍጠሩ ፦

mkdir BMP180_Sensorcd BMP180_Sensor

በአሳሽዎ ላይ ወደ Adafruit GITHub ይሂዱ

github.com/adafruit/Afad_Python_BMP

የማውረጃውን ዚፕ አገናኝ ወደ ቀኝ ጠቅ በማድረግ ቤተ -መጽሐፍቱን ያውርዱ እና በ Raspberry Pi በተፈጠረ አቃፊዎ ላይ ማህደሩን ይንቀሉት። ከዚያ ወደተፈጠረው ንዑስ አቃፊ ይሂዱ እና በቤተ -መጽሐፍት ማውጫ ውስጥ የሚከተለውን ትእዛዝ ያከናውኑ

sudo python3 setup.py ጫን

የእርስዎን Python IDE ይክፈቱ እና የሙከራ ፕሮግራም ይፍጠሩ እና ለምሳሌ BMP180Test.py ብለው ይሰይሙት

Adafruit_BMP. BMP085 እንደ BMP085sensor = BMP085. BMP085 () ህትመት ('Temp = {0: 0.2f} *C'.format (sensor.read_temperature ()))) ማተሚያ (' ግፊት = {0: 0.2f} ፓ ')። ቅርጸት (ዳሳሽ።.read_sealevel_pressure ()))

የሙከራ ፕሮግራሙን ያከናውኑ;

python3 BMP180Test.py

ከላይ ያለው ተርሚናል የህትመት ማያ ገጽ ውጤቱን ያሳያል።

ያ ግፊት በፓ (ፓስካልስ) ውስጥ መቅረቡን ልብ ይበሉ። ስለዚህ ክፍል በደንብ ለማወቅ ቀጣዩን ደረጃ ይመልከቱ።

ደረጃ 5 የአየር ሁኔታን እና ከፍታውን በ BMP180 መለካት

የአየር ሁኔታ እና ከፍታ በ BMP180 መለካት
የአየር ሁኔታ እና ከፍታ በ BMP180 መለካት

ከቢኤምፒ ንባቦች ጋር ስለምናገኘው ትንሽ ተጨማሪ ለመረዳት ትንሽ ጊዜ እንውሰድ። ይህንን የማጠናከሪያ ክፍል መዝለል ወይም በኋላ መመለስ ይችላሉ።

ስለ ዳሳሽ ንባቦች የበለጠ ለማወቅ ከፈለጉ እባክዎን ወደዚህ ታላቅ ትምህርት ይሂዱ

BMP180 የተነደፈው የከባቢ አየር ግፊትን በትክክል ለመለካት ነው። የከባቢ አየር ግፊት በሁለቱም የአየር ሁኔታ እና ከፍታ ይለያያል።

የከባቢ አየር ግፊት ምንድነው?

የከባቢ አየር ግፊት ትርጓሜ በዙሪያዎ ያለው አየር በሁሉም ነገር ላይ የሚሠራ ኃይል ነው። በከባቢ አየር ውስጥ ያሉት ጋዞች ክብደት የከባቢ አየር ግፊት ይፈጥራል። የተለመደው የግፊት አሃድ “ፓውንድ በአንድ ካሬ ኢንች” ወይም ፒሲ ነው። እኛ ዓለም አቀፋዊ መግለጫን እዚህ እንጠቀማለን ፣ ያ ኒውቶን በአንድ ካሬ ሜትር ፣ ፓስካሎች (ፓ) ተብለው ይጠራሉ።

1 ሴንቲ ሜትር ስፋት ያለው አየር ከወሰዱ 1 ኪሎ ግራም ይመዝናል

ይህ ክብደት ፣ የዚያ አምድ አሻራ ወደ ታች በመጫን ፣ እንደ BMP180 ባሉ ዳሳሾች የምንለካውን የከባቢ አየር ግፊት ይፈጥራል። ያ ሴንቲ ሜትር ስፋት ያለው የአየር አምድ 1 ኪሎ ግራም ስለሚመዝን ፣ አማካይ የባህር ግፊት ወደ 101325 ፓስካሎች ወይም ከዚያ የተሻለ ፣ 1013.25 hPa (1 hPa እንዲሁ ሚሊባር - ኤምባር በመባልም ይታወቃል) ይከተላል። በወጣህበት እያንዳንዱ 300 ሜትር ይህ ወደ 4% ገደማ ይቀንሳል። ከፍ ባለ መጠን ፣ እርስዎ ያነሰ ግፊት ያያሉ ፣ ምክንያቱም ከባቢ አየር አናት ላይ ያለው ዓምድ በጣም አጭር ስለሆነ ስለዚህ ክብደቱ አነስተኛ ነው። ይህ ማወቅ ጠቃሚ ነው ፣ ምክንያቱም ግፊቱን በመለካት እና አንዳንድ ሂሳብ በመስራት ፣ ከፍታዎን መወሰን ይችላሉ።

3 ፣ 810 ሜትር ላይ ያለው የአየር ግፊት ከባህር ጠለል ግማሹ ብቻ ነው።

BMP180 በፓስካሎች (ፓ) ውስጥ ፍጹም ግፊት ያወጣል። አንድ ፓስካል በጣም ትንሽ የግፊት መጠን ነው ፣ በግምት አንድ ወረቀት በጠረጴዛ ላይ ያርፋል። ብዙ ጊዜ በሄክቶፓስካል (1 hPa = 100 ፓ) ውስጥ ልኬቶችን ያያሉ። እዚህ ጥቅም ላይ የዋለው ቤተ-መጽሐፍት በ hPa ውስጥ ተንሳፋፊ-ነጥብ እሴቶችን ይሰጣል ፣ ይህም ደግሞ አንድ ሚሊባር (ኤምባር) እኩል ይሆናል።

ወደ ሌሎች የግፊት ክፍሎች አንዳንድ ልወጣዎች እነሆ-

  • 1 hPa = 100 ፓ = 1 ሜባ = 0.001 አሞሌ
  • 1 hPa = 0.75006168 ቶር
  • 1 hPa = 0.01450377 psi (ፓውንድ በአንድ ካሬ ኢንች)
  • 1 hPa = 0.02953337 ኢንኤችጂ (የሜርኩሪ ኢንች)
  • 1 ታኮ = 0.00098692 ኤቲኤም (መደበኛ ከባቢ አየር)

የሙቀት ውጤቶች

የሙቀት መጠኑ በጋዝ ጥግግት ላይ ተጽዕኖ ስለሚያሳድር ፣ እና ጥግግት በጋዝ ብዛት ላይ ተጽዕኖ ስለሚያሳድር ፣ እና ግፊቱ ግፊት (ዊው) ላይ ተጽዕኖ ስለሚያሳድር ፣ የከባቢ አየር ግፊት ከአየር ሙቀት ጋር በከፍተኛ ሁኔታ ይለወጣል። አብራሪዎች ይህንን እንደ “ጥግግት ከፍታ” ያውቃሉ ፣ ይህም አየሩ ጥቅጥቅ ያለ እና የበለጠ የአየር ላይ ተፅእኖ ስላለው ከሞቃት ይልቅ በቀዝቃዛ ቀን መነሳት ቀላል ያደርገዋል። የሙቀት መጠንን ለማካካስ ፣ BMP180 በጣም ጥሩ የሙቀት ዳሳሽ እና የግፊት ዳሳሽ ያካትታል።

የግፊት ንባብን ለማከናወን በመጀመሪያ የሙቀት ንባብን ይወስዳሉ ፣ ከዚያ ያንን የመጨረሻውን የሙቀት-ማካካሻ የግፊት መለኪያ ለማምጣት ከጥሬ ግፊት ንባብ ጋር ያዋህዱት። (ቤተ -መጽሐፍት ይህንን ሁሉ በጣም ቀላል ያደርገዋል።)

ፍጹም ግፊት መለካት

ማመልከቻዎ ፍጹም ግፊትን መለካት የሚፈልግ ከሆነ ፣ ማድረግ ያለብዎት የሙቀት ንባብን ማግኘት ብቻ ነው ፣ ከዚያ የግፊት ንባብን ያከናውኑ (ለዝርዝሮች ምሳሌ ንድፉን ይመልከቱ)። የመጨረሻው የግፊት ንባብ በ hPa = mbar ውስጥ ይሆናል። ከፈለጉ ፣ ከላይ የተጠቀሱትን የመቀየሪያ ምክንያቶች በመጠቀም ይህንን ወደ ሌላ ክፍል መለወጥ ይችላሉ።

የከባቢ አየር ፍፁም ግፊት በሁለቱም ከፍታዎ እና አሁን ባለው የአየር ሁኔታ ሁኔታ የሚለዋወጥ መሆኑን ልብ ይበሉ ፣ ሁለቱም ለመለካት ጠቃሚ ነገሮች ናቸው።

የአየር ሁኔታ ምልከታዎች

በምድር ላይ በማንኛውም ቦታ (ወይም ከባቢ አየር ባለበት) ላይ ያለው የከባቢ አየር ግፊት ቋሚ አይደለም። በመሬት ሽክርክሪት ፣ ዘንግ ዘንበል እና በሌሎች ብዙ ነገሮች መካከል ያለው ውስብስብ መስተጋብር ከፍ እና ዝቅተኛ ግፊት የሚንቀሳቀሱ ቦታዎችን ያስከትላል ፣ ይህ ደግሞ በየቀኑ የምናየውን የአየር ሁኔታ ልዩነት ያስከትላል። የግፊት ለውጦችን በመመልከት ፣ በአየር ሁኔታ ውስጥ የአጭር ጊዜ ለውጦችን መተንበይ ይችላሉ። ለምሳሌ ፣ ግፊት መቀነስ ብዙውን ጊዜ እርጥብ የአየር ሁኔታን ወይም ማዕበሉን እየቀረበ ነው (ዝቅተኛ ግፊት ስርዓት ወደ ውስጥ ይገባል)። እየጨመረ የሚሄድ ግፊት ብዙውን ጊዜ ግልጽ የአየር ሁኔታ እየቀረበ ነው (ከፍተኛ ግፊት ያለው ስርዓት እየተንቀሳቀሰ ነው)። ነገር ግን ያስታውሱ የከባቢ አየር ግፊት እንዲሁ በከፍታ ይለያያል። በቤቴ ውስጥ ያለው ፍፁም ግፊት ፣ በቺሊ ውስጥ ሎ ባርኔቼያ (ከፍታ 950 ሜ) ሁል ጊዜ በሳን ፍራንሲስኮ ውስጥ ካለው ፍጹም ግፊት (ከ 2 ሜትር በታች ፣ ከባህር ጠለል ማለት ይቻላል) ዝቅ ይላል። የአየር ሁኔታ ጣቢያዎች የእነሱን ፍጹም ግፊት ብቻ ሪፖርት ካደረጉ ፣ የግፊት መለኪያዎችን ከአንድ ቦታ ወደ ሌላ በቀጥታ ማወዳደር ከባድ ነው (እና መጠነ ሰፊ የአየር ሁኔታ ትንበያዎች በተቻለ መጠን ከብዙ ጣቢያዎች በሚለኩ መለኪያዎች ላይ ይወሰናሉ)።

ይህንን ችግር ለመፍታት የአየር ሁኔታ ጣቢያዎች ንባቡ በባህር ወለል ላይ እንደተወሰደ እንዲመስል በሂሳብ አኳያ ተመጣጣኝ ቋሚ ግፊትን በመጨመር የከፍታ ውጤቶችን ከተዘረዘሩት የግፊት ንባቦች ያስወግዳሉ። ይህንን በሚያደርጉበት ጊዜ በሳን ፍራንሲስኮ ከፍ ያለ ንባብ ከሎ ባርኔቼያ ሁል ጊዜ በአየር ሁኔታ ቅጦች ምክንያት ይሆናል ፣ እና በከፍታ ምክንያት አይደለም።

ይህንን ለማድረግ በቤተመጽሐፍት ውስጥ የባህር ከፍታ (ፒ ፣ ሀ) የሚባል ተግባር አለ። ይህ በ hPa ውስጥ ፍጹም ግፊት (ፒ) ፣ እና የጣቢያው የአሁኑ ከፍታ (ሀ) በሜትሮች ውስጥ ይወስዳል ፣ እና የከፍታውን ተፅእኖ ከግፊቱ ያስወግዳል። የአየር ሁኔታ ንባቦችዎን በዓለም ዙሪያ ካሉ ሌሎች ጣቢያዎች ጋር በቀጥታ ለማወዳደር የዚህን ተግባር ውጤት መጠቀም ይችላሉ።

ከፍታ መወሰን

ግፊት በከፍታ ላይ ስለሚለያይ ከፍታ (በጥቂት ማስጠንቀቂያዎች) ለመለካት የግፊት ዳሳሽ መጠቀም ይችላሉ። በባህር ጠለል ላይ ያለው የከባቢ አየር አማካይ ግፊት 1013.25 hPa (ወይም mbar) ነው። ወደ ክፍተት ክፍተት ሲወጡ ይህ ወደ ዜሮ ይወርዳል። የዚህ ተቆልቋይ ኩርባ በደንብ ስለተረዳ ፣ አንድ የተወሰነ ቀመር በመጠቀም በሁለት ግፊት መለኪያዎች (ገጽ እና p0) መካከል ያለውን የከፍታ ልዩነት ማስላት ይችላሉ።

የባሕር ደረጃ ግፊት (1013.25 hPa) እንደ መነሻ ግፊት (p0) የሚጠቀሙ ከሆነ ፣ የእኩልታው ውጤት ከባህር ጠለል በላይ የአሁኑ ከፍታዎ ይሆናል። በቤተመጽሐፍት ውስጥ “የተሰላ ከፍታ” እንዲያገኙ የሚያስችል ከፍታ (P ፣ P0) የሚባል ተግባር አለ።

ከላይ ያለው ማብራሪያ የተወሰደው ከ BMP 180 Sparkfun አጋዥ ስልጠና ነው።

ደረጃ 6 - የተሟላ HW

የተሟላ HW
የተሟላ HW

ደረጃ 7 ውሂብን ወደ ThingSpeak መላክ

ውሂብ ወደ ThingSpeak በመላክ ላይ
ውሂብ ወደ ThingSpeak በመላክ ላይ

በዚህ ጊዜ ፣ ከ 3 ቱ ዳሳሾች ሁሉ መረጃን ለመያዝ ፣ ተርሚናል ላይ በማተም RPi ን እንዴት ማዘጋጀት እንደሚቻል ተምረናል። አሁን እነዚያን መረጃዎች ወደ አይቶ መድረክ ፣ ThingSpeak እንዴት እንደሚልኩ ለማየት ጊዜው አሁን ነው።

እንጀምር!

በመጀመሪያ ፣ በ ThinkSpeak.com ላይ መለያ ሊኖርዎት ይገባል

ሰርጥ ለመፍጠር መመሪያዎቹን ይከተሉ እና የሰርጥ መታወቂያዎን ያስተውሉ እና የኤፒአይ ቁልፍን ይፃፉ

የፓይዘን ስክሪፕትን ከእኔ GitHub: localData ToTS_v1_EXT.py ያውርዱ

በጣም አስፈላጊዎቹን ክፍሎች ኮዱን አስተያየት እንስጥ-

በመጀመሪያ ፣ የ ThingSpeak ቤተ -መጽሐፍትን እናስመጣ ፣ የ WiFi ደንበኛውን ይግለጹ እና የአከባቢዎን ራውተር እና የ Thinkspeak ምስክርነቶችን ይግለጹ-

ነገሮችን ከውጭ አስመጣ

ከ ThingSpeak ጋር የሚገናኙባቸው በርካታ መንገዶች አሉ ፣ ቀላሉ መንገድ በ Mikolaj Chwaliz እና በ Keith Ellis ለተዘጋጁት ነገሮችpeak.com ኤፒአይ የደንበኛውን ቤተ -መጽሐፍት መጠቀም ነው።

ቤተመጽሐፍት ከ https://github.com/mchwalisz/thingspeak ማውረድ ወይም ፒአይፒን በተርሚናል ላይ መጠቀም ይችላል-

sudo pip3 ነገሮችን ይናገሩ

በመቀጠል ፣ በስክሪፕቱ ውስጥ ፣ የ ThingSpeak ሰርጥ ምስክርነቶችን ያዘምኑ

chId = 9999999 # በሰርጥዎ መታወቂያ ያስገቡ

tsKey = 'ወደ ቻናልዎ ይግቡ ቁልፍ ይጻፉ' tsUrl = 'https://api.thingspeak.com/update' ts = thingspeak. Channel (chId ፣ tsUrl ፣ tsKey)

አሁን ፣ 3 ዳሳሾችን እናስጀምር-

# DS18B20 1-ሽቦ ቤተ-መጽሐፍት

ከ w1thermsensor ማስመጣት W1ThermSensor ds18b20Sensor = W1ThermSensor () # በነባሪ GPIO 4 በቤተ -መጽሐፍት # DHT22 ቤተ -መጽሐፍት ማስመጣት Adafruit_DHT DHT22Sensor = Adafruit_DHT. DHT22 DHTpin = 16 # BMP180 ቤተመፃሕፍት Adafruit_BMP. B0 የአለምአቀፍ ተለዋዋጭ “altReal” ን በማዘመን የእርስዎ የአየር ሁኔታ ጣቢያ የሚገኝበትን እውነተኛ ከፍታ መግለፅ አለብዎት። በእኔ ሁኔታ ጣቢያዬ ከባህር ጠለል በላይ በ 950 ሜትር ላይ ይገኛል

ዓለም አቀፍ altReal

altReal = 950

አንዴ ከጣቢያው እውነተኛ ከፍታ ጋር እንደ ግቤት ከገቡ ፣ የ bmp180GetData (ከፍታ) ተግባሩን በመጠቀም ፍጹም ግፊትን ፣ የባህር ከፍታ ግፊትን ፣ የሙቀት መጠንን እና ከፍታውን ማግኘት እንችላለን።

def bmp180GetData (ከፍታ)

temp = bmp180Sensor.read_temperature () pres = bmp180Sensor.read_pressure () alt=bmp180Sensor.read_altitude () presSeaLevel = pres/pow (1.0 - ከፍታ/44330.0, 5.255) temp = round (temp, 1) pres = round (pres/100, 2) # በ hPa (ወይም mbar) alt=round (alt) presSeaLevel = round (presSeaLevel/100, 2) # ፍጹም ግፊት በ hPa (ወይም mbar) የመመለሻ ሙቀት ፣ ቅድመ ፣ alt ፣ presSeaLevel ውስጥ

ተግባሩ getLocalData () ፣ በጣቢያችን የተያዘውን ሁሉንም አካባቢያዊ ውሂብ ይመልሳል-

def getLocalData ():

ዓለም አቀፍ ጊዜ ሕብረቁምፊ ዓለም አቀፋዊ humLab ዓለም አቀፍ የሙቀት መጠን ዓለም አቀፍ tempLab ዓለም አቀፍ presSL ዓለም አቀፍ altLab ዓለም አቀፍ presAbs # የንባብ ጊዜ አሁን ያግኙ = datetime.datetime.now () timeString = now.strftime ("%Y-%m-%d%H:%M") # ከቤት ውጭ የሙቀት መጠን (1 ሜትር ርቀት) tempExt = ዙር (ds18b20Sensor.get_temperature () ፣ 1) tempLab ፣ presAbs ፣ altLab ፣ presSL = bmp180GetData (altReal) humDHT ፣ tempDHT = Adafruit_DHT. እና tempDHT ምንም አይደለም - humLab = round (humDHT

ከላይ በተጠቀሱት ተግባራት የተያዙ ሁሉንም መረጃዎች አንዴ ካገኙ በኋላ ወደ ThingSpeak መላክ አለብዎት። SendDataTs () የሚለውን ተግባር በመጠቀም ያደርጉታል-

def sendDataTs ():

data = {"field1": tempLab, "field2": tempExt, "field3": humLab, "field4": presSL, "field5": altLab} ts.update (data) print ("[INFO] ውሂብ ለ 5 መስኮች ተልኳል: ", tempLab, tempExt, humLab, presSL, altLab)

የሰርጥዎ ውሂብ በተዘመነ ፣ ስክሪፕቱን ያስቀምጡ እና በእርስዎ ተርሚናል ላይ ያስፈጽሙት

sudo Python3 localData_ToTs_v1_EXT.py

ስለ የግንኙነት ፕሮቶኮሎች

“የነገሮች ቤተ -መጽሐፍት” ን በመጠቀም ፣ “የጥያቄዎች ቤተ -መጽሐፍት” ከውጭ እንደመጣ ልብ ይበሉ ፣ ያ በ Apthon የተፃፈ የ Apache2 ፈቃድ ያለው የኤችቲቲፒ ቤተ -መጽሐፍት ነው። ኦፊሴላዊ የጥያቄ መጫኛ ሰነድ እዚህ ሊገኝ ይችላል-

docs.python-requests.org/en/latest/user/install/

አስፈላጊ ከሆነ ፣ ስክሪፕትዎን ከማካሄድዎ በፊት የጥያቄዎች ቤተ -መጽሐፍት መጫኑን ማረጋገጥ ይችላሉ-

sudo pip3 የመጫኛ ጥያቄዎች

እንደ አማራጭ መረጃን ወደ ThingSpeak ለመላክ MTTQ ን እንደ ዘዴ መጠቀም ይችላሉ። MQTT ከኤች ቲ ቲ ፒ የተለየ ነው ፣ አንድ ጊዜ ክብደቱ ቀላል እንዲሆን እና ዝቅተኛ ራም እና ሲፒዩ አፈፃፀም ላላቸው ለተካተቱ መሣሪያዎች የታሰበ ነው። እንዲሁም ፣ በአብዛኛዎቹ ሁኔታዎች ፣ MQTT አነስተኛ የመተላለፊያ ይዘትን ይጠቀማል።

ይህንን መማሪያ ይመልከቱ - ለተጨማሪ ዝርዝሮች MQTT ን በ Raspberry Pi በመጠቀም የ ThingSpeak ሰርጥ ያዘምኑ።

ደረጃ 8 ESP8266 ን በመጠቀም የርቀት መረጃን ወደ ThingSpeak መላክ

ESP8266 ን በመጠቀም የርቀት መረጃን ወደ ThingSpeak መላክ
ESP8266 ን በመጠቀም የርቀት መረጃን ወደ ThingSpeak መላክ
ESP8266 ን በመጠቀም የርቀት መረጃን ወደ ThingSpeak መላክ
ESP8266 ን በመጠቀም የርቀት መረጃን ወደ ThingSpeak መላክ

ለዚህ ደረጃ ፣ እኛ በሙያ አጋዥ ስልጠና ውስጥ የተብራራውን ተመሳሳይ HW እንጠቀማለን-

IOT MADE ቀላል: የርቀት የአየር ሁኔታ መረጃን መያዝ - UV እና የአየር ሙቀት እና እርጥበት

እዚህ የምንጠቀምበት ኮድ ፣ በመሠረቱ በዚያ መማሪያ ላይ ጥቅም ላይ ውሏል። በጣም አስፈላጊዎቹን ክፍሎች ኮዱን አስተያየት እንስጥ-

በመጀመሪያ ፣ ወደ ESP8266 ቤተ -መጽሐፍት እንደውል ፣ የ WiFi ደንበኛውን ይግለጹ እና የአከባቢዎን ራውተር እና የ Thinkspeak ምስክርነቶችን ይግለጹ-

/ * NodeMCU ESP12-E */

#የ WiFi ደንበኛ ደንበኛን ያካትቱ ፤ const char* MY_SSID = "ከእርስዎ SSDID ጋር ይግቡ"; const char* MY_PWD = "በይለፍ ቃልዎ ይግቡ"; /* Thinkspeak*/ const char* TS_SERVER = "api.thingspeak.com"; ሕብረቁምፊ TS_API_KEY = "በጽሑፍ ቁልፍዎ ይግቡ";

ሁለተኛ ፣ ለ IoT ፕሮጄክቶች በጣም አስፈላጊ ቤተ -መጽሐፍትን እንጨምር- SimpleTimer.h:

/ * ሰዓት ቆጣሪ */

#SimpleTimer ሰዓት ቆጣሪን ያካትቱ ፤

ሦስተኛ ፣ በማዋቀር () ጊዜ ፣ ተከታታይ ግንኙነትን እንጀምራለን ፣ ተግባሩን ConnectWiFi () ይደውሉ እና ሰዓት ቆጣሪዎችን እንገልፃለን። የኮድ መስመሩን ልብ ይበሉ timer.setInterval (60000L ፣ sendDataTS) ፤ ወደ ThinkSpeak ሰርጥ ውሂብ ለመስቀል ተግባሩን በየ 60 ሰከንዶች sendDataTS () ይደውላል።

ባዶነት ማዋቀር ()

{… Serial.begin (115200) ፤ መዘግየት (10); … ConnectWifi (); timer.setInterval (60000L ፣ sendDataTS); …}

በመጨረሻ ግን ቢያንስ በ loop () ወቅት አስፈላጊው ሰዓት ቆጣሪውን ማስጀመር ነው እና ያ ብቻ ነው!

ባዶነት loop ()

{… Timer.run (); // SimpleTimer ን ያስጀምራል}

ከዚህ በታች የ Thinkspeak ግንኙነትን ለማስተናገድ ያገለገሉትን ሁለት አስፈላጊ ተግባራት ማየት ይችላሉ-

የ ESP12-E ግንኙነት ከ WiFi አውታረ መረብዎ ጋር

/***************************************************

*WiFi በማገናኘት ላይ *********************************************** ***/ ባዶነት connectWifi () {Serial.print (“ከ”+*MY_SSID ጋር በመገናኘት ላይ); WiFi.begin (MY_SSID ፣ MY_PWD); ሳለ (WiFi.status ()! = WL_CONNECTED) {መዘግየት (1000); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi ተገናኝቷል"); Serial.println (""); }

ESP12-E ውሂብ ወደ ThinkSpeak በመላክ ላይ

***************************************************

*ወደ Thinkspeak ሰርጥ መረጃን መላክ ******************************************** ******/ ባዶነት sendDataTS (ባዶ) {ከሆነ (client.connect (TS_SERVER ፣ 80)) {String postStr = TS_API_KEY; postStr += "& field6 ="; postStr += ሕብረቁምፊ (ቴምፕ); postStr += "& field7 ="; postStr += ሕብረቁምፊ (ሃም); postStr += "& field8 ="; postStr += ሕብረቁምፊ (dataSensorUV); postStr += "\ r / n / r / n"; client.print ("POST /update HTTP /1.1 / n"); client.print ("አስተናጋጅ: api.thingspeak.com / n"); client.print ("ግንኙነት ፦ close / n"); client.print ("X-THINGSPEAKAPIKEY:" + TS_API_KEY + "\ n"); client.print ("የይዘት-አይነት: ማመልከቻ/x-www-form-urlencoded / n"); client.print ("ይዘት-ርዝመት:"); client.print (postStr.length ()); client.print ("\ n / n"); client.print (postStr); መዘግየት (1000); } ተልኳል ++; client.stop (); }

የተሟላ ኮድ በእኔ GitHub ላይ ይገኛል - NodeMCU_UV_DHT_Sensor_OLED_TS_EXT

አንዴ ወደ ኖድኤምሲዩ የተሰቀለውን ኮድ ከያዙ በኋላ። ውጫዊ ባትሪ እንገናኝ እና ከፀሐይ በታች የተወሰነ ልኬት እናድርግ። የርቀት ጣቢያውን በጣሪያው ላይ አደርጋለሁ እና ከላይ ባሉት ፎቶዎች ላይ እንደሚታየው በ ThingSpeak.com ላይ መረጃን መያዝ እጀምራለሁ።

ደረጃ 9 የመጨረሻ ማስታወሻዎች

የመጨረሻ ማስታወሻዎች
የመጨረሻ ማስታወሻዎች

የዚህ ትምህርት ዋና ዓላማ Raspberry Pi ን ከ ThingSpeak ጋር እንዴት ማገናኘት እንደሚቻል ለማሳየት ነበር። መረጃን ለመያዝ እና በ IoT መድረክ ላይ ለማስመዝገብ ይህ በጣም ጥሩ ነው።

አጋጣሚውን በመጠቀም ESP8266 ን በመጠቀም ከርቀት ጣቢያ በመያዝ መረጃን ወደዚያ የተወሰነ ሰርጥ ልከናል። ይህ አቀራረብ ጥሩ ነው ፣ ግን በጣም ጥሩው አይደለም። እኛ “ያልተመሳሰለ” ክዋኔ ስላለን ፣ አንዳንድ ጊዜ ፣ ሁለቱም ፣ RPi እና ESP8266 በ ThingSpeak ውድቅ የተደረገውን በአንድ ጊዜ (ወይም በትንሽ ክፍተት) ለመግባት ይሞክራሉ። እጅግ በጣም ጥሩው ESP8266 መረጃን በአከባቢ ወደ Raspberry Pi መላክ እና የመጨረሻው ሁሉንም መረጃ የማስተዳደር ሃላፊነት ይኖረዋል። ያንን በማድረግ “ዋናው ጣቢያ” (Raspberry Pi) 3 ነገሮችን ማድረግ ይችላል-

  • ሁሉንም ውሂብ በአካባቢያዊ የውሂብ ጎታ ላይ ይመዝግቡ
  • በአካባቢያዊ የድር ገጽ ላይ ሁሉንም ውሂብ ያቅርቡ (ከላይ ባለው ፎቶ ላይ እንደሚታየው ፍላሳን በመጠቀም)
  • ሁሉንም ውሂብ ወደ ThingSpeak በተመሳሳይ ጊዜ መላክ።

ለወደፊቱ አጋዥ ስልጠና እነዚያን አማራጮች እንመረምራለን።

ደረጃ 10 መደምደሚያ

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

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

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

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

ይከታተሉ! ቀጣዩ ትምህርት በ Raspberry Pi የድር አገልጋይ ላይ በመመርኮዝ ከርቀት የአየር ሁኔታ ጣቢያ ወደ ማዕከላዊ መረጃ እንልካለን።

ምስል
ምስል

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

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

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

የሚመከር: