Агуулгын хүснэгт:
- Алхам 1: Ашигласан материал
- Алхам 2: угсрах
- Алхам 3: Төхөөрөмжийг ашиглах
- Алхам 4: BME280 скрипт
- Алхам 5: BMP280 скрипт
Видео: Inky_pHAT цаг уурын станц: 5 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Би энд маш энгийн бөгөөд авсаархан, Raspberry Pi Zero дээр суурилсан цаг уурын станцыг тайлбарлахыг хүсч байна. Мэдрэгч ба pHAT -ийг Pi -ийн GPIO -д холбохыг зөвшөөрөхийн тулд би GPIO болон дэлгэцийн хооронд хоёр эмэгтэй толгойтой Pimorini Pico HAT хакерыг байрлуулсан. Төхөөрөмжийг хэд хэдэн мэдрэгчийг холбоход ашигладаг байсан тул энд тайлбарласан BME280 хувилбар нь зөвхөн жишээ юм.
LCD дэлгэцээс ялгаатай нь цахилгаан бэх дэлгэц нь цахилгаан унтраасан байсан ч гэсэн дүрсийг хадгалдаг. Тиймээс, хэрэв та үе үе шинэчлэгддэг мэдээллийг харуулахыг хүсч байвал, ялангуяа эрчим хүч багатай төхөөрөмж бүтээхийг хүсч байвал эдгээр нь маш сайн шийдэл болно. Inky pHAT-ийн монохром/хар хувилбарын гол давуу тал нь дэлгэцийг шинэчлэхэд гурван өнгийн хувилбарт шаардагдах араваас арван таван секундын оронд ердөө нэг секунд зарцуулдаг явдал юм. Кино үзэх.
Adafruit -ийн Blinka номын сан нь Raspberry Pi дээр Circuit Python кодыг ажиллуулах боломжийг олгодог бөгөөд Adafruit -ээс олон төрлийн мэдрэгчийн Circuit Python дээжийг авах боломжтой. Blinka болон Circuit Python кодыг хэрхэн суулгах талаар дэлгэрэнгүй тайлбарыг Adafruit вэбсайтаас авах боломжтой. Миний одоог хүртэл туршиж үзсэн номын сангууд (BMP280, BME280, TSL2591, TCS34785, VEML7065,…) маш сайн ажиллаж байсан боловч зарим жишээ кодонд бага зэрэг асуудал гарсан.
BME280 бол температур, чийгшил, атмосферийн даралтыг хэмжих мэдрэгч юм. BMP280 -ийн салалтыг Adafruit гэх мэт олон үйлдвэрлэгчдээс авах боломжтой боловч би энд хямд хятад хувилбар ашиглаж байсан. Эдгээр нь өөр өөр i2c хаяг ашиглаж байгааг анхаарна уу (Adafruit: 0x77, бусад: 0x76).
Салалт нь Pi -т i2c -ээр холбогдсон бөгөөд номын сан болон жишээ кодыг ашиглан мэдрэгчийг унших нь маш энгийн.
Алхам 1: Ашигласан материал
Raspberry Pi Zero, эрэгтэй толгой хавсаргасан. Гэхдээ Raspberry Pi -ийн ямар ч хувилбар үүнийг хийх болно.
Pimoroni Inky pHAT, хар/монохром хувилбар, 25 € | 22 £ | 20US $, Pimoroni дээр.
Pimoroni Pico HAT хакер, 2.50 € | 2 фунт, хоёр эмэгтэй толгой хавсаргасан бөгөөд тэдгээрийн нэг нь урт зүү бүхий өргөлтийн толгой юм. Надад хоёр өөр хувилбар бий, доорх тайлбарыг үзнэ үү.
BME280 -ийн тасархай, AZ. Amazon.de @ 7.50 еврогоор, толгой хавсаргасан.
Сунгах холбогч кабель
Нэмэлт:
Гар утасны програмд зориулсан USB тэжээлийн багц
Pi эсвэл төхөөрөмжид зориулсан орон сууц (энд харуулаагүй болно)
Алхам 2: угсрах
- Эмэгтэй толгойг Pico HAT хакер руу гагнана уу. Гагнахаасаа өмнө зөв чиг баримжаа байгаа эсэхийг шалгаарай. Би үүний хоёр хувилбарыг өөр өөр зорилгоор бүтээсэн. Доод тал руу өргөлтийн толгойг урд эгнээнд байрлуулж, арын эгнээнд ердийн, дээш/харсан толгойтой, арын эгнээнд доош харсан өргөлтийн толгойтой, урд эгнээнд эмэгтэй хүний баруун өнцөг бүхий толгойтой хувилбар. Зургийг үзнэ үү. Эхний хувилбар нь мэдрэгч, кабелийг хялбархан холбох, солих боломжийг олгодог бол дотогшоо чиглэсэн толгойтой хувилбар нь Pi, мэдрэгч, Inky pHAT -ийг орон сууцанд оруулах боломжийг олгодог. Эсвэл та GPIO ба мэдрэгчийг холбосон кабелийг Pico HAT хакер руу шууд гагнах ба/эсвэл Pico HAT хакерыг GPIO зүү рүү шууд гагнах боломжтой. Ямар ч тохиолдолд гагнуурын хамгийн бага хэмжээг ашиглах хэрэгтэй.
- Шаардлагатай бол толгойг мэдрэгч рүү гагнана.
- Өөрчилсөн Pico HAT хакерын нэгжийг Pi дээр байрлуулаад дараа нь Inky pHAT -ийг нэмнэ үү. Шаардлагатай бол зарим дэмжлэг оруулна уу. Inky pHAT-ийн хувьд хөөс блок эсвэл зогсолт.
- 3V, GND, SDA, SCL портуудыг ашиглан кабель ба мэдрэгчийг холбоно уу. Бүх мэдрэгч 5V -д тэсвэртэй байдаггүй тул 5V порт руу холбохын өмнө шалгана уу.
- Blinka номын санг, дараа нь Adafruit -аас Circuit Python BME280 номын санг суулгаарай.
- Pimoroni -аас Inky pHAT номын санг суулгаарай.
- Дараагийн алхамд тайлбарласан Python кодын жишээг энэ зааварт хавсаргана уу.
- Кодыг ажиллуулна уу.
Алхам 3: Төхөөрөмжийг ашиглах
Төхөөрөмжийг ашиглах хоёр сонголт байдаг.
Энд үзүүлсэн кодыг хавсаргасан дэлгэц ашиглан эхлүүлэх боловч дараа нь ажиллахгүйгээр ажиллуулж болно.
Кодод бага зэрэг өөрчлөлт оруулснаар та crontab ашиглан хэмжилтийг тогтоосон хугацаанд хийж болно. Энэ нь эрчим хүчний хэрэглээг улам бүр бууруулах боломжийг олгоно. Crontab -ийг хэрхэн ашиглах талаар маш сайн тайлбарыг өөр газраас олж болно.
Цахилгаан багцтай хамт та хөдөлгөөнт төхөөрөмж хийж, хөргөгчин, саун, чийгшүүлэгч, дарсны зоорь, онгоцны дотор болон гадна талын нөхцөл байдлыг хэмжихэд ашиглаж болно.
Тэг W -ийг ашигласнаар та дэлгэц дээрх утгыг харуулаад зогсохгүй өөр газар тайлбарласны дагуу WLAN -ээр дамжуулан сервер эсвэл вэбсайт руу илгээж болно.
Алхам 4: BME280 скрипт
Өмнө дурьдсанчлан та Adafruit Blinka болон Circuit Python BME280 номын сан болон Pimoroni Inky pHAT номын санг суулгах хэрэгтэй.
Код нь эхлээд мэдрэгч болон Inky pHAT-ийг эхлүүлж, дараа нь температур, даралт, чийгшлийн утгыг мэдрэгчээс уншиж, дэлгэц болон цахим бэх дэлгэц дээр харуулна. Time.sleep () командыг ашиглан хэмжилтийг минут тутамд хийдэг. Шаардлагатай бол тохируулна уу. Хэлний параметрийг тохируулснаар та үр дүнг харуулах хэлийг өөрчилж болно.
Inky pHAT e-ink дэлгэцийг ашигласнаар та эхлээд inkyphat.show () командыг ашиглан дэлгэц рүү шилжүүлэхээс өмнө зургийг санах ойд харуулах болно. Inky pHAT номын сан нь үйл явцыг хялбаршуулж, текст, шугам, тэгш өнцөгт, тойрог зурах, форматлах эсвэл арын зургийг ашиглах командуудыг санал болгодог.
Хэмжсэн утгаас гадна хэмжих хугацааг харуулна.
Скрипт болон номын сан нь Python 3 дээр бичигдсэн тул Py3 IDLE эсвэл түүнтэй адилтгах програмыг ашиглан нээгээд ажиллуулна уу.
# Bme280 температур/даралт/чийгшлийн мэдрэгчийн скрипт (Adafruit -ийн бус хувилбар) # ба бэхжүүлсэн pHAT - хар хувилбар # # хувилбар Dec 01 2018, Dr H # # Adafruit Blinka болон Circuit Python BME280 номын сангууд болон Pimoroni Inky -ийг шаарддаг. pHAT номын сан импортлох цаг импортлох datetime импорт самбар adafruit_bme280 импорт Adafruit_BME280 импортлох adafruit_bme280 Adafruit_BME280_I2C импортлох inkyphat импортлох систем syl PIL импорт ImageFont inkyphat.set_colour ('хар') # for b/w. inset phat бэх 180 ° font1 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 27) # Стандарт фонт сонгох2 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 19) # Стандарт фонтын өгөгдлийг сонгох # lang = "DE" # хэлний параметрийг тохируулах, default ("") -> english lang = "EN" i2c = busio. I2C (board. SCL, board. SDA) bmp = Adafruit_BME280_I2C (i2c, address = 0x76) # анхдагч i2c хаяг (Adafruit BMP280 -ийн хувьд) 0x77 (анхдагч), 0x76 for the Хятадын breakout) # лавлах даралтыг тохируулна уу # al нэрийн тооцоо, тохируулна уу. Стандарт утга 1013.25 hPa # гарын авлагын оролт: #reference_hPa = оролт ("hPa дахь лавлах даралтыг оруулна уу:") # эсвэл # даралтыг эхлэх үед лавлагаа болгон тохируулна, жишээ нь. харьцангуй өндрийн хэмжилтийн хувьд цаг. унтах (1) # 1 -р хэмжилт хийхээс өмнө нэг секунд хүлээнэ j = 0 pres_norm_sum = 0 байхад j (5): # лавлагааны утгыг тодорхойлохын тулд таван хэмжилт хийж pres_norm_sum = pres_norm_sum + bmp. даралт j = j + 1 time.sleep (1) reference_hPa = (pres_norm_sum/j) # өндрийн хэмжилтийг идэвхжүүлэхийн тулд анхны хэмжүүрийг bmp.sea_level_pressure = float (reference_hPa) хэвлэх () байхад True: # үүрд ажиллана, crontab-version # хэмжигдэхүүний хувьд өөрчлөх t = bmp.temperature p = bmp.pressure h = bmp.humidity a = bmp.altitude # adafruit номын сангийн даралтаас тооцоолсон # timestamp ts = datetime.datetime.now () # timestamp ts0_EN = '{:%Y-% m-%d} '. формат (ts) # timestamp - огноо, EN формат ts0_DE =' {:%d.%m.%Y} '. формат (ts) # timestamp - огноо, герман формат ts1 =' {: %H:%M:%S} '. Формат (ts) # timestamp - time tmp = "{0: 0.1f}". Format (t) pre = "{0: 0.1f}". Format (p) hyg = "{0: 0.1f}". Формат (h) alt="{0: 0.1f}". Формат (a) tText = "Temp.:" pText_EN = "Даралт:" pText_DE = "Luftdruck:" h Text_EN = "Чийгшил:" hText_DE = "rel. LF: "aText_EN =" Өндөр: "aText_DE =" Höhe üNN: " # exakt: ü. NHN, über Normal Höhen Null if (lang ==" DE "): ts0 = ts0_DE aText = aText_DE pText = pText_DE hText = hText_ hText_: # анхдагч англи хэл ts0 = ts0_EN aText = aText_EN pText = pText_EN hText = hText_EN # хэвлэх утгууд нь print (ts) print (tText, tmp, "° C") print (pText, pre, "hPa") print (hText, hyg, " %") хэвлэх (aText, alt, "m") хэвлэх () # хэвлэх утгыг Inky pHAT t1 = 5 # tab 1, frist баганад тохируулах, t2 = 110 # tab 2, хоёр дахь баганы бэхийн оновчлолыг хялбаршуулна. clear () inkyphat.text ((t1, 0), ts0, inkyphat. BLACK, font2) # timestamp огноог бичих inkyphat.text ((t2, 0), ts1, inkyphat. BLACK, font2) # timestamp time inkyphat.line бичих ((t1, 25, 207, 25), 1, 3) # inkyphat.text ((t1, 30), tText, inkyphat. Black, font2) inkyphat.text ((t2, 30), (tmp + "° C"), inkyphat. BLACK, font2) inkyphat.text ((t1, 55), pText, inkyphat. BLACK, font2) inkyphat.text ((t2, 55), (pre + "hPa"), inkyphat. ХАР, фонт2) inkyphat.text ((t1, 80), hText, inkyphat. BLACK, font2) inkyphat.text ((t2, 80), (hyg + " %"), inkyphat. BLACK, font2) # өөрөөр тооцоолсон өндрийг харуулах # inkyphat.text ((t1, 80), aText, inkyphat. BLACK, font2) # inkyphat.text ((t2, 80), (alt + "m"), inkyphat. BLACK, font2) inkyphat.show () time.sleep (51) # Дараагийн хэмжилт хийхээс өмнө хэдэн секунд хүлээх хэрэгтэй, мөчлөг тутамд +19 сек inkyphat.clear () # хоосон Inky pHAT харуулах процедур, inkyphat.show () # crontab хувилбарын хувьд чимээгүй байдал
Алхам 5: BMP280 скрипт
BMP280 нь BME280 мэдрэгчтэй маш төстэй боловч температур, даралтыг хэмждэг. Скриптүүд нь хоорондоо маш төстэй боловч танд өөр өөр Circuit Python номын сан хэрэгтэй. Энд чийгшлийн оронд жишиг даралт дээр үндэслэн тооцоолсон өндрийг харуулна.
Скриптийг хавсаргасан болно.
Зөвлөмж болгож буй:
ESP8266 ба ESP32 DIY ашигладаг мэргэжлийн цаг уурын станц: 9 алхам (зурагтай)
ESP8266 ба ESP32 DIY ашигладаг мэргэжлийн цаг уурын станц: LineaMeteoStazione бол Sensirion -ийн мэргэжлийн мэдрэгч, Дэвис багажны зарим бүрэлдэхүүн хэсэг (Rain Gauge, Anemometer) -тай холбогдож болох цаг агаарын бүрэн станц юм.Төсөл нь DIY цаг уурын станцад зориулагдсан боловч зөвхөн шаардлагатай
Хиймэл дагуулын тусламжтайгаар цаг уурын станц: 5 алхам
Хиймэл дагуулын тусламжтай цаг уурын станц: Энэхүү төсөл нь цаг агаарын мэдээллийг өөрсдөө цуглуулах хүсэлтэй хүмүүст зориулагдсан болно. Энэ нь салхины хурд, чиглэл, температур, агаарын чийгшлийг хэмжих боломжтой. Мөн 100 минут тутамд дэлхийг тойрон эргэдэг цаг агаарын хиймэл дагуулыг сонсох чадвартай. Би хүсч байна
NaTaLia цаг уурын станц: Arduino нарны эрчим хүчээр ажилладаг цаг уурын станц зөв замаар хийсэн: 8 алхам (зурагтай)
NaTaLia цаг уурын станц: Arduino нарны эрчим хүчээр ажилладаг цаг уурын станц зөв замаар хийсэн: 1 жилийн турш 2 өөр байршилд амжилттай ажилласны дараа би нарны эрчим хүчээр ажилладаг цаг уурын станцын төслийн төлөвлөгөөгөө хуваалцаж, хэрхэн урт хугацаанд үнэхээр оршин тогтнож чадах систем болж хөгжсөн тухай тайлбарлаж байна. нарны эрчим хүчнээс үүссэн үе. Хэрэв та дагах бол
DIY цаг уурын станц ба WiFi мэдрэгч станц: 7 алхам (зурагтай)
DIY цаг уурын станц ба WiFi мэдрэгч станц: Энэхүү төсөлд би WiFi мэдрэгч станцын хамт цаг агаарын станцыг хэрхэн яаж хийхийг танд үзүүлэх болно. Мэдрэгч станц нь орон нутгийн температур, чийгшлийн өгөгдлийг хэмжиж, WiFi -ээр цаг уурын станц руу илгээдэг. Цаг уурын станц дараа нь
RPi цаг уурын станц ба дижитал цаг: 4 алхам (зурагтай)
RPi цаг уурын станц ба дижитал цаг: Энэ бол хурдан бөгөөд хялбар төсөл бөгөөд үзүүлэх сайхан дэлгэц юм. Энэ нь цаг хугацаа, цаг агаарын нөхцөл байдал, температурыг хоёуланг нь харуулдаг. Хэрэв танд харсан зүйл тань таалагдаж байвал миний хийсэн зүйлийг дагаж мөрдөхийн тулд намайг Instagram, Twitter (@Anders644PI) дээр дагаарай