สารบัญ:

Tweerstationneke A.k.a. Dutch WeatherStation: 4 ขั้นตอน
Tweerstationneke A.k.a. Dutch WeatherStation: 4 ขั้นตอน

วีดีโอ: Tweerstationneke A.k.a. Dutch WeatherStation: 4 ขั้นตอน

วีดีโอ: Tweerstationneke A.k.a. Dutch WeatherStation: 4 ขั้นตอน
วีดีโอ: Dig A Hole, Start A Fire, How To Make Bean Hole Beans Recipe - GardenFork 2024, พฤศจิกายน
Anonim
Tweerstationneke A.k.a. Dutch WeatherStation
Tweerstationneke A.k.a. Dutch WeatherStation

พ่อของฉันสนใจข่าวล่าสุดและข้อมูลสภาพอากาศล่าสุดอยู่เสมอ นั่นนำฉันไปสู่ของขวัญวันเกิดที่สมบูรณ์แบบเมื่อเขาอายุ 76 ปี สถานีตรวจอากาศเล็กๆ ที่เปิดตลอดเวลาโดยไม่มีเรื่องไร้สาระ มันแค่นั่งเงียบๆ อยู่ในมุมทั้งวันและให้สรุปคำทำนายล่าสุด

ได้รับการออกแบบโดยใช้เว็บไซต์ภาษาดัตช์สองแห่ง คุณคงเห็นแล้วว่าในชื่อท้องถิ่นที่ตลกของหัวข้อนี้! หนึ่งให้การคาดการณ์ในท้องถิ่นต่อเมืองทุก ๆ 10 นาทีในรูปแบบ json อีกอันหนึ่งให้การพยากรณ์ฝนในอีกสองชั่วโมงข้างหน้าในรูปแบบข้อความธรรมดาซึ่งมีประโยชน์เสมอที่จะรู้ ฉันแน่ใจว่าถ้าคุณไม่ได้อาศัยอยู่ในเนเธอร์แลนด์ คุณสามารถปรับหัวข้อนี้ให้เข้ากับบริการอื่นๆ ได้อย่างง่ายดาย

เสบียง

  • บอร์ด ESP8266; แนะนำให้ใช้ Wemos D1 mini
  • หน้าจอ TFT 1.8 นิ้ว 128*160 จุด; สี 16 บิต
  • ไม่กี่สาย
  • โปรแกรมตามที่เป็นอยู่หรือเริ่มต้นด้วยการสร้างของคุณเอง
  • กล่องสวยๆใส่ได้หมดครับ ใช้แบบมาตรฐานหรือพิมพ์ของคุณเองพร้อมแนบการออกแบบ

ขั้นตอนที่ 1: สร้างต้นแบบ

สร้างต้นแบบ
สร้างต้นแบบ

กำลังเชื่อมต่อหน้าจอและคอนโทรลเลอร์

ใช้สายแบนเล็กๆ ประสานบอร์ดกับหน้าจอ TFT เข้าด้วยกัน ใช้รายการเชื่อมต่อชิ้นส่วนไอออนอย่างถูกวิธี

หน้าจอ TFT ------------------ WEMOS

LED ------------------------------------- D8 SCK ---------------- --------------- D5SDA ------------------------------ D7A0 -- -------------------------------- D3RESET ----------------- ------------ D2CS ---------------------------------- D4GND --- ------------------------------ GNDVCC --------------------- ---------- 3V3

หรือคุณสามารถวาง LED บน 3v3 แทนพิน D8 ฉันใช้พิน D8 เพื่อให้เครื่องเข้านอนเวลาประมาณ 23:00 น. ตอนกลางคืนและตื่นประมาณ 07:00 น. อีกครั้ง มีผลบังคับใช้ นี่จะเป็นช่วงแรกที่อ่านกระดานข่าวสภาพอากาศหลังจากนั้น เนื่องจากจะอ่านส่วนหัวเพื่อตรวจสอบเวลา ไม่มีนาฬิกาตามเวลาจริงในอุปกรณ์นี้

หากทั้งหมดนี้ใช้งานได้ ให้เสียบสาย usb ของคุณเข้ากับ Wemos และโหลดซอฟต์แวร์ ถ้าทุกอย่างได้ผล คุณสามารถเริ่มสร้างกล่องได้

ขั้นตอนที่ 2: การออกแบบโปรแกรม

การออกแบบโปรแกรม
การออกแบบโปรแกรม

ความคิดของฉันเกี่ยวกับอุปกรณ์สภาพอากาศนี้ที่

  • ปรับให้เข้ากับสภาพแวดล้อม wifi อื่นได้อย่างง่ายดาย
  • แสดงพยากรณ์อากาศและพยากรณ์ฝน
  • ไม่มีปุ่ม
  • ไม่มีเสียง พูดง่ายๆ ไม่คลุมเครือ

ด้วยเหตุนี้ ฉันจึงสร้างโปรแกรมที่ขึ้นต้นด้วยรหัส WifiManager เมื่อไม่พบเครือข่าย Wifi ที่รู้จัก มันสร้างเครือข่ายของตัวเองและแสดงชื่อบนจอแสดงผล ซึ่งเปิดโอกาสให้คุณตั้งค่าพารามิเตอร์ Wifi เป็นเครือข่ายในบ้านของคุณเอง

หลังจากการตั้งค่านี้ จะแสดงการพยากรณ์อากาศและปริมาณน้ำฝนผลัดกันทุกๆ 20 วินาที หากไม่สามารถอ่านการคาดการณ์ครั้งต่อไปได้ด้วยเหตุผลบางประการ หมายเลขข้อผิดพลาดเล็กน้อยจะปรากฏขึ้นที่ด้านขวาของจอแสดงผล และภาพก่อนหน้าจะแสดง ในการเรียกใช้ครั้งต่อไป จะมีการพยายามดึงข้อมูลใหม่

ข้อมูลสภาพอากาศได้รับจากเว็บไซต์ในรูปแบบข้อความ json ข้อมูลในนั้นจะถูกแปลงและบันทึกในตัวแปรส่วนกลาง ด้วยวิธีนี้ เราสามารถแยกการดึงข้อมูลออกจากการแสดงข้อมูลได้ ไม่มีเหตุผลใดที่จะดึงสภาพอากาศได้เร็วกว่าหนึ่งครั้งต่อ 10 นาที

การรับฝนเป็นเรื่องง่ายยิ่งขึ้น ให้บริการในรูปแบบข้อความธรรมดาโดยคาดว่าปริมาณฝนจะอยู่ที่ 0.2..255; แถบแนวตั้ง เวลาในแต่ละบรรทัด ทุกๆ 5 นาที ในอีก 2 ชั่วโมงข้างหน้า ค่าปริมาณน้ำฝนถูกส่งด้วยวิธีที่ชาญฉลาด โดยที่ค่าขนาดเล็กจะให้พื้นที่มากขึ้นในการแสดงความแตกต่างเป็นค่าที่มากขึ้น สูตรที่ใช้มีดังนี้

mmhour = รอบ(pow(10, (ค่าน้ำฝน - 109) / 32) * 10) / 10;

โปรดทราบว่า "คูณ 10 หารด้วย 10" เป็นกลอุบายเพื่อให้แน่ใจว่าเรามีทศนิยม 1 ตำแหน่งหลังจุด ขึ้นอยู่กับปริมาณน้ำฝนสูงสุดที่คาดการณ์ไว้ในอีก 2 ชั่วโมงข้างหน้า มี 3 มาตราส่วนที่ใช้สำหรับกราฟ

  1. คาดหวังสูงสุด 5 มม./ชม.
  2. คาดหวังสูงสุด 20 มม./ชม.
  3. Max นำมาจากค่าสูงสุดในการพยากรณ์

ในเนเธอร์แลนด์ มูลค่าสูงสุดเป็นประวัติการณ์อยู่ที่ 80 มม./ชม. ดังนั้นมาตราส่วนนี้จะสมบูรณ์แบบ สำหรับประเทศอื่น ๆ อาจเป็นการดีที่จะเปลี่ยนแปลงสิ่งนี้

ขั้นตอนที่ 3: รหัสโปรแกรม

รหัสโปรแกรม
รหัสโปรแกรม

การตั้งค่าตัวแก้ไข

ซอฟต์แวร์สำหรับอุปกรณ์สภาพอากาศนี้สร้างขึ้นในสภาพแวดล้อมการเขียนโปรแกรม Arduino คุณจะพบมันที่แนบมาที่นี่เพื่อความสะดวกของคุณ ใช้มันตามที่เป็นอยู่; หรือเปลี่ยนให้เหมาะกับความต้องการของคุณ ข้อความทั้งหมดที่สามารถแสดงที่หน้าจอ TFT นั้นถูกกำหนดไว้ที่ด้านบนของโปรแกรม ซึ่งหมายความว่าคุณสามารถเปลี่ยนเป็นภาษาของคุณเองได้อย่างง่ายดายหากต้องการ ฉันใช้ Wemos D1 mini แต่บอร์ดที่คล้ายกันก็ใช้ได้เช่นกัน

ในสภาพแวดล้อม Arduino ฉันใช้การตั้งค่าต่อไปนี้

  • บอร์ด: LOLIN(WEMOS) D1 RA & Mini
  • ความเร็วในการอัพโหลด: 115200
  • ความถี่ซีพียู: 80 MHz
  • ขนาดแฟลช: 4M (ไม่มี SPIFFS) V2 ปิดการใช้งานหน่วยความจำล่าง

ตัวจับเวลาซอฟต์แวร์ใช้เพื่อทำให้การวนซ้ำ () ง่ายขึ้นและอ่านง่ายขึ้น การแสดงข้อมูลแยกออกจากการดาวน์โหลดข้อมูล ด้วยวิธีนี้เราสามารถใช้ขนาดหน้าจออื่น ฯลฯ โดยไม่ต้องเปลี่ยนโปรแกรมทั้งหมด

ใช้ไฟล์.ino และโหลดในโปรแกรมแก้ไข Arduino ตั้งค่าบอร์ดของคุณในเครื่องมือแก้ไข แนบไฟล์ส่วนหัวเพื่อให้แน่ใจว่าอาร์เรย์ PROGMEM สไตล์ C ที่จำเป็นจะรวมอยู่ในโปรแกรม

การ์ด SD

โปรดทราบว่าจอแสดงผล 1.8 นิ้วที่มีอยู่ส่วนใหญ่จะมีช่องเสียบการ์ด SD ที่ด้านหลังของหน้าจอ นี่เป็นคุณสมบัติที่ดีที่ช่วยให้คุณจัดเก็บภาพขนาดใหญ่บนการ์ดได้ ไมโครคอนโทรลเลอร์ส่วนใหญ่ไม่มีหน่วยความจำบนบอร์ดมากเกินไปจึงช่วยได้

แม้ว่าฉันจะใช้เวลามากในการพยายามให้การ์ด SD ทำงานกับจอแสดงผล แต่ก็ไม่สามารถทำงานได้ ฉันสามารถใช้จอแสดงผลได้ ดึงไฟล์จากการ์ด SD สำเร็จ แต่หลังจากนั้นก็ไม่สามารถเข้าถึงหน้าจอ TFT ได้อีก การเปลี่ยนไลบรารี การเปลี่ยนลำดับของไลบรารี และ "การเปลื้องผ้า" โปรแกรมให้มีขนาดเล็กที่สุดเพื่อแยกแยะความเป็นไปได้อื่นๆ ไม่ได้ช่วยอะไรฉัน

เพื่อเพิ่มความหงุดหงิดของฉัน มีตัวอย่างมากมายบนอินเทอร์เน็ตของผู้คนที่ทำสิ่งที่คล้ายกันโดยมีผลดี อืมม อาจเป็นปัญหาฮาร์ดแวร์บนหน้าจอ TFT ของฉันหรือไม่ หรืออะไรที่ผมคิดไม่ถึง? ข้อเสนอแนะใด ๆ ยินดีต้อนรับสำหรับความพยายามครั้งต่อไป ในตอนท้ายหลังจากใช้เวลาช่วงเย็นกับมัน ฉันตัดสินใจออกจากเส้นทางนั้น เนื่องจากรูปภาพมีขนาดเพียง 50x50 พิกเซล (ซึ่งส่งผลให้แต่ละภาพมีขนาด 5,000 ไบต์ที่สี 16 บิต) ESP จึงสามารถจัดเก็บสิ่งนี้ใน PROGMEM ได้อย่างง่ายดาย นั่นคือเคล็ดลับที่ฉันใช้

การเลือกนี้ส่งผลให้เกิดความท้าทายอีกครั้ง วิธีรับรูปภาพ BMP ที่ฉันมีให้อยู่ในรูปแบบที่อ่านได้ หลังจากการค้นหา ฉันพบไซต์จาก Henning Karlsen ผู้ไขปริศนานี้ก่อนหน้านี้ เขาสร้างโปรแกรมที่แปลงไฟล์ประเภท-p.webp

ขั้นตอนที่ 4: สร้างกล่อง

สร้างกล่อง
สร้างกล่อง
สร้างกล่อง
สร้างกล่อง
สร้างกล่อง
สร้างกล่อง

นี่ไม่ใช่กล่องแรกที่ฉันต้องการ มีกล่องมาตรฐานมากมายจากซัพพลายเออร์ ใช้เลื่อยขนาดเล็ก มีด สว่าน ฯลฯ เพื่อสร้างรูสำหรับแสดงในกล่องได้อย่างง่ายดาย แต่ฉันไม่เคยทำสี่เหลี่ยมสวยๆ ได้เลย อาจมีทักษะและ/หรือความอดทนไม่เพียงพอ;-)

วิธีแก้ปัญหา: ฉันโชคดี ฉันมีวิทยาลัยที่เป็นเหมือนซูเปอร์แมน ถ้าเป็นเรื่องของซอเกี่ยวกับเทคนิค ซึ่งรวมถึงการออกแบบและการพิมพ์ 3 มิติด้วย ดังนั้นเขาจึงตัดสินใจให้เวลาว่างมากมายในการวัดจอแสดงผล TFT และไมโครคอนโทรลเลอร์ และสร้างกล่องรอบๆ เข้ากันดีทุกรูป เชิญชมภาพครับ มันยังประกอบด้วยสแน็ปอินสำหรับจอแสดงผล รูสำหรับขั้วต่อ USB และที่สำหรับแก้ไขไมโครคอนโทรลเลอร์

ขอบคุณ Arjan สำหรับงานที่ยอดเยี่ยมนี้ !!! ยิ่งไปกว่านั้น เขาใจดีที่อนุญาตให้ทุกคนเข้าถึงงานของเขาได้ ดังนั้นหากคุณดาวน์โหลดไฟล์ของเขาจากลิงก์และใช้สำหรับเครื่องพิมพ์ 3 มิติของคุณเอง คุณสามารถสร้างกล่องเดียวกันกับเนื้อหาได้

แนะนำ: