Mục lục:

Đồng hồ thủy triều và thời tiết: 9 bước (có hình ảnh)
Đồng hồ thủy triều và thời tiết: 9 bước (có hình ảnh)

Video: Đồng hồ thủy triều và thời tiết: 9 bước (có hình ảnh)

Video: Đồng hồ thủy triều và thời tiết: 9 bước (có hình ảnh)
Video: Thật Bất Ngờ! Bà NGÔ THỊ MÂN Vợ Của TBT NGUYỄN PHÚ TRỌNG Là Người Như Thế Này #vstt 2024, Tháng mười một
Anonim
Đồng hồ thủy triều và thời tiết
Đồng hồ thủy triều và thời tiết

Mặc dù bạn có thể mua đồng hồ thủy triều tương tự có một kim duy nhất cho biết thủy triều cao hay thấp hoặc ở đâu đó ở giữa, nhưng điều tôi muốn là thứ cho tôi biết thời điểm thủy triều xuống. Tôi muốn thứ gì đó mà tôi có thể xem nhanh mà không cần phải bật, nhấn bất kỳ nút nào hoặc chờ đợi. Và tôi muốn thứ gì đó có thời lượng pin dài. Vì vậy, tôi đã sử dụng bảng TTGO T5, là bảng dựa trên ESP32 với màn hình giấy điện tử 2,13 , được kết nối với chip TTL5110. TPL5110 bật T5 cứ 2,5 giờ một lần và mỗi ngày T5 tải dữ liệu thủy triều xuống từ NOAA và dữ liệu thời tiết từ OpenWeatherMap, hiển thị dữ liệu trên e-paper, sau đó yêu cầu TPL5110 tắt T5.

CẬP NHẬT (ngày 25 tháng 2 năm 2020) Đồng hồ thủy triều đã chạy được một năm nay và pin ở mức 4,00 vôn, vì vậy đồng hồ có thể chạy trong nhiều năm.

Bước 1: Danh sách phần cứng

Bảng TTGO T5 $ 17

Bảng Adafruit TPL5110 $ 5

Bảng kích thước 1/4 Adafruit Perma-Proto (tùy chọn) 0,71 đô la (đặt hàng tối thiểu 8,50 đô la)

Pin Li-Poly 1200 mAh $ 10 (hoặc nguồn điện thích hợp khác)

Cáp 2 chân JST PH - Đầu đực $ 0,75

Tụ điện 220 uF

Bước 2: Công cụ

Hàn sắt

Dụng cụ tuốt dây

Bộ sạc pin Li-Po, chẳng hạn như thế này.

Bước 3: Lắp ráp phần cứng

Lắp ráp phần cứng
Lắp ráp phần cứng
Lắp ráp phần cứng
Lắp ráp phần cứng
Lắp ráp phần cứng
Lắp ráp phần cứng

Việc lắp ráp phần cứng khá đơn giản như sơ đồ cho thấy. Tôi đã sử dụng một bảng proto Adafruit Perma giống như một bảng mạch thông thường ngoại trừ nó được bố trí như một bảng mạch bánh mì, với các kết nối điện tương tự như một bảng mạch bánh mì, điều đó thật tuyệt. Vì tôi chỉ cần một vài mối nối và muốn lắp cả cụm vào một chiếc hộp nhỏ, tôi đã cắt một trong các tấm ván thành phần tư bằng một bánh xe cắt Dremel.

Tụ điện 220 uF rất quan trọng. Nếu không có nó, TPL5110 sẽ không bao giờ bật T5. Có một chút không rõ tại sao, nhưng những người khác sử dụng TPL5110 cũng gặp phải vấn đề tương tự. Có lẽ ESP32 thu hút nhiều dòng điện hơn khi khởi động so với TTL5110 có thể cung cấp?

Đừng làm cứng pin. Sử dụng cáp JST-PH để bạn có thể ngắt kết nối pin để sạc. Có thể có cách sạc pin từ T5 trở lại thông qua TPL5110 nếu TPL5110 "bật", nhưng tôi không thể đảm bảo kỹ thuật đó.

Tôi đã làm một hộp gỗ làm vỏ bọc, nhưng bất kỳ thứ gì có kích thước bên trong tối thiểu là 1,5 "x 2,75" x 1 "sẽ hoạt động.

Bước 4: Điều chỉnh thời gian

Bo mạch TPL5110 có một chiết áp cắt đặt khoảng thời gian TPL5110 hoạt động. Sử dụng một tuốc nơ vít nhỏ để xoay ngược chiều kim đồng hồ. Trên bảng của tôi, điều này đặt khoảng thời gian là 145 phút, thực sự nhiều hơn so với mức tối đa được chỉ định là 120 phút, nhưng nó hoạt động và nhất quán và sẽ tiết kiệm điện hơn so với thức dậy sau mỗi 120 phút, vì vậy tôi đã sử dụng nó. Bạn không cần phải biết chính xác khoảng thời gian, vì mục tiêu chỉ là tải dữ liệu xuống khoảng một lần mỗi ngày vào khoảng 4 giờ sáng. Bạn có thể chỉ định khoảng thời gian (ví dụ: 145 phút) và thời gian thức dậy (ví dụ: 4 giờ sáng) trong env_config.h.

(Nếu bạn muốn kiểm soát thời gian tốt hơn cho một số dự án khác, bo mạch TPL5110 có một dấu vết ở mặt sau, bạn có thể cắt để vô hiệu hóa chiết áp. Sau đó, bạn gắn một điện trở vào chân Delay và điện trở sẽ xác định khoảng thời gian, theo biểu đồ này.)

Bước 5: Phần mềm

Bạn sẽ cần Arduino IDE với gói ESP32. Trong IDE, đặt bảng của bạn thành "Mô-đun nhà phát triển ESP32".

Bản phác thảo có sẵn tại https://github.com/jasonful/Tides và yêu cầu 3 thư viện:

  1. "Trạm thời tiết ESP8266", có sẵn từ Trình quản lý thư viện Arduino (hoặc tại đây). Bạn sẽ chỉ cần 6 tệp này: ESPHTTPClient.h, ESPWiFi.h, OpenWeatherMapCurrent.cpp, OpenWeatherMapCurrent.h, OpenWeatherMapForecast.cpp, OpenWeatherMapForecast.h và có thể xóa phần còn lại.
  2. "Json Streaming Parser" có sẵn từ Trình quản lý Thư viện Arduino (hoặc tại đây)
  3. https://github.com/LilyGO/TTGO-Epape-T5-V1.8/tree/master/epa2in13-demo Mặc dù mã không được đóng gói như một thư viện thực sự, bạn chỉ có thể sao chép nó trong thư mục thư viện của mình và bao gồm nó.

Bước 6: Định cấu hình phần mềm

Có một số tham số bạn sẽ phải đặt (và một số tham số bạn có thể muốn đặt) trong tệp env_config.h, bao gồm:

  • WiFi SSID và mật khẩu
  • Id trạm NOAA (nói cách khác, bạn đang ở đâu)
  • OpenWeatherMap AppID mà bạn cần đăng ký (dễ dàng và miễn phí)
  • OpenWeatherMap LocationID (một lần nữa, bạn đang ở đâu)
  • CONFIG_USE_TPL5110, cho phép bạn sử dụng T5 mà không cần TPL5110. Thay vào đó, phần mềm sẽ vào chế độ ngủ sâu. Bảng T5 vẽ được khoảng 8 ma khi ngủ sâu, vì vậy tôi chỉ hy vọng pin sẽ kéo dài vài ngày.

Bước 7: Cách phần mềm hoạt động

(Bạn có thể bỏ qua phần này nếu bạn không quan tâm.)

Mục tiêu là thức dậy mỗi ngày một lần, nhưng vì khoảng thời gian tối đa của TPL5110 chỉ là 2 giờ hoặc lâu hơn, nên T5 phải thức dậy thường xuyên hơn. Vì vậy, sau khi tải xuống dữ liệu thủy triều và thời tiết, nó sẽ tính toán có bao nhiêu khoảng thời gian trong 2 giờ này từ bây giờ đến 4 giờ sáng ngày mai. Điều này hơi phức tạp bởi thực tế là TPL5110 hoàn toàn cắt điện cho T5, điều này tốt cho pin, nhưng nó có nghĩa là chúng tôi mất RAM và đồng hồ thời gian thực. Nó giống như thức dậy mỗi sáng với chứng hay quên. Vì vậy, để tìm ra bây giờ là mấy giờ, nó trích xuất nó từ tiêu đề HTTP của NOAA. Và để nhớ còn lại bao nhiêu khoảng thời gian 2 giờ, nó ghi số đếm đó vào bộ nhớ không bay hơi (flash). Mỗi khi thức dậy, nó sẽ kiểm tra bộ đếm đó, giảm số lượng, lưu trữ và nếu nó lớn hơn 0, nó ngay lập tức gửi tín hiệu đến TPL51110 ("Xong") để yêu cầu nó chuyển sang chế độ ngủ. Khi bộ đếm chạm 0, mã sẽ tải xuống dữ liệu mới, đồng thời tính toán lại và đặt lại bộ đếm.

Bước 8: Chạy nó

Chạy nó
Chạy nó

Đảm bảo công tắc ở bên trái của T5 ở vị trí lên (bật), tải bản phác thảo lên T5 và trong vòng vài giây, màn hình sẽ cập nhật thông tin về thủy triều và thời tiết.

Nếu bạn cần gỡ lỗi phần mềm, hãy thay đổi "#define DEBUG 0" ở đầu Tides.ino thành "#define DEBUG 1". Thao tác này sẽ bật đầu ra gỡ lỗi nối tiếp và cũng hiển thị ở cuối e-paper số lần khởi động lại còn lại trước khi tải xuống dữ liệu mới và thời gian tải dữ liệu xuống lần cuối.

Bước 9: Định hướng trong tương lai

  1. Việc sử dụng TPL5110 kết hợp với màn hình e-paper là một cách tuyệt vời để hiển thị bất kỳ dữ liệu nào không thay đổi thường xuyên, với thời lượng pin tuyệt vời.
  2. Khi tôi thiết kế cái này, tôi đã cân nhắc sử dụng TrigBoard, đây là một bảng ESP8266 với TPL5111 trên bo mạch. Nó sẽ yêu cầu phải có một màn hình e-paper riêng biệt và bảng điều khiển e-paper như thế này hoặc thế này. Hoặc combo driver + board như thế này hoặc thế này. Để chuyển mã sang ESP8266, tôi nghĩ mã SSL sẽ phải sử dụng dấu vân tay thay vì chứng chỉ và mã lưu trữ không bay hơi sẽ cần sử dụng bộ nhớ EEPROM hoặc RTC.
  3. Gần đây tôi nghe nói rằng bo mạch Lolin32 khá ổn ở chế độ ngủ sâu: khoảng 100uA. Không tốt bằng bảng TPL51110 (20uA theo Adafruit) nhưng đủ tốt.
  4. OpenWeatherMap trả về nhiều dữ liệu thời tiết hơn tôi đang hiển thị. Bao gồm id biểu tượng, yêu cầu tìm các biểu tượng đơn sắc ở đâu đó.

Đề xuất: