Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Giới thiệu đầu tiên…
Tôi chế tạo đồng hồ đo ô tô như một sở thích lặp đi lặp lại. Xem https://www.instructables.com/id/Remote-Car-Monit… và https://www.instructables.com/id/Remote-Car-Monit… để biết thêm hai ví dụ gần đây. Tôi đặc biệt thích những cái kết hợp với các bộ phận nguyên bản của xe. Vậy, tại sao cái này lại khác và điều gì đã truyền cảm hứng cho tôi để tạo ra nó. Câu trả lời là hai điều:
1) ESP32 - Tôi muốn thử đứa trẻ mới trên chip khối, đặc biệt là vì chuỗi công cụ dựa trên arduino cho nó đã khá trưởng thành. Một trong những điều thú vị mà ESP32 cho phép là IOT với khả năng wifi và bluetooth tích hợp của nó. Cộng đồng đã viết nhiều thư viện để làm cho điều này trở nên đơn giản (máy chủ web, AP, ứng dụng khách wifi, mDNS, v.v.).
2) Màn hình OLED giá rẻ - Vào năm 2007, tôi đã thực hiện một máy đo bằng cách sử dụng TFT đặt ở vị trí của đồng hồ trên một chiếc WRX GD (2004-2007). TFT có nhiều hương vị khác nhau. Một số hoạt động tốt hơn vào ban đêm, một số hoạt động tốt hơn vào ban ngày, v.v. Nhưng không có cái nào hoạt động trong mọi điều kiện. Tôi không nhận ra lỗi của cách làm của mình cho đến khi một trong những đồng hồ đo tôi sử dụng không có tác dụng trong một ngày nắng đẹp của thành viên diễn đàn. Nhập OLED, tuyệt vời cho các ứng dụng ô tô. Chúng không quá sáng vào ban đêm và (quan trọng hơn) có thể nhìn thấy trong hầu hết các điều kiện ánh sáng mặt trời.
Đây là hướng dẫn hai cho một vì tôi đã viết tất cả mọi thứ cho hai đồng hồ đo ô tô phổ biến, áp suất dầu và áp suất turbo. Về cơ bản, cả hai đều giống nhau: một thước đo hệ số hình thức nhỏ với màn hình OLED tương tự hoạt hình với các con số và mức tối đa rời rạc được hiển thị. Cả hai cũng hoạt động như một AP wifi và máy chủ web. Khi một người kết nối với chúng thông qua máy tính hoặc điện thoại di động, biểu đồ kiểu EKG chuyển động có thể xem được (đây là phần có phần đổi mới).
Quân nhu
Mô-đun HELTEC ESP32 - tải biến thể wifi
Các bộ phận cụ thể của áp suất dầu:
Cảm biến áp suất dầu - Tôi đã sử dụng bộ phận móc nối của cảm biến áp suất dầu automter 5222 - điều này thay đổi tùy theo xe và vị trí lắp đặt. Vui lòng tham khảo hướng dẫn sử dụng dịch vụ, diễn đàn, mechnics, v.v. và thực hiện điều này một cách chính xác để không bị rò rỉ dầu
Các bộ phận cụ thể của máy đo tăng cường:
- Cảm biến áp suất không khí (chỉ khi bạn muốn tạo một đồng hồ đo tăng áp) -
- Ống khí
- T phụ kiện
Thư viện tôi đã sử dụng không thể thiếu:
Smoothiecharts - https://smoothiecharts.org/ Các biểu đồ cập nhật trực tiếp tuyệt vời và nhẹ. Rất có thể tùy chỉnh và không dựa vào việc tham khảo thư viện js ở một nơi khác trên internet. Điều này cho phép thiết lập kiểu “local-IOT” và toàn bộ thư viện nằm gọn trong một chuỗi đơn cho câu lệnh máy chủ web trong mã!
ESPAsyncWebServer -https://github.com/me-no-dev/ESPAsyncWebServer- thực hiện những gì ghi trên hộp và hoạt động tốt
Thư viện đồ họa ThingPulse OLED (đôi khi được gọi là thư viện squix) - https://github.com/ThingPulse/esp8266-oled-ssd130… - đồ họa rất hiệu quả và đơn giản cho các chip ESP. Cho phép tôi thực hiện một số lập trình lười biếng và vẫn có được những hình ảnh động thuyết phục.
Công cụ / misc:
mỏ hàn - được sử dụng để làm dây cáp dài cho các cảm biến, lắp đặt tiêu đề trên bo mạch, bọc co rút, v.v.
tuốc nơ vít / ổ cắm / dụng cụ ô tô khác - cần thiết để lắp đặt cảm biến trên ô tô
băng keo hai mặt - để lắp đồng hồ đo trong vỏ và lắp đặt vỏ trong xe hơi (keo nóng và những thứ khác có thể hoạt động, nhưng tôi thích băng keo trang trí ngoại thất hai mặt 3M. Nó giữ tốt và có thể được kéo ra mà không làm hỏng mọi thứ.)
kéo - để băng và cắt ống và dây buộc zip
dây buộc zip - để giữ mọi thứ lại với nhau, bó dây dưới dấu gạch ngang và trong khoang động cơ, giữ các cảm biến tại chỗ, v.v.
Bước 1: Mã đầu tiên / phần cứng thứ hai
Có thể tải mã tại đây:
Áp suất dầu -
Tăng áp suất -
Tăng áp suất bằng khuôn mặt thay vì đồng hồ đo dạng tương tự -
Mã đồ họa: Thư viện ThingPulse rất hiệu quả đến mức bạn có thể vẽ xbms ngay trên đầu trang khác và nhận được kết quả thuyết phục!
Các hình ảnh đo thực sự đến từ một kho lưu trữ đồ họa mã nguồn mở (https://thenounproject.com/). Nghệ sĩ mang tính biểu tượng, CY (https://thenounproject.com/icon/490005/).
Tôi đã sử dụng gimp để tạo ra 20 khung hình khác nhau với kim chỉ đến từng dấu tích. Biểu tượng mặt cười là của NOVITA ASTRI, ID và ở đây:
Sau đó, tôi chuyển đổi tất cả chúng thành mảng const uint8_t bằng kỹ thuật này (gợi ý: nếu màu bị đảo ngược khi bạn hiển thị, chỉ cần đảo ngược màu trên bản gốc): https://blog.squix.org/2015/05/esp8266- gật đầu-ho…
Mã hoạt ảnh trực tiếp khá đơn giản:
- Đọc từ cảm biến
- Đọc tỷ lệ (tôi đã đặt nó từ 1 đến 1 cho các giá trị tăng dương và chỉ di chuyển kim khi nó đang được tăng lên chứ không phải khi nó ở trong chân không)
- Vẽ xbm và sau đó đặt các ký tự số xuống cho mọi thứ khác.
- rửa sạch và lặp lại
Mã cảm biến: Tôi đang sử dụng lại mã cảm biến mà tôi đã sử dụng cho hai cảm biến này cho một số dự án khác. Tôi đã thêm một số giá trị trung bình để tránh xa các cảm biến nhạy cảm. Điều này bao gồm việc đọc trung bình mỗi "bài đọc" là 5 bài đọc.
Mã tăng cường (cảm biến cung cấp giá trị tương tự từ 0-5 volt mà ADC chuyển thành các bước từ 0-1024):
int getBoost () {float rboost = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36)) / 5); // float ResultPSI = (rboost * (. 00488) / (. 022) +20) /6.89 - atmo; // rời /6.89 cho kpa float Kết quảPSI = (((rboost / 4095) + 0.04) / 0.004) * 0.145 - atmo; // bằng 0,145 đến calc psi // 4096 giá trị trên esp32 / * rBoost = rBoost + 1; if (rBoost> = 20) {rBoost = 0; } * / return (Kết quảPSI); }
Mã áp suất dầu (cảm biến thay đổi điện trở của nó dựa trên áp suất mà nó cảm nhận được vì vậy cần có bộ chia điện áp để biến điều này thành điện áp từ 0-5v, xem tại: https://electronics.stackexchange.com/questions/3…https:/ /www.instructables.com/id/Remote-Car-Monito… (theo dõi phía dưới) để biết thêm thông tin):
int getOilPSI () {float psival = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36)) / 5); psival = -0.0601 * psival + 177.04 - 14.5; trả lại psival; }
Chức năng của Máy chủ Web và AP: Chức năng của AP khá đơn giản - khởi tạo và đối tượng AP với ESSID bạn muốn phát và mật khẩu và bạn đã sẵn sàng.
const char * ssid = "boost_gauge_ap"; const char * password = "password";
WiFi.softAP (ssid, mật khẩu);
Nó thậm chí còn có một máy chủ DHCP nên bạn không phải lo lắng về điều đó. Theo mặc định, IP của nó là 192.168.1.4 (không biết tại sao, đó chỉ là những gì đã chọn). Phần mềm máy chủ web phức tạp hơn một chút và cần một chút nghiên cứu. Về cơ bản, bạn muốn một máy chủ web không đồng bộ để nó có thể nhận được dữ liệu cập nhật trực tiếp. May mắn thay có một thư viện cho điều đó. Tôi không phải là một nhà phát triển javascript, vì vậy tôi đã mày mò với một loạt các thư viện biểu đồ và đồ thị cho đến khi tôi tình cờ tìm thấy các biểu đồ sinh tố. Hầu hết các thư viện biểu đồ khác được viết sao cho chúng kế thừa tất cả các loại mã từ các thư viện khác trên web được tải động khi một trang được hiển thị. Tôi muốn cái này hoạt động độc lập với internet nên đây là một phát hiện lớn. Thứ hai, nó phải đủ nhỏ để phù hợp với arduino và như bạn có thể thấy trong mã, nó phù hợp với một mảng char duy nhất.
Khai báo máy chủ trang web: #include AsyncTCP.h #include ESPAsyncWebServer.h… Máy chủ AsyncWebServer (80); // khởi tạo nó và chọn cổng (80 là tiêu chuẩn cho http)… server.on ("/", HTTP_GET, (AsyncWebServerRequest * request) {request-> send (200, "text / html", "… // trang web + thư viện smoothiecharts trong một mảng char lớn}); server.on ("/ val", HTTP_GET, (AsyncWebServerRequest * request) {// trang đầu tiên thực sự gọi trang rất nhỏ này chỉ trả về yêu cầu giá trị -> send (200, "text / html", Sboost);}); server.begin ();
Bước 2: Phần cứng và Hệ thống dây điện
Hình ảnh trong bộ sưu tập là hai cảm biến tôi sử dụng. Cái lớn có màu vàng là cảm biến áp suất dầu Autometer 2242. Thân và ren của cảm biến này được nối đất và đầu cuối là giá trị điện trở.
Autometer sẽ cung cấp cho bạn một đường cong về khả năng chống lại áp suất hoặc khả năng chống lại nhiệt độ cho bất kỳ cảm biến nào của chúng. Tôi đã chuyển đổi điều này thành điện áp bằng cách sử dụng một bộ chia điện áp (xem sơ đồ nối dây).
Cảm biến áp suất không khí MPX4250AP có ba chân cắm trực tiếp và một số chân cắm không sử dụng. Chúng là V trong, đất và đầu ra cảm biến. Nó xuất ra giá trị đọc 0-5v mà bộ vi điều khiển có thể đọc được (hoặc trong trường hợp của mcu 0-3 volt này. Vì vậy, việc đọc cảm biến được thu nhỏ bằng cách sử dụng bộ chia điện áp.). Bảng thông số kỹ thuật của nó có thể được tìm thấy tại đây:
Có một số vấn đề trong việc giảm tỷ lệ logic từ 5v xuống 3v. Trong trường hợp của tôi, tôi đã sử dụng bộ chia điện áp cho đơn giản và tôi có các bộ phận xung quanh bàn làm việc của mình. Bạn sẽ giới thiệu một chút lỗi vào các bài đọc dựa trên lỗi có thể có của các thành phần bổ sung (hai điện trở). Điều này có thể làm cho số lần đọc của bạn giảm 10% trong một số trường hợp. Tôi có thể sống với điều này. Nếu bạn không thể, bạn có thể muốn sử dụng opamp và điện trở hoặc bộ chuyển đổi mức logic (có sẵn từ các nhà cung cấp thiết bị điện tử khác nhau. Sparkfun có một cái ở đây: https://www.sparkfun.com/products/12009 Tôi có thể chuyển sang nó như Đôi khi tôi nhận được số đọc cao trên máy đo này (thực tế là tôi đã hiển thị sản phẩm này trên sơ đồ đấu dây của mình).
Tôi đã cấp nguồn cho ESP32 qua USB. Điều này bao gồm việc kết nối bộ sạc trực tiếp như sau: https://www.amazon.com/gp/product/B00U2DGKOK/ref=p… vào ô tô và sau đó sử dụng bộ chia USB để tách nó ra. Bạn có thể thấy rằng tôi đã sử dụng cáp USB góc vuông để đảm bảo mọi thứ hoạt động trong một khu vực nhỏ (https://www.amazon.com/gp/product/B00ENZDFQ4/ref=p…).
Các bức ảnh khác cho thấy những nơi tôi đã cắt lỗ hoặc chạy dây. Mỗi chiếc xe sẽ khác nhau. Hãy cẩn thận, dao và kéo sắc nhọn, điện có thể gây nguy hiểm vì vậy vui lòng ngắt kết nối pin trước khi nối dây.
Bước 3: Nhà ở in 3D
Tôi đã sử dụng một số vỏ in 3D cho việc này.
- Một thước đo tròn 2 màn hình lớn chung. Bạn có thể thấy điều này trên hình ảnh này của trang đầu tiên. Tôi đặt nó bên cạnh đồng hồ của tôi trên dấu gạch ngang của tôi.
- Một kiểu nêm đo đơn phù hợp với khu vực đồng hồ của subaru impreza (wrx, sti, v.v.) từ khoảng năm 2008 đến năm 2014.
- Một mảnh đồng hồ đo kép phù hợp với cột vô lăng và các bề mặt hơi tròn khác:
Bạn có thể sao chép và sửa đổi những điều này để phù hợp với nhu cầu của bạn. Không ai trong số chúng là hoàn hảo và tất cả chúng sẽ yêu cầu một chút điều chỉnh.
Một số lưu ý:
- Tôi đã hoàn thành của tôi với plastidip; nó là phương pháp ưa thích của kẻ lười biếng.
- Nhựa nhám tạo ra các hạt mịn không tốt cho bạn, hãy sử dụng khẩu trang thích hợp.
- Tôi đã sử dụng PETG cho nhà ở của mình. ABS cũng tốt. PLA sẽ cong vênh trong nắng nóng trên bảng điều khiển.
Giải nhì trong Thử thách IoT