สารบัญ:

นาฬิกาน้ำขึ้นน้ำลงและสภาพอากาศ: 9 ขั้นตอน (พร้อมรูปภาพ)
นาฬิกาน้ำขึ้นน้ำลงและสภาพอากาศ: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: นาฬิกาน้ำขึ้นน้ำลงและสภาพอากาศ: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: นาฬิกาน้ำขึ้นน้ำลงและสภาพอากาศ: 9 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: ธรณีสูบ น้ำหายเกลี้ยงทั้งบ่อ ปลานับหมื่นหายวับ 2024, พฤศจิกายน
Anonim
นาฬิกาน้ำขึ้นน้ำลงและสภาพอากาศ
นาฬิกาน้ำขึ้นน้ำลงและสภาพอากาศ

แม้ว่าคุณจะสามารถซื้อนาฬิกาบอกเวลาน้ำแบบแอนะล็อกที่มีเข็มเพียงข้างเดียวที่บ่งบอกว่าน้ำขึ้นหรือลงหรืออยู่ที่ไหนสักแห่งในระหว่างนั้น สิ่งที่ฉันต้องการคือสิ่งที่บอกฉันว่าเวลาน้ำลงจะเป็นอย่างไร ฉันต้องการบางอย่างที่สามารถดูได้อย่างรวดเร็วโดยไม่ต้องเปิดเครื่อง กดปุ่มใดๆ หรือรอ และฉันต้องการบางอย่างที่มีอายุการใช้งานแบตเตอรี่ยาวนาน ดังนั้นฉันจึงใช้บอร์ด TTGO T5 ซึ่งเป็นบอร์ดที่ใช้ ESP32 พร้อมจอแสดงผลกระดาษอิเล็กทรอนิกส์ขนาด 2.13 นิ้ว เชื่อมต่อกับชิป TTL5110 TPL5110 จะเปิด T5 ทุกๆ 2.5 ชั่วโมง และ T5 จะดาวน์โหลดข้อมูลน้ำขึ้นน้ำลงวันละครั้ง ข้อมูล NOAA และสภาพอากาศจาก OpenWeatherMap แสดงข้อมูลบน e-paper จากนั้นบอกให้ TPL5110 ปิด T5

UPDATE (25 ก.พ. 2020) นาฬิกาน้ำขึ้นน้ำลงทำงานมาหนึ่งปีแล้ว และแบตเตอรี่อยู่ที่ 4.00 โวลต์ ดังนั้นนาฬิกาจึงสามารถทำงานได้หลายปี

ขั้นตอนที่ 1: รายการฮาร์ดแวร์

บอร์ด TTGO T5 $17

Adafruit TPL5110 กระดาน $5

Adafruit Perma-Proto ขนาดไตรมาส (อุปกรณ์เสริม) 0.71 ดอลลาร์ (สั่งซื้อขั้นต่ำ 8.50 ดอลลาร์)

แบตเตอรี่ Li-Poly 1200 mAh $10 (หรือแหล่งพลังงานอื่นที่เหมาะสม)

สายเคเบิล 2 พิน JST PH – หัวต่อตัวผู้ $0.75

ตัวเก็บประจุ 220 ยูเอฟ

ขั้นตอนที่ 2: เครื่องมือ

หัวแร้ง

เครื่องปอกสายไฟ

เครื่องชาร์จแบตเตอรี่ Li-Po เช่นนี้

ขั้นตอนที่ 3: ประกอบฮาร์ดแวร์

ประกอบฮาร์ดแวร์
ประกอบฮาร์ดแวร์
ประกอบฮาร์ดแวร์
ประกอบฮาร์ดแวร์
ประกอบฮาร์ดแวร์
ประกอบฮาร์ดแวร์

การประกอบฮาร์ดแวร์นั้นค่อนข้างง่ายตามที่แสดงแผนผัง ฉันใช้บอร์ด Adafruit Perma-proto ซึ่งเหมือนกับโปรโตบอร์ดทั่วไป ยกเว้นว่ามันถูกจัดวางเหมือนเขียงหั่นขนม โดยมีการเชื่อมต่อทางไฟฟ้าเหมือนกับเขียงหั่นขนม ซึ่งดีมาก เนื่องจากฉันต้องการการเชื่อมต่อเพียงเล็กน้อย และต้องการประกอบชิ้นส่วนทั้งหมดลงในกล่องขนาดเล็ก ฉันจึงตัดแผ่นไม้แผ่นหนึ่งเป็นสี่ส่วนด้วยล้อตัด Dremel

ตัวเก็บประจุ 220 ยูเอฟมีความสำคัญมาก หากไม่มีสิ่งนี้ TPL5110 จะไม่เปิด T5 เลย ไม่ชัดเจนว่าทำไม แต่คนอื่นที่ใช้ TPL5110 ก็มีปัญหาเดียวกัน บางที ESP32 อาจดึงกระแสข้อมูลเมื่อเริ่มต้นมากกว่าที่ TTL5110 สามารถจัดหาได้?

อย่าเดินสายแบตเตอรี่ ใช้สาย JST-PH เพื่อถอดแบตเตอรี่ออกเพื่อชาร์จ อาจมีวิธีชาร์จแบตเตอรี่จาก T5 กลับผ่าน TPL5110 หาก TPL5110 "เปิด" แต่ฉันไม่สามารถรับรองเทคนิคนั้นได้

ฉันทำกล่องไม้เป็นตู้ แต่ทุกอย่างที่มีขนาดภายในขั้นต่ำ 1.5" x 2.75" x 1" ก็ใช้ได้

ขั้นตอนที่ 4: ปรับแต่ง Timing

บอร์ด TPL5110 มีโพเทนชิออมิเตอร์แบบทริมที่ตั้งค่าช่วงเวลาที่ TPL5110 เริ่มทำงาน ใช้ไขควงเล็กๆ หมุนทวนเข็มนาฬิกาจนสุด บนกระดานของฉัน การตั้งค่านี้กำหนดช่วงเวลาเป็น 145 นาที ซึ่งจริง ๆ แล้วเกินขีดจำกัดสูงสุด 120 นาที แต่ใช้งานได้และสม่ำเสมอ และจะประหยัดพลังงานได้มากกว่าการตื่นทุกๆ 120 นาที ดังนั้นฉันจึงใช้มัน คุณไม่จำเป็นต้องรู้ช่วงเวลาอย่างแม่นยำ เนื่องจากเป้าหมายคือการดาวน์โหลดข้อมูลประมาณวันละครั้งประมาณตี 4 โดยประมาณเท่านั้น คุณสามารถระบุช่วงเวลา (เช่น 145 นาที) และเวลาปลุก (เช่น 04.00 น.) ใน env_config.h

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

ขั้นตอนที่ 5: ซอฟต์แวร์

คุณจะต้องใช้ Arduino IDE พร้อมแพ็คเกจ ESP32 ใน IDE ให้ตั้งค่าบอร์ดของคุณเป็น "ESP32 Dev Module"

สามารถดูแบบร่างได้ที่ https://github.com/jasonful/Tides และต้องใช้ 3 ไลบรารี:

  1. "ESP8266 Weather Station" มีอยู่ใน Arduino Library Manager (หรือที่นี่) คุณจะต้องใช้ 6 ไฟล์เหล่านี้เท่านั้น: ESPHTTPClient.h, ESPWiFi.h, OpenWeatherMapCurrent.cpp, OpenWeatherMapCurrent.h, OpenWeatherMapForecast.cpp, OpenWeatherMapForecast.h และสามารถลบส่วนที่เหลือได้
  2. "Json Streaming Parser" มีให้จาก Arduino Library Manager (หรือที่นี่)
  3. https://github.com/LilyGO/TTGO-Epape-T5-V1.8/tree/master/epa2in13-demo แม้ว่าโค้ดจะไม่ได้จัดเป็นไลบรารี่จริง คุณก็สามารถคัดลอกมันไว้ใต้ไดเร็กทอรีไลบรารีของคุณและรวม มัน.

ขั้นตอนที่ 6: กำหนดค่าซอฟต์แวร์

มีพารามิเตอร์หลายตัวที่คุณจะต้องตั้งค่า (และอีกสองสามตัวที่คุณอาจต้องการตั้งค่า) ในไฟล์ env_config.h ได้แก่:

  • WiFi SSID และรหัสผ่าน
  • รหัสสถานี NOAA (กล่าวคือคุณอยู่ที่ไหน)
  • OpenWeatherMap AppID ซึ่งคุณจะต้องลงทะเบียน (ง่ายและฟรี)
  • OpenWeatherMap LocationID (อีกครั้ง คุณอยู่ที่ไหน)
  • CONFIG_USE_TPL5110 ซึ่งช่วยให้คุณใช้ T5 ได้โดยไม่ต้องใช้ TPL5110 ซอฟต์แวร์จะเข้าสู่โหมดสลีปลึกแทน บอร์ด T5 ใช้พลังงานประมาณ 8 mA ในการนอนหลับสนิท ดังนั้นฉันคาดว่าแบตเตอรี่จะใช้งานได้ไม่กี่วันเท่านั้น

ขั้นตอนที่ 7: วิธีการทำงานของซอฟต์แวร์

(คุณสามารถข้ามส่วนนี้หากคุณไม่สนใจ)

เป้าหมายคือการตื่นวันละครั้ง แต่เนื่องจากช่วงเวลาสูงสุดของ TPL5110 คือเพียง 2 ชั่วโมงหรือมากกว่านั้น T5 จึงต้องตื่นบ่อยขึ้น ดังนั้นหลังจากที่ดาวน์โหลดข้อมูลน้ำขึ้นน้ำลงและสภาพอากาศแล้ว ระบบจะคำนวณว่าช่วงเวลา 2 ชั่วโมงนี้มีกี่ช่วงระหว่างตอนนี้ถึง 04:00 น. เช้าวันพรุ่งนี้ สิ่งนี้ซับซ้อนเล็กน้อยจากข้อเท็จจริงที่ว่า TPL5110 ตัดพลังงานให้กับ T5 โดยสิ้นเชิง ซึ่งดีสำหรับแบตเตอรี่ แต่หมายความว่าเราสูญเสีย RAM และนาฬิกาแบบเรียลไทม์ เหมือนตื่นมาทุกเช้าด้วยความจำเสื่อม ดังนั้นหากต้องการทราบว่าขณะนี้เป็นเวลาเท่าไร ระบบจะดึงข้อมูลดังกล่าวออกจากส่วนหัว HTTP ของ NOAA และเพื่อจำว่าเหลือเวลาอีก 2 ชั่วโมงเท่าใด ระบบจึงเขียนตัวนับหน่วยเก็บข้อมูลแบบไม่ลบเลือน (แฟลช) ทุกครั้งที่มันตื่น มันจะตรวจสอบตัวนับนั้น ลดค่า จัดเก็บ และถ้ามันมากกว่าศูนย์ มันจะส่งสัญญาณไปที่ TPL51110 ("เสร็จสิ้น") เพื่อบอกให้เครื่องเข้าสู่โหมดสลีปทันที เมื่อตัวนับถึงศูนย์ โค้ดจะดาวน์โหลดข้อมูลใหม่ และคำนวณใหม่และรีเซ็ตตัวนับ

ขั้นตอนที่ 8: เรียกใช้มัน

Run It
Run It

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

หากคุณต้องการดีบักซอฟต์แวร์ ให้เปลี่ยน "#define DEBUG 0" ที่ด้านบนสุดของ Tides.ino เป็น "#define DEBUG 1" การดำเนินการนี้จะเปิดเอาต์พุตการดีบักแบบอนุกรม และยังแสดงจำนวนการรีสตาร์ทที่เหลืออยู่ที่ด้านล่างสุดของ e-paper ก่อนที่จะดาวน์โหลดข้อมูลใหม่ และเวลาที่ดาวน์โหลดข้อมูลครั้งล่าสุด

ขั้นตอนที่ 9: ทิศทางในอนาคต

  1. การใช้ TPL5110 ร่วมกับจอแสดงผล e-paper เป็นวิธีที่ยอดเยี่ยมในการแสดงข้อมูลที่ไม่เปลี่ยนแปลงบ่อย พร้อมอายุการใช้งานแบตเตอรี่ที่ยอดเยี่ยม
  2. เมื่อฉันออกแบบสิ่งนี้ ฉันคิดว่าจะใช้ TrigBoard ซึ่งเป็นบอร์ด ESP8266 ที่มี TPL5111 อยู่บนบอร์ด มันจะต้องได้รับจอแสดงผล e-paper แยกต่างหากและบอร์ดควบคุม e-paper แบบนี้หรือแบบนี้ หรือคอมโบไดรเวอร์+บอร์ดแบบนี้ก็ได้ ในการย้ายรหัสไปที่ ESP8266 ฉันคิดว่ารหัส SSL จะต้องใช้ลายนิ้วมือแทนใบรับรอง และรหัสการจัดเก็บแบบไม่ลบเลือนจะต้องใช้หน่วยความจำ EEPROM หรือ RTC
  3. ฉันเพิ่งได้ยินมาว่าบอร์ด Lolin32 นั้นค่อนข้างดีในโหมดหลับลึก: ประมาณ 100uA ไม่ดีเท่าบอร์ด TPL51110 (20uA ตาม Adafruit) แต่ก็ดีพอ
  4. OpenWeatherMap ส่งคืนข้อมูลสภาพอากาศมากกว่าที่ฉันแสดง รวมถึงรหัสไอคอนซึ่งจะต้องค้นหาไอคอนขาวดำที่ใดที่หนึ่ง

แนะนำ: