สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: รหัสแรก/ฮาร์ดแวร์วินาที
- ขั้นตอนที่ 2: ฮาร์ดแวร์และการเดินสาย
- ขั้นตอนที่ 3: ตัวเรือนพิมพ์ 3 มิติ
วีดีโอ: เกจวัดในรถยนต์ OLED ESP32 ที่เปิดใช้งาน Wifi: 3 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
แนะนำตัวก่อน…
ฉันสร้างมาตรวัดรถเป็นงานอดิเรกอีกครั้งและปิดอีกครั้ง ดู https://www.instructables.com/id/Remote-Car-Monit… และ https://www.instructables.com/id/Remote-Car-Monit… สำหรับสองตัวอย่างล่าสุด ฉันชอบส่วนที่กลมกลืนกับชิ้นส่วนดั้งเดิมของรถเป็นพิเศษ ทำไมอันนี้ถึงแตกต่างและอะไรเป็นแรงบันดาลใจให้ฉันสร้างมันขึ้นมา คำตอบคือสองสิ่ง:
1) ESP32 - ฉันต้องการลองใช้เด็กใหม่บนชิปบล็อก โดยเฉพาะอย่างยิ่งเนื่องจาก toolchain ที่ใช้ Arduino นั้นค่อนข้างเป็นผู้ใหญ่ สิ่งที่น่าสนใจอย่างหนึ่งที่ ESP32 เปิดใช้งานคือ IOT ที่มีความสามารถ wifi และบลูทูธในตัว ชุมชนได้เขียนไลบรารีหลายแห่งเพื่อทำให้สิ่งนี้ค่อนข้างตรงไปตรงมา (เว็บเซิร์ฟเวอร์, AP, ไคลเอนต์ wifi, mDNS เป็นต้น)
2) หน้าจอ OLED ราคาถูก - ย้อนกลับไปในปี 2550 ฉันสร้างมาตรวัดโดยใช้ TFT ซึ่งนั่งแทนที่นาฬิกาบน GD (2004-2007) WRX TFT มีหลายรสชาติ บางคนทำงานได้ดีขึ้นในเวลากลางคืน บางคนทำงานได้ดีขึ้นในตอนกลางวัน ฯลฯ แต่ไม่มีใครทำงานได้ดีในทุกสภาวะ ฉันไม่ได้ตระหนักถึงข้อผิดพลาดของวิธีการของฉัน จนกระทั่งหนึ่งในมาตรวัดที่ฉันใช้นั้นไร้ประโยชน์ในระหว่างวันที่มีแดดจ้าของสมาชิกฟอรั่ม ใส่ OLED ซึ่งยอดเยี่ยมสำหรับการใช้งานยานยนต์ ไม่สว่างเกินไปในเวลากลางคืนและ (ที่สำคัญกว่านั้น) สามารถมองเห็นได้ในสภาพแสงแดดส่วนใหญ่
นี่เป็นคำแนะนำแบบสองต่อหนึ่งในขณะที่ฉันเขียนทุกอย่างสำหรับเกจทั่วไปสองตัวคือแรงดันน้ำมันและแรงดันเทอร์โบ โดยพื้นฐานแล้วทั้งสองสิ่งเป็นสิ่งเดียวกัน: มาตรวัดฟอร์มแฟกเตอร์ขนาดเล็กพร้อมจอแสดงผล OLED แบบแอนะล็อกที่ดูเคลื่อนไหวพร้อมตัวเลขและค่าสูงสุดที่ไม่ต่อเนื่อง ทั้งสองยังทำหน้าที่เป็น wifi AP และเว็บเซิร์ฟเวอร์ เมื่อเชื่อมต่อผ่านคอมพิวเตอร์หรือโทรศัพท์มือถือ สามารถดูแผนภูมิรูปแบบ EKG ที่เคลื่อนไหวได้ (นี่เป็นส่วนที่ค่อนข้างสร้างสรรค์)
เสบียง
โมดูล HELTEC ESP32 - รับตัวแปร wifi
ชิ้นส่วนเฉพาะแรงดันน้ำมัน:
เซ็นเซอร์แรงดันน้ำมันเครื่อง - ฉันใช้ automter 5222 ส่วนเชื่อมต่อเซ็นเซอร์แรงดันน้ำมัน - ซึ่งแตกต่างกันไปตามรถยนต์และตำแหน่งที่ติดตั้ง โปรดอ่านคู่มือซ่อมบำรุง กระดานสนทนา กลไก ฯลฯ และดำเนินการอย่างถูกต้องเพื่อไม่ให้น้ำมันรั่ว
บูสต์เกจเฉพาะส่วน:
- เซ็นเซอร์ความดันอากาศ (เฉพาะในกรณีที่คุณต้องการสร้างเกจบูสต์) -
- ท่อลม
- ฟิตติ้ง T
ห้องสมุดที่ฉันใช้ซึ่งขาดไม่ได้:
Smoothiecharts - https://smoothiecharts.org/ ชาร์ตอัปเดตสดที่ยอดเยี่ยมและมีน้ำหนักเบา ปรับแต่งได้มากและไม่ต้องอาศัยการอ้างอิงไลบรารี js ที่อื่นบนอินเทอร์เน็ต สิ่งนี้ช่วยให้การตั้งค่าประเภท "local-IOT" และไลบรารีทั้งหมดพอดีกับสตริงเดียวสำหรับคำสั่งเว็บเซิร์ฟเวอร์ในโค้ด!
ESPAsyncWebServer -https://github.com/me-no-dev/ESPAsyncWebServer- ทำในสิ่งที่พูดในกล่องและทำได้ดี
ไลบรารีกราฟิก ThingPulse OLED (บางครั้งเรียกว่าไลบรารี squix) - https://github.com/ThingPulse/esp8266-oled-ssd130… - กราฟิกที่มีประสิทธิภาพและตรงไปตรงมามากสำหรับชิป ESP อนุญาตให้ฉันเขียนโปรแกรมแบบขี้เกียจและยังคงได้แอนิเมชั่นที่น่าเชื่อ
เครื่องมือ/อื่นๆ:
หัวแร้ง - ใช้ทำสายเคเบิลยาวสำหรับเซ็นเซอร์ ติดตั้งส่วนหัวบนบอร์ด ฟิล์มหด ฯลฯ
ไขควง/ซ็อกเก็ต/เครื่องมือรถอื่นๆ - จำเป็นในการติดตั้งเซ็นเซอร์บนรถ
เทปกาวสองหน้า - สำหรับติดตั้งเกจในตัวเรือนและติดตั้งตัวเรือนในรถยนต์ (กาวร้อนและสิ่งของอื่นๆ อาจใช้ได้ แต่ฉันชอบเทปปิดขอบด้านนอก 2 ด้านของ 3M มากกว่า ยึดแน่นดีและสามารถดึงออกได้โดยไม่เกิดความเสียหาย)
กรรไกร - สำหรับเทปและตัดท่อและสายรัด
สายรัดซิป - สำหรับยึดสิ่งของ, มัดสายไฟไว้ใต้แผงหน้าปัดและในห้องเครื่อง, จับเซ็นเซอร์ให้เข้าที่ ฯลฯ
ขั้นตอนที่ 1: รหัสแรก/ฮาร์ดแวร์วินาที
สามารถดาวน์โหลดรหัสได้ที่นี่:
แรงดันน้ำมัน -
เพิ่มแรงดัน -
เพิ่มแรงกดด้วยใบหน้าแทนเกจแบบอะนาล็อก -
รหัสกราฟิก: ไลบรารี ThingPulse มีประสิทธิภาพมากจนคุณสามารถวาด xbms ทับกันและได้ผลลัพธ์ที่น่าเชื่อ!
เกจอิมเมจจริง ๆ แล้วมาจากที่เก็บกราฟิกโอเพ่นซอร์ส (https://thenounproject.com/) ศิลปิน Iconic, CY (https://thenounproject.com/icon/490005/).
ฉันใช้ gimp เพื่อสร้างเฟรมที่แตกต่างกัน 20 เฟรมโดยให้เข็มชี้ไปที่เครื่องหมายถูกแต่ละอัน ไอคอนหน้ายิ้มโดย NOVITA ASTRI, ID และอยู่ที่นี่:
จากนั้นฉันก็แปลงสิ่งเหล่านี้เป็นอาร์เรย์ const uint8_t โดยใช้เทคนิคนี้ (คำใบ้: ถ้าสีกลับด้านเมื่อคุณแสดง ให้กลับสีบนต้นฉบับ): https://blog.squix.org/2015/05/esp8266- โนเดมคูโฮ…
รหัสแอนิเมชั่นสดค่อนข้างตรงไปตรงมา:
- รับการอ่านจากเซ็นเซอร์
- การอ่านค่าสเกล (ฉันทำ 1 ต่อ 1 สำหรับค่าบูสต์ที่เป็นบวก และขยับเข็มเฉพาะเมื่ออยู่ในบูสต์ ไม่ใช่เมื่ออยู่ในสุญญากาศ)
- วาด xbm แล้วใส่อักขระตัวเลขสำหรับอย่างอื่น
- ล้างแล้วทำซ้ำ
รหัสเซ็นเซอร์: ฉันกำลังใช้รหัสเซ็นเซอร์ที่ใช้ซ้ำกับเซ็นเซอร์สองตัวนี้สำหรับโครงการอื่นๆ สองสามตัว ฉันเพิ่มการเฉลี่ยเพื่อหลีกหนีจากเซ็นเซอร์ที่สั่นคลอน ซึ่งรวมถึงการอ่านแต่ละ "การอ่าน" โดยมีค่าเฉลี่ย 5 ค่าที่อ่านได้
รหัสบูสต์ (เซ็นเซอร์ให้ค่าแอนะล็อกตั้งแต่ 0-5 โวลต์ซึ่ง ADC เปลี่ยนเป็นขั้นตอนตั้งแต่ 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; // ออกจาก /6.89 สำหรับ kpa float ResultPSI = (((rboost / 4095) + 0.04) / 0.004) * 0.145 - atmo; // โดย 0.145 ถึง calc psi //4096 ค่าบน esp32 /*rBoost = rBoost + 1; ถ้า (rBoost >= 20) { rBoost = 0; }*/ ผลตอบแทน (ResultPSI); }
รหัสแรงดันน้ำมัน (เซ็นเซอร์จะแปรความต้านทานตามความดันที่สัมผัสได้ ดังนั้นตัวแบ่งแรงดันจึงจำเป็นต้องเปลี่ยนค่านี้เป็นแรงดันไฟฟ้าตั้งแต่ 0-5v ดู: https://electronics.stackexchange.com/questions/3…https://electronics.stackexchange.com/questions/3…https:/ /www.instructables.com/id/Remote-Car-Monito…(ไปทางด้านล่าง) สำหรับข้อมูลเพิ่มเติม):
int getOilPSI () { float psival = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36))/5); psival = -0.0601*psival + 177.04 - 14.5; ผลตอบแทน psival; }
ฟังก์ชันเว็บเซิร์ฟเวอร์และ AP: ฟังก์ชัน AP ค่อนข้างง่าย - สร้างอินสแตนซ์และอ็อบเจ็กต์ AP ด้วย ESSID ที่คุณต้องการแพร่ภาพและรหัสผ่าน และคุณพร้อมแล้ว
const char *ssid = "boost_gauge_ap";const char *password = "รหัสผ่าน";
WiFi.softAP(ssid, รหัสผ่าน);
มันยังมีเซิร์ฟเวอร์ DHCP ดังนั้นคุณไม่ต้องกังวลกับมัน โดยค่าเริ่มต้น IP คือ 192.168.1.4 (ไม่รู้ว่าทำไม นั่นคือสิ่งที่เลือก) บิตของเว็บเซิร์ฟเวอร์นั้นซับซ้อนกว่าเล็กน้อยและต้องการการค้นคว้าเล็กน้อย โดยทั่วไปคุณต้องการเว็บเซิร์ฟเวอร์แบบ async เพื่อให้สามารถอัปเดตข้อมูลสดได้ โชคดีที่มีห้องสมุดสำหรับสิ่งนั้น ฉันไม่ใช่นักพัฒนาจาวาสคริปต์ ดังนั้นฉันจึงปรับแต่งไลบรารีแผนภูมิและกราฟจำนวนมาก จนกระทั่งฉันสะดุดกับแผนภูมิสมูทตี้ ไลบรารีการสร้างแผนภูมิอื่นๆ ส่วนใหญ่เขียนขึ้นเพื่อให้รับช่วงโค้ดทุกประเภทจากไลบรารีอื่นๆ จากทั่วทั้งเว็บที่โหลดแบบไดนามิกเมื่อมีการแสดงหน้าเว็บ ฉันต้องการให้สิ่งนี้ทำงานโดยไม่ขึ้นกับอินเทอร์เน็ต ดังนั้นนี่จึงเป็นการค้นพบครั้งใหญ่ ประการที่สอง มันต้องมีขนาดเล็กพอที่จะพอดีกับ Arduino และอย่างที่คุณเห็นในโค้ด มันพอดีกับอาร์เรย์ถ่านตัวเดียว
ประกาศเว็บเซิร์ฟเวอร์: #include AsyncTCP.h #include ESPAsyncWebServer.h … เซิร์ฟเวอร์ AsyncWebServer(80); // ตรวจสอบและเลือกพอร์ต (80 เป็นมาตรฐานสำหรับ http) … server.on("/", HTTP_GET, (AsyncWebServerRequest *request){ request->send(200, "text/html", "… // หน้าเว็บ + ไลบรารี Smoothiecharts ในอาร์เรย์ถ่านขนาดใหญ่ }); server.on("/val", HTTP_GET, (AsyncWebServerRequest *request){ // หน้าแรกจริง ๆ แล้วเรียกหน้าเล็ก ๆ นี้ที่เพิ่งส่งคืนคำขอค่า ->ส่ง(200, "ข้อความ/html", Sboost); }); server.begin();
ขั้นตอนที่ 2: ฮาร์ดแวร์และการเดินสาย
ภาพในแกลเลอรีคือเซ็นเซอร์สองตัวที่ฉันใช้ สีทองขนาดใหญ่คือเซ็นเซอร์แรงดันน้ำมัน Autometer 2242 ตัวเครื่องและเกลียวของเซ็นเซอร์นี้มีกราวด์ และขั้วต่อเป็นค่าความต้านทานที่อ่านได้
เครื่องวัดอัตโนมัติจะให้เส้นโค้งของความต้านทานต่อแรงดันหรือความต้านทานต่ออุณหภูมิสำหรับเซ็นเซอร์ตัวใดตัวหนึ่ง ฉันได้แปลงเป็นแรงดันไฟฟ้าโดยใช้ตัวแบ่งแรงดันไฟฟ้า (ดูแผนภาพการเดินสาย)
เซ็นเซอร์ความดันอากาศ MPX4250AP มีหมุดอยู่สามตัวและหมุดที่ไม่ได้ใช้หลายตัว พวกมันคือ V in, กราวด์และเอาต์พุตเซ็นเซอร์ มันส่งค่าการอ่าน 0-5v ที่ไมโครคอนโทรลเลอร์สามารถอ่านได้ (หรือในกรณีของ mcu 0-3 โวลต์นี้ ดังนั้น การอ่านเซ็นเซอร์จะถูกลดขนาดลงโดยใช้ตัวแบ่งแรงดันไฟฟ้า) สามารถดูแผ่นข้อมูลจำเพาะได้ที่นี่:
มีปัญหาหลายประการในการลดขนาดจากตรรกะ 5v เป็น 3v ในกรณีของฉัน ฉันใช้ตัวแบ่งแรงดันไฟฟ้าเพื่อความเรียบง่าย และฉันมีชิ้นส่วนรอบๆ โต๊ะของฉัน คุณจะแนะนำข้อผิดพลาดเล็กน้อยในการอ่านโดยพิจารณาจากข้อผิดพลาดที่เป็นไปได้ของส่วนประกอบเพิ่มเติม (ตัวต้านทานสองตัว) ซึ่งจะทำให้การอ่านของคุณลดลง 10% ในบางกรณี ฉันสามารถอยู่กับสิ่งนี้ได้ หากคุณทำไม่ได้คุณอาจต้องการใช้ opamp และตัวต้านทานหรือตัวแปลงระดับลอจิก (มีให้จากผู้จำหน่ายอุปกรณ์อิเล็กทรอนิกส์หลายแห่ง Sparkfun มีที่นี่: https://www.sparkfun.com/products/12009 ฉันอาจเปลี่ยนเป็น บางครั้งฉันได้รับการอ่านค่าสูงในมาตรวัดนี้ (อันที่จริงฉันได้แสดงผลิตภัณฑ์นี้ในแผนภาพการเดินสายของฉัน)
ฉันขับเคลื่อน ESP32 ผ่าน USB ซึ่งรวมถึงการเดินสายที่ชาร์จโดยตรงแบบนี้: https://www.amazon.com/gp/product/B00U2DGKOK/ref=p… ไปที่รถแล้วใช้ฮับ USB เพื่อแยกออก คุณจะเห็นว่าฉันใช้สาย usb มุมฉากเพื่อให้แน่ใจว่าทุกอย่างทำงานในพื้นที่ขนาดเล็ก (https://www.amazon.com/gp/product/B00ENZDFQ4/ref=p…)
ภาพถ่ายอื่น ๆ แสดงสถานที่ที่ฉันเจาะหรือวิ่งลวด รถแต่ละคันจะแตกต่างกัน โปรดใช้ความระมัดระวัง มีดและกรรไกรมีความคม ไฟฟ้าอาจเป็นอันตรายได้ ดังนั้นโปรดถอดแบตเตอรี่ออกก่อนเดินสายไฟ
ขั้นตอนที่ 3: ตัวเรือนพิมพ์ 3 มิติ
ฉันใช้ตัวเรือนที่พิมพ์ 3 มิติมาหลายตัวสำหรับสิ่งนี้
- เกจวัดรอบหน้าจอขนาดใหญ่ทั่วไป 2 จอ คุณสามารถเห็นสิ่งนี้ได้จากรูปภาพของหน้าแรก ฉันวางไว้ข้างนาฬิกาบนหน้าปัด
- สไตล์ลิ่มเกจเดียวที่เหมาะกับพื้นที่นาฬิกาของ subaru impreza (wrx, sti ฯลฯ) ตั้งแต่ประมาณปี 2008 ถึง 2014
- เกจวัดคู่ที่พอดีกับคอพวงมาลัยและพื้นผิวโค้งมนอื่นๆ:
คุณสามารถคัดลอกและแก้ไขสิ่งเหล่านี้เพื่อให้เหมาะกับความต้องการของคุณ ไม่มีสิ่งใดที่สมบูรณ์แบบและพวกเขาทั้งหมดจะต้องมีการปรับเปลี่ยนเล็กน้อย
หมายเหตุบางส่วน:
- ฉันทำของฉันเสร็จด้วยพลาสติดิป เป็นวิธีที่ชอบของคนเกียจคร้าน
- การขัดพลาสติกทำให้เกิดอนุภาคเล็กๆ ที่ไม่ดีสำหรับคุณ ให้ใช้หน้ากากที่เหมาะสม
- ฉันใช้ PETG สำหรับตัวเรือนของฉัน เอบีเอสยังดี PLA จะบิดเบี้ยวในแสงแดดที่ร้อนจัดบนแดชบอร์ด
รางวัลที่สองใน IoT Challenge
แนะนำ:
สร้าง Micro-quadrotor ที่เปิดใช้งาน WiFi: 5 ขั้นตอน
สร้างไมโครควอโดรเตอร์ที่เปิดใช้งาน WiFi: คำแนะนำนี้เพียงแค่บันทึกว่าการสร้างไมโครควอโดรเตอร์ที่เปิดใช้งาน WiFi ด้วยตัวเองนั้นง่ายเพียงใด ! ชิ้นส่วนส่วนใหญ่สามารถซื้อได้ในราคาถูกและง่ายดาย และใช้โทรศัพท์ Android ของคุณเป็นรีโมตคอนโทรล
Nerf Blaster ที่เปิดใช้งาน Bluetooth: 7 ขั้นตอน
Nerf Blaster ที่เปิดใช้งาน Bluetooth: ฉันรู้สึกได้รับแรงบันดาลใจจากโปรเจ็กต์ของ Colin Furze และตัดสินใจสร้างเวอร์ชั่นของตัวเองสำหรับ Remix Challenge การออกแบบที่ฉันใช้นั้นคล้ายคลึงกัน แต่มีความชำนาญมากกว่า และมีโมดูล Bluetooth ที่ช่วยให้สามารถควบคุมป้อมปืนจากโทรศัพท์ของฉันได้ นี่คือ
โคมไฟ Death Star ที่เปิดใช้งาน Alexa: 17 ขั้นตอน (พร้อมรูปภาพ)
โคมไฟ Death Star ที่เปิดใช้งาน Alexa: นำตัวอย่างด้านมืดมาสู่ห้องนั่งเล่นของคุณด้วยโคมไฟสั่งงานด้วยเสียงที่ไม่เหมือนใคร งานศิลปะที่มีประโยชน์ใช้สอยและน่ามอง เปิดหรือปิด? โคมไฟทั้งหมดทำเช่นนั้น! เปลี่ยนความสว่าง? ธรรมดามาก! แต่ของคุณได้ไหม
ท้องฟ้าจำลอง/Orrery ที่เปิดใช้งาน Bluetooth: 13 ขั้นตอน (พร้อมรูปภาพ)
ท้องฟ้าจำลอง/Orrery ที่เปิดใช้งาน Bluetooth: คำแนะนำนี้ถูกสร้างขึ้นเพื่อตอบสนองความต้องการโครงการของ Makecourse ที่มหาวิทยาลัยเซาท์ฟลอริดา (www.makecourse.com) นี่คือท้องฟ้าจำลอง / orrery 3 ดวงของฉัน มันเริ่มต้นจากเป็นเพียงโครงการระยะยาวสำหรับ Makecour
การใช้โทรศัพท์ Sony Ericsson ที่เปิดใช้งาน Bluetooth เพื่อควบคุมคอมพิวเตอร์ของคุณ: 6 ขั้นตอน
การใช้โทรศัพท์ Sony Ericsson ที่เปิดใช้งาน Bluetooth เพื่อควบคุมคอมพิวเตอร์ของคุณ: ฉันได้อ่านคำสั่งสอนมาระยะหนึ่งแล้ว และฉันต้องการทำบางสิ่งที่ผู้คนเขียนถึงอยู่เสมอ แต่พบว่าตัวเองกำลังดูสิ่งที่ ที่ทำได้ยากเพราะทำได้ยากจริงๆ หรือ