สารบัญ:
- ขั้นตอนที่ 1: Gen 1 - สถานีตรวจอากาศ Pi กล่องอาหารกลางวัน
- ขั้นตอนที่ 2: Gen 2 - จอภาพ HDMI + Laser Cut Plexiglass Arcade Case
- ขั้นตอนที่ 3: การตั้งค่า Pi
- ขั้นตอนที่ 4: รหัสที่มา
- ขั้นตอนที่ 5: อัปเดตเมตริก
วีดีโอ: Raspberry Pi Internet Weather Station: 5 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
*** อัปเดต ***
คำแนะนำนี้ล้าสมัย บริการสภาพอากาศสำหรับข้อมูลสภาพอากาศที่ใช้ในคำแนะนำนี้ใช้งานไม่ได้อีกต่อไป อย่างไรก็ตาม มีโครงการทางเลือกที่ทำสิ่งเดียวกันโดยพื้นฐาน (ดีกว่าเท่านั้น - คำแนะนำนี้เป็นเพียงการแฮ็คเสมอ) นี่คือลิงค์ที่คุณต้องการติดตาม:
https://piweatherrock.technicalissues.us/
ขอบคุณมากไปที่ Gene Liverman ที่ PiWeatherRock เพื่อรับเสื้อคลุมในโครงการนี้
คำแนะนำนี้จะแสดงวิธีสร้างสถานีตรวจอากาศบนอินเทอร์เน็ต Raspberry Pi ที่ยอดเยี่ยมจริงๆ อันที่จริงการเรียกอาคารนี้ว่า "สถานีตรวจอากาศ" นั้นค่อนข้างจะอยู่ภายใต้คำสั่ง โครงสร้างนี้สามารถขยายได้อย่างง่ายดายเพื่อให้มากกว่าแค่สภาพอากาศ อย่างไรก็ตาม มันเป็นการเริ่มต้นที่ดีและดูดีจริงๆ บนโต๊ะทำงานของฉัน
ครอบครัวของเรา (โอเค ส่วนใหญ่เป็นฉัน) มีความสุขกับการใช้ iPad สำหรับครอบครัวบนเคาน์เตอร์ครัว เมื่อไม่ได้ใช้งาน โดยจะแสดงสภาพอากาศภายนอกในปัจจุบันอย่างเงียบๆ อย่างไรก็ตาม การโหลดและถอด iPad เข้าและออกจากกล่องใส่อาร์เคดเป็นเรื่องที่ลำบาก นอกจากนี้ เมื่อฉันไปดูสภาพอากาศ ฉันพบว่ามีคนเอา iPad / weather display ไป สิ่งที่จำเป็นคือจอแสดงผลบนเคาน์เตอร์แบบถาวรที่เด็กๆ จะไม่ต้องรูดเหมือน iPad
ขั้นตอนที่ 1: Gen 1 - สถานีตรวจอากาศ Pi กล่องอาหารกลางวัน
ความคิดแรกของฉันคือการใช้จอแสดงผลวิดีโอคอมโพสิตเล็กน้อย ฉันเลือกอันในภาพบนอีเบย์ในราคา $22 bucks - เพียงแค่ค้นหา "4.3 Inch TFT LCD Car Rear View Monitor Car Monitor" จอแสดงผลมีความละเอียด 656 x 416 พิกเซลที่รายงานซึ่งทำให้การแสดงข้อมูลที่เป็นประโยชน์มากมายเป็นสิ่งที่ท้าทาย! จอแสดงผลต้องการ 12Vdc เป็นแรงดันไฟฟ้า แน่นอนว่า Raspberry Pi ต้องการ 5Vdc เป็นแรงดันไฟฟ้า เพื่อแก้ปัญหานี้ ฉันซื้อที่ชาร์จในรถแบบ USB ราคาถูกจาก Amazon ประมาณ $ 6 bucks ฉันพบตัวเปลี่ยนรถ 5Vdc by 2 Amp ดังนั้นกล่องอาหารกลางวันจึงมีแหล่งจ่ายไฟหูดที่ผนัง 12Vdc ภายนอก 12Vdc จ่ายไฟให้กับจอแสดงผลโดยตรง 12Vdc ยังไปที่เครื่องชาร์จในรถยนต์ USB ซึ่งลดแรงดันไฟฟ้าลงเป็น 5Vdc ที่ได้รับการควบคุม ในการแฮ็กครั้งสุดท้าย ฉันบัดกรีสายไฟหนึ่งคู่ระหว่างที่ชาร์จในรถกับ Raspberry Pi โดยตรง ไม่ใช่ความคิดที่ดีที่สุดของฉัน
แม้ว่าทุกอย่างจะได้ผล แต่ฉันก็ไม่ค่อยพอใจกับคุณภาพของวิดีโอบนจอแสดงผลแบบคอมโพสิต แบบอักษรขนาดเล็กบนจอแสดงผลคลุมเครือมากกว่าที่ฉันต้องการ นอกจากนี้ในขณะที่กล่องอาหารกลางวันในตอนแรกดูน่ารักในเวลาต่อมา
ขั้นตอนที่ 2: Gen 2 - จอภาพ HDMI + Laser Cut Plexiglass Arcade Case
กลับมาที่ eBay ฉันพบจอภาพแบบเปิดเฟรม HDMI ราคา $54 ดอลลาร์ที่ดูดีพร้อมความละเอียด 800x600 ตามคำนิยาม กรอบเปิดทุกอย่างจำเป็นต้องมีกรอบในการติดตั้ง เนื่องจากความน่ารักของกล่องอาหารกลางวันได้หมดลงแล้ว จึงถึงเวลาที่อะคริลิกคัทด้วยเลเซอร์ พื้นที่แฮ็กเกอร์ในพื้นที่ของฉัน i3Detroit มีเครื่องตัด 150 วัตต์ที่ดีจริงๆ ที่สามารถทำเนื้อสับของอะคริลิก 4.5 มม.
ฉันใช้ตู้อาร์เคดของฉันอย่างหลวม ๆ บนกล่องอาร์เคดของ iPad ถ้าฉันเคยทำการออกแบบ Gen 3 มันจะรวมถาดที่ถอดออกได้ / เลื่อนออกสำหรับ Pi อย่างท้าทาย ปรากฎว่ามันเป็นความเจ็บปวดครั้งใหญ่ที่คอในการพยายามเสียบของเข้าและออกจาก Pi เนื่องจากไม่มีที่ว่างระหว่าง Pi กับผนังด้านข้างมากนัก
จอภาพ HDMI ยังต้องการฟีด 12Vdc ดังนั้นฉันจึงใช้เคล็ดลับเดียวกันกับการใช้ที่ชาร์จในรถยนต์แบบ USB อีกครั้ง อย่างไรก็ตาม คราวนี้ฉันตัดสาย USB เก่าออก ดังนั้นจึงไม่จำเป็นต้องใช้สายบัดกรีบน Pi
หากใครสนใจเคสเกมอาร์เคด คอมเม้นไว้ด้านล่างได้เลยครับ ผมจะได้อัพโหลดไฟล์ DXF ให้ หรือไฟล์อยู่บนเว็บไซต์ของฉันที่ ph-elec.com
ขั้นตอนที่ 3: การตั้งค่า Pi
การตั้งค่า Raspberry Pi ใหม่ด้วยซอฟต์แวร์ที่จำเป็นนั้นไม่ยาก ซอฟต์แวร์ทั้งหมดเขียนด้วยภาษา Python โดยเพิ่มโมดูล Python เพียงโมดูลเดียว โมดูล Python พิเศษเรียกว่า "pywapi" นี่คือลิงค์ที่คุณสามารถดาวน์โหลดโมดูลได้ โมดูลนี้ทำให้ง่ายต่อการรับสภาพอากาศแบบเรียลไทม์จาก Yahoo, Weather.com หรือ NOAA
อย่างแรกเลย นี่คือรายการตรวจสอบเพื่อตั้งค่า Raspberry Pi ดิบ:
- ดาวน์โหลด Raspbian ล่าสุด (Debian Wheezy) เปิดเครื่องรูดเพื่อรับไฟล์.img
- เขียนลงในการ์ด SD ด้วย "dd bs=4M if=2014-09-09-wheezy-raspbian.img of=/dev/sdb"
- คำสั่ง dd ใช้เวลาประมาณห้านาที เมื่อเสร็จแล้ว ให้เรียกใช้ "ซิงค์" เพื่อล้างท่อ
- ติดตั้งการ์ด SD ใน Pi และรีบูต ตรวจสอบให้แน่ใจว่ามีการเชื่อมต่ออีเทอร์เน็ตกับ Pi
- ใช้หน้า "อุปกรณ์ที่แนบมา" บนเราเตอร์ ค้นหาที่อยู่ IP ของ Pi ใหม่
- เข้าสู่ระบบ Pi โดยใช้ "ssh [email protected].???" ที่ไหน ??? คือหมายเลข IP จากด้านบน รหัสผ่านจะเป็น "ราสเบอร์รี่"
-
บน Pi ใช้คำสั่ง "raspi-config" เพื่อตั้งค่าเริ่มต้น
- เปิดการบูตอัตโนมัติใน GUI
- ตั้งชื่อโฮสต์เป็นบางอย่างเช่น "MyPi"
-
ติดตั้ง VNC บน Pi ด้วย "sudo apt-get install tightvncserver"
เรียกใช้ "tightvncserver" ซึ่งตั้งรหัสผ่าน
-
กลับไปที่กล่อง Linux ขนาดใหญ่ ใช้ "เดสก์ท็อประยะไกล" เพื่อดูเดสก์ท็อป Pi GUI
- ตั้งค่าโปรโตคอลเป็น "VNC" และหมายเลข IP เป็น "192.168.1.???:1" หมายเหตุ ":1" ที่ส่วนท้ายของหมายเลข IP
- กดปุ่มเชื่อมต่อและป้อนรหัสผ่าน VNC
-
บิงโกเดสก์ท็อป GUI Pi ระยะไกล!
ซึ่งจะช่วยประหยัดการลากจอภาพ คีย์บอร์ด และเมาส์เพื่อเชื่อมต่อกับ Pi ใหม่
- บนเดสก์ท็อป ให้เรียกใช้ไอคอนการตั้งค่า WiFi ตั้งค่า Pi / USB WiFi ใหม่เพื่อเชื่อมต่อกับเครือข่าย
- ปิดการเชื่อมต่อ VNC - ตอนนี้เราทำเดสก์ท็อประยะไกลเสร็จแล้ว
- กลับไปที่หน้าต่าง ssh รีบูต Pi ด้วย "sudo reboot" ถอดสายอีเทอร์เน็ตออกเนื่องจาก WiFi ได้รับการตั้งค่าแล้ว
- กลับไปที่เราเตอร์ที่บ้าน ค้นหาหมายเลข IP ใหม่ที่ Pi ใช้กับ WiFi
- ใช้ ssh กลับเข้าสู่ระบบโดยใช้หมายเลข IP ใหม่ คราวนี้การเชื่อมต่อจะผ่าน WiFi
-
ใช้ตัวจัดการไฟล์บน Linux เชื่อมต่อกับ Pi โดยใช้คำสั่ง "เชื่อมต่อกับเซิร์ฟเวอร์"
ที่อยู่เซิร์ฟเวอร์คือ "sftp://192.168.1.???/home/pi"
- การตั้งค่าพื้นฐานเสร็จสมบูรณ์
ถัดไป จะต้องดาวน์โหลดและติดตั้ง pywapi อีกครั้ง ไม่ยากเกินไปด้วยขั้นตอนต่อไปนี้:
- ดาวน์โหลดล่าสุดได้จากที่นี่ แตกไฟล์เก็บถาวรลงในไดเร็กทอรีใหม่
- ใช้ File Manger คัดลอกไดเร็กทอรีไปยังโฮมไดเร็กทอรี Pi
-
ใช้ ssh ทำสิ่งต่อไปนี้บน Pi:
- cd pywapi-0.3.8
- sudo python setup.py build
- sudo python setup.py ติดตั้ง
- เสร็จแล้ว.
อัปเดต ฉันลืมไปสองอย่าง พูดถึงอีกสองสิ่ง:
-
บน Pi ให้รันคำสั่งต่อไปนี้:
-
sudo apt-get ติดตั้ง avahi-daemon
ซึ่งช่วยให้สามารถเชื่อมต่อกับ Pi โดยใช้ชื่อ ดังนั้น ในคอมพิวเตอร์หลักของคุณ คุณสามารถเชื่อมต่อเป็น "ssh [email protected]" แทนการใช้หมายเลข IP ด้วย Pi หลายตัวในเครือข่าย มันง่ายที่จะทำให้พวกเขาสับสน เว้นแต่จะเรียกชื่อออกมา
-
sudo raspi-config
- ค้นหาและเรียกใช้ตัวเลือกที่ 4 ที่เรียกว่า "Internationalisation Options" และตั้งค่าเขตเวลาของคุณ
- ด้วยการตั้งค่าเขตเวลาและ ntpd (ภูตโปรโตคอลเวลาเครือข่าย) การเรียกใช้ Pi จะแสดงเวลาที่ถูกต้องเสมอภายในสองสามมิลลิวินาที! ต้องรักมัน
-
- ตกลง ตอนนี้เราทำเสร็จแล้วอีกครั้ง
ขั้นตอนที่ 4: รหัสที่มา
ซอร์สโค้ดทั้งหมดสำหรับการแสดงสภาพอากาศเล็กน้อยนี้ใช้ Python, PyGame และ Pywapi ซอฟต์แวร์โอเพ่นซอร์ส / ฟรีทั้งหมด
PyGame ใช้สำหรับทำสิ่ง GUI ทั้งหมด ของวิเศษจริงๆ เมื่อใช้ PyGame จอแสดงผลทั้งหมดจะถูกสร้างขึ้นใหม่หนึ่งครั้งต่อวินาที ใกล้กับด้านบนสุดของซอร์สโค้ดของฉัน คุณจะพบส่วนที่อนุญาตให้ปรับแต่งสำหรับขนาดการแสดงผลต่างๆ มีส่วนหนึ่งสำหรับจอแสดงผลคอมโพสิตขนาดเล็กและส่วนที่สองสำหรับจอแสดงผล HDMI ขนาดใหญ่ ฉันเพียงแค่แสดงความคิดเห็นหนึ่งในสองส่วนตามขนาดการแสดงผลที่ฉันต้องการ
หากต้องการให้ซอร์สโค้ดของฉันทำงาน เพียงแค่เปิดเครื่องรูดไฟล์แนบและคัดลอกไดเร็กทอรีทั้งหมดไปยัง Pi โดยใช้ File Manage เมื่อคัดลอกแล้ว ให้เริ่มโค้ดโดยใช้คำสั่ง ssh ต่อไปนี้:
- cd Weather
- sudo python weather.py
จำเป็นต้องใช้คำสั่ง sudo เพื่อให้ Python สามารถควบคุม / อ่านพิน GPIO อาจมีวิธีแก้ไขข้อ จำกัด นี้ แต่ก็หลีกเลี่ยงฉัน
เมื่อทุกอย่างทำงานโดยใช้ ssh ก็ถึงเวลาที่สภาพอากาศจะเริ่มโดยอัตโนมัติเมื่อรีบูต นี้เป็นเรื่องง่ายมากที่จะทำ
- ใช้ ssh เรียกใช้ "sudo vi /etc/rc.local"
-
ก่อนบรรทัดสุดท้ายซึ่งระบุว่า "exit 0" ให้เพิ่มสิ่งต่อไปนี้ในบรรทัด
- cd /home/pi/สภาพอากาศ
- sudo python weather.py &> err.log
สิ่งนี้จะเริ่มต้นแอปพลิเคชันสภาพอากาศบน Pi โดยอัตโนมัติหลังจากรีบูต หากต้องการปิดในภายหลัง ให้ใช้ ssh เพื่อแก้ไขไฟล์และเพิ่มอักขระความคิดเห็น "#" หน้าทั้งสองบรรทัดแล้วรีบูต
หมายเหตุ ซอร์สโค้ดของฉันเป็นแฮ็คขนาดใหญ่ และฉันก็ไม่ค่อยภูมิใจกับมันเท่าไหร่ อย่างไรก็ตาม ถ้าฉันรอจนกว่ามันจะเรียบร้อย มันก็จะไม่ถูกนำเสนอ เพราะฉะนั้นอย่าร้องไห้เลย เพราะฉันเป็นคนผิวบางมาก
อีกสองสามสิ่งที่ควรทราบเกี่ยวกับรหัสของฉัน ฝังอยู่ในนั้น คุณจะสังเกตเห็นรหัสบางอย่างเพื่อพูดคุยกับอุปกรณ์ X10 นี่เป็นความพยายามของฉันที่จะควบคุมไฟเสาภายนอกที่อยู่ A3 ฉันแค่ต้องการให้โคมไฟเปิดตอนค่ำและปิดตอนรุ่งสาง ดูเหมือนง่ายพอและฉันคิดว่าฉันได้มันทำงาน การใช้ดองเกิล USB-to-RS232 บน Pi ฉันได้เชื่อมต่อโมดูล CM11A X10 CM11A เป็นโมดูลมาโคร X10 แบบเก่า CM11A ยังมีพอร์ต RS232 ที่ช่วยให้สามารถควบคุมบัส X10 ได้ ดูเหมือนว่ายังมีข้อบกพร่องอยู่บ้างเพราะไฟที่เสาไฟไม่ได้รับข้อความ!
นอกจากนี้ โปรดทราบว่าบนจอแสดงผลขนาดใหญ่จะมีช่องว่างเปิดอยู่ทางด้านขวามือของจอแสดงผล แผนของฉันจะเพิ่มไฟสถานะบางส่วนในพื้นที่นั้น ฉันกำลังเล่นกับวิทยุ IEEE802.15.4 และวันหนึ่งเอาต์พุตของพวกเขาจะปรากฏขึ้นในจุดเปิดนั้น
สำหรับข้อมูลอัปเดตล่าสุดและดีที่สุด โปรดเยี่ยมชมเว็บไซต์ของฉันที่ ph-elec.com
แจ้งให้เราทราบในส่วนความคิดเห็นด้านล่างคำถามที่คุณอาจมี
ขอบคุณจิม
โอ้และอย่าลืมลงคะแนนให้ฉัน! ขอบคุณอีกครั้ง.
BTW: มีข้อมูลเพิ่มเติมในเว็บไซต์ของฉันเสมอ: www.ph-elec.com
ขั้นตอนที่ 5: อัปเดตเมตริก
สิ่งที่แนบมาเป็นเวอร์ชันใหม่ที่อนุญาตให้แสดงเมตริกหรืออิมพีเรียล
หวังว่านี่จะช่วยได้
จิม
แนะนำ:
Super Weather Station กระเช้าแขวน: 11 ขั้นตอน (พร้อมรูปภาพ)
Super Weather Station กระเช้าแขวน: สวัสดีทุกคน! ในโพสต์บล็อก T3chFlicks นี้ เราจะแสดงให้คุณเห็นว่าเราทำตะกร้าแขวนอัจฉริยะได้อย่างไร พืชเป็นสิ่งปลูกสร้างที่สดชื่นและมีประโยชน์ต่อบ้านทุกหลัง แต่อาจกลายเป็นสิ่งน่าเบื่อหน่ายได้อย่างรวดเร็ว โดยเฉพาะอย่างยิ่งหากคุณจำแค่ว่าต้องรดน้ำต้นไม้เมื่อคุณ
DIY Weather Station & WiFi Sensor Station: 7 ขั้นตอน (พร้อมรูปภาพ)
DIY Weather Station & WiFi Sensor Station: ในโครงการนี้ ฉันจะแสดงวิธีสร้างสถานีตรวจอากาศพร้อมกับสถานีเซ็นเซอร์ WiFi สถานีเซ็นเซอร์จะวัดอุณหภูมิและความชื้นในพื้นที่ และส่งผ่าน WiFi ไปยังสถานีตรวจอากาศ จากนั้นสถานีตรวจอากาศจะแสดงเ
ทำ DIY Raspberry Pi Weather Station ด้วยซอฟต์แวร์: 7 ขั้นตอน (พร้อมรูปภาพ)
ทำ DIY Raspberry Pi Weather Station ให้สมบูรณ์ด้วยซอฟต์แวร์: ย้อนกลับไปเมื่อปลายเดือนกุมภาพันธ์ฉันเห็นโพสต์นี้ในไซต์ Raspberry Pi http://www.raspberrypi.org/school-weather-station-…พวกเขาได้สร้างสถานีตรวจอากาศ Raspberry Pi สำหรับโรงเรียน ฉันต้องการอย่างใดอย่างหนึ่ง! แต่ในขณะนั้น (และฉันยังเชื่อว่าในขณะที่เขียน
Raspberry Pi Solar Weather Station: 7 ขั้นตอน (พร้อมรูปภาพ)
Raspberry Pi Solar Weather Station: จากความสำเร็จของสองโครงการก่อนหน้าของฉัน นั่นคือ Compact Camera และ Portable Games Console ฉันต้องการค้นหาความท้าทายใหม่ ความก้าวหน้าตามธรรมชาติคือระบบรีโมทกลางแจ้ง… ฉันต้องการสร้างสถานีตรวจอากาศ Raspberry Pi ที่
Acurite 5 in 1 Weather Station โดยใช้ Raspberry Pi และ Weewx (เข้ากันได้กับสถานีตรวจอากาศอื่น ๆ ): 5 ขั้นตอน (พร้อมรูปภาพ)
Acurite 5 in 1 Weather Station โดยใช้ Raspberry Pi และ Weewx (สถานีตรวจอากาศอื่นเข้ากันได้): เมื่อฉันซื้อสถานีตรวจอากาศ Acurite 5 in 1 ฉันต้องการตรวจสอบสภาพอากาศที่บ้านของฉันในขณะที่ฉันไม่อยู่ เมื่อฉันกลับถึงบ้านและตั้งค่า ฉันรู้ว่าฉันต้องเชื่อมต่อจอแสดงผลกับคอมพิวเตอร์หรือซื้อฮับอัจฉริยะ