สารบัญ:
- ขั้นตอนที่ 1: คณิตศาสตร์ คณิตศาสตร์ และคณิตศาสตร์อื่นๆ: Steinhart–Hart ค่าสัมประสิทธิ์ และตัวแบ่งตัวต้านทาน
- ขั้นตอนที่ 2: การประกอบอุปกรณ์อิเล็กทรอนิกส์
- ขั้นตอนที่ 3: การติดตั้งซอฟต์แวร์
- ขั้นตอนที่ 4: การปรับเทียบหัววัดอุณหภูมิ NTP
- ขั้นตอนที่ 5: การพิมพ์เคสและการประกอบขั้นสุดท้าย 3 มิติ
- ขั้นตอนที่ 6: เกี่ยวกับซอฟต์แวร์
- ขั้นตอนที่ 7: "โครงการที่จะเกิดขึ้น"
วีดีโอ: ESP32 NTP Temperature Probe เครื่องวัดอุณหภูมิในการปรุงอาหารพร้อมการแก้ไข Steinhart-Hart และสัญญาณเตือนอุณหภูมิ: 7 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
ยังคงอยู่ระหว่างการเดินทางเพื่อทำ "โครงการที่จะเกิดขึ้น" ให้เสร็จ "ESP32 NTP Temperature Probe Cooking Thermometer พร้อม Steinhart-Hart Correction and Temperature Alarm" เป็นคำแนะนำที่แสดงวิธีที่ฉันเพิ่มหัววัดอุณหภูมิ NTP, piezo buzzer และซอฟต์แวร์ให้กับการสัมผัสแบบ capacitive ของฉัน " ESP32 Capacitive Touch Input โดยใช้ "Metallic Hole Plugs" สำหรับปุ่มต่างๆ เพื่อสร้างเทอร์โมมิเตอร์สำหรับทำอาหารที่เรียบง่ายแต่แม่นยำพร้อมการเตือนอุณหภูมิที่ตั้งโปรแกรมได้
ปุ่มสัมผัสแบบ capacitive สามปุ่มช่วยให้สามารถตั้งระดับการเตือนอุณหภูมิได้ การกดปุ่มตรงกลางจะแสดงหน้าจอ "Set Alarm Temperature" ทำให้ปุ่มซ้ายและขวาสามารถลดหรือเพิ่มอุณหภูมิการเตือนได้ตามลำดับ การกดและปล่อยปุ่มซ้ายจะลดอุณหภูมิการเตือนลงหนึ่งองศา ขณะที่กดปุ่มซ้ายค้างไว้จะลดอุณหภูมิการเตือนอย่างต่อเนื่องจนกว่าจะปล่อย ในทำนองเดียวกัน การกดและปล่อยปุ่มขวาจะเพิ่มอุณหภูมิการเตือนหนึ่งองศา ขณะที่กดปุ่มขวาค้างไว้จะเพิ่มอุณหภูมิการเตือนอย่างต่อเนื่องจนกว่าจะปล่อย เมื่อปรับอุณหภูมิการเตือนเสร็จแล้ว เพียงแตะปุ่มกลางอีกครั้งเพื่อกลับไปที่การแสดงอุณหภูมิ เมื่อใดก็ตามที่อุณหภูมิเท่ากับหรือสูงกว่าอุณหภูมิปลุก เสียง Piezo จะดังขึ้น
และดังที่ได้กล่าวมาแล้ว หัววัดอุณหภูมิ NTP ถูกใช้ในการออกแบบร่วมกับสมการและค่าสัมประสิทธิ์ของสไตน์ฮาร์ต-ฮาร์ตที่จำเป็นสำหรับการอ่านค่าอุณหภูมิที่แม่นยำ ฉันได้รวมคำอธิบายที่ละเอียดมากเกินไปของสมการสไตน์ฮาร์ต-ฮาร์ต สัมประสิทธิ์ของสไตน์ฮาร์ต ตัวแบ่งแรงดันไฟฟ้า และพีชคณิตไว้ในขั้นตอนที่ 1 (เป็นโบนัส มันทำให้ฉันหลับทุกครั้งที่อ่าน ดังนั้นคุณอาจต้องการ ข้ามขั้นตอนที่ 1 และตรงไปที่ขั้นตอนที่ 2: การประกอบอุปกรณ์อิเล็กทรอนิกส์ เว้นแต่คุณจะต้องงีบหลับ)
หากคุณตัดสินใจที่จะสร้างเทอร์โมมิเตอร์สำหรับทำอาหารสำหรับการปรับแต่งและการพิมพ์ 3 มิติ ฉันได้รวมไฟล์ต่อไปนี้ไว้:
- ไฟล์ Arduino "AnalogInput.ino" ที่มีซอฟต์แวร์สำหรับการออกแบบ
- ไฟล์ cad ของ Autodesk Fusion 360 สำหรับเคสที่แสดงวิธีการออกแบบเคส
- ไฟล์ Cura 3.4.0 STL "Case, Top.stl" และ "Case, Bottom.stl" พร้อมสำหรับการพิมพ์ 3 มิติ
คุณจะต้องมีความคุ้นเคยกับสภาพแวดล้อม Arduino ตลอดจนทักษะและอุปกรณ์ในการบัดกรี นอกจากนี้ อาจจำเป็นต้องเข้าถึงโอห์มมิเตอร์แบบดิจิตอล เทอร์โมมิเตอร์ และแหล่งอุณหภูมิที่แม่นยำสำหรับการสอบเทียบ
และเช่นเคย ฉันอาจจะลืมไฟล์ไปหนึ่งหรือสองไฟล์ หรือใครรู้อะไรอีก ดังนั้นหากคุณมีคำถามใดๆ โปรดอย่าลังเลที่จะถามเพราะฉันทำผิดพลาดมากมาย
อุปกรณ์อิเล็กทรอนิกส์ได้รับการออกแบบโดยใช้ดินสอ กระดาษ และ Radio Shack EC-2006a (Cat. No. 65-962a) เครื่องคิดเลขพลังงานแสงอาทิตย์
ซอฟต์แวร์ได้รับการออกแบบโดยใช้ Arduino 1.8.5
เคสนี้ได้รับการออกแบบโดยใช้ Autodesk Fusion 360 หั่นโดยใช้ Cura 3.4.0 และพิมพ์ใน PLA บน Ultimaker 2+ Extended และ Ultimaker 3 Extended
และหมายเหตุสุดท้าย ฉันไม่ได้รับค่าตอบแทนใดๆ ในรูปแบบใดๆ รวมถึงแต่ไม่จำกัดเพียงตัวอย่างฟรี สำหรับส่วนประกอบใดๆ ที่ใช้ในการออกแบบนี้
ขั้นตอนที่ 1: คณิตศาสตร์ คณิตศาสตร์ และคณิตศาสตร์อื่นๆ: Steinhart–Hart ค่าสัมประสิทธิ์ และตัวแบ่งตัวต้านทาน
การออกแบบก่อนหน้านี้ของฉันที่รวมหัววัดอุณหภูมิ NTC ใช้เทคนิคการค้นหาตารางเพื่อแปลงแรงดันไฟฟ้าขาเข้าจากตัวแบ่งตัวต้านทานเป็นอุณหภูมิ เนื่องจาก ESP32 มีความสามารถในอินพุตแบบอะนาล็อกสิบสองบิต และเนื่องจากฉันกำลังออกแบบเพื่อเพิ่มความแม่นยำ ฉันจึงตัดสินใจใช้สมการ "Steinhart-Hart" ในโค้ดสำหรับการแปลงแรงดันไฟฟ้าเป็นอุณหภูมิ
ตีพิมพ์ครั้งแรกในปี 2511 โดย John S. Steinhart และ Stanley R. Hart สมการ Steinhart-Hart กำหนดความสัมพันธ์ความต้านทานต่ออุณหภูมิของหัววัดอุณหภูมิ NTC ดังนี้
1 / T = A + (B * (ล็อก (เทอร์มิสเตอร์))) + (ล็อก C * (เทอร์มิสเตอร์) * บันทึก (เทอร์มิสเตอร์) * บันทึก (เทอร์มิสเตอร์))
ที่ไหน:
- T คือองศาเคลวิน
- A, B, C คือสัมประสิทธิ์ Steinhart-Hart (เพิ่มเติมในอีกสักครู่)
- และเทอร์มิสเตอร์คือค่าความต้านทานเทอร์มิสเตอร์เทอร์มิสเตอร์ที่อุณหภูมิปัจจุบัน
เหตุใดสมการ Steinhart-Hart ที่ดูเหมือนซับซ้อนนี้จึงจำเป็นสำหรับเทอร์โมมิเตอร์แบบดิจิตอลที่ใช้หัววัดอุณหภูมิ NTC อย่างง่าย หัววัดอุณหภูมิ NTC ที่ "เหมาะสม" จะแสดงค่าความต้านทานเชิงเส้นของอุณหภูมิจริง ดังนั้นสมการเชิงเส้นอย่างง่ายที่เกี่ยวข้องกับแรงดันไฟฟ้าขาเข้าและการปรับขนาดจะส่งผลให้มีการแสดงอุณหภูมิที่แม่นยำ อย่างไรก็ตาม หัววัดอุณหภูมิ NTC ไม่ได้เป็นเส้นตรง และเมื่อรวมกับอินพุตอนาล็อกแบบไม่เป็นเชิงเส้นของโปรเซสเซอร์แบบบอร์ดเดี่ยวราคาประหยัดเกือบทั้งหมด เช่น WiFi Kit 32 จะผลิตอินพุตแบบอะนาล็อกที่ไม่ใช่เชิงเส้นและทำให้อ่านอุณหภูมิได้ไม่ถูกต้อง ด้วยการใช้สมการ เช่น Steinhart-Hart ควบคู่ไปกับการสอบเทียบอย่างระมัดระวัง การอ่านค่าอุณหภูมิที่แม่นยำสูงโดยใช้หัววัดอุณหภูมิ NTC ที่มีโปรเซสเซอร์แบบบอร์ดเดี่ยวราคาประหยัดสามารถทำได้โดยการสร้างค่าประมาณที่ใกล้เคียงมากของอุณหภูมิจริง
กลับไปที่สมการสไตน์ฮาร์ต-ฮาร์ต สมการนี้ใช้สัมประสิทธิ์สามตัว A, B และ C เพื่อกำหนดอุณหภูมิเป็นฟังก์ชันของความต้านทานเทอร์มิสเตอร์ สัมประสิทธิ์ทั้งสามนี้มาจากไหน? ผู้ผลิตบางรายให้ค่าสัมประสิทธิ์เหล่านี้กับโพรบวัดอุณหภูมิ NTC ของตน และรายอื่นๆ ไม่ได้ให้ นอกจากนี้ ผู้ผลิตยังให้ค่าสัมประสิทธิ์สำหรับหัววัดอุณหภูมิที่แน่นอนหรือไม่ก็ได้ที่คุณอาจซื้อได้ และค่าสัมประสิทธิ์น่าจะเป็นตัวแทนของตัวอย่างขนาดใหญ่ของหัววัดอุณหภูมิทั้งหมดที่พวกเขาผลิตในช่วงระยะเวลาหนึ่ง และสุดท้าย ฉันไม่สามารถหาค่าสัมประสิทธิ์ของโพรบที่ใช้ในการออกแบบนี้ได้
หากไม่มีค่าสัมประสิทธิ์ที่จำเป็น ฉันได้สร้าง Steinhart-Hart Spreadsheet ซึ่งเป็นเครื่องคิดเลขที่ใช้สเปรดชีตที่ช่วยในการสร้างสัมประสิทธิ์ที่จำเป็นสำหรับหัววัดอุณหภูมิ NTC (ฉันทำลิงก์ไปยังเครื่องคิดเลขบนเว็บที่คล้ายกันซึ่งฉันใช้เมื่อหลายปีก่อนหายไป ดังนั้นฉันจึงสร้างอันนี้ขึ้นมา). เพื่อหาค่าสัมประสิทธิ์ของหัววัดอุณหภูมิ ฉันเริ่มต้นด้วยการวัดค่าตัวต้านทาน 33k ที่ใช้ในตัวแบ่งแรงดันไฟฟ้าด้วยโอห์มมิเตอร์แบบดิจิตอล แล้วป้อนค่าลงในพื้นที่สีเหลืองของสเปรดชีตที่ระบุว่า "ตัวต้านทาน" ต่อไป ฉันวางหัววัดอุณหภูมิในสามสภาพแวดล้อม อุณหภูมิห้องแรก น้ำแข็งก้อนที่สอง และน้ำเดือดที่สาม พร้อมด้วยเทอร์โมมิเตอร์ดิจิตอลที่แม่นยำที่รู้จัก และให้เวลาสำหรับอุณหภูมิบนเทอร์โมมิเตอร์และจำนวนอินพุตเทอร์มิสเตอร์ที่ปรากฏบนจอแสดงผล WiFi Kit 32 (เพิ่มเติมในภายหลัง) เพื่อรักษาเสถียรภาพ เมื่อทั้งอุณหภูมิและจำนวนอินพุตของเทอร์มิสเตอร์คงที่แล้ว ฉันจึงป้อนอุณหภูมิที่ระบุโดยเทอร์โมมิเตอร์ที่แม่นยำที่รู้จักและจำนวนเทอร์มิสเตอร์ที่ปรากฏบนจอแสดงผลของชุด WiFi 32 ลงในพื้นที่สีเหลืองของสเปรดชีตที่ระบุว่า "องศา F จากเทอร์โมมิเตอร์" และ "AD นับจาก WiFi Kit 32" ตามลำดับ สำหรับแต่ละสภาพแวดล้อมในสามสภาพแวดล้อม เมื่อป้อนการวัดทั้งหมดแล้ว พื้นที่สีเขียวของสเปรดชีตจะให้ค่าสัมประสิทธิ์ A, B และ C ที่กำหนดโดยสมการสไตน์ฮาร์ต-ฮาร์ต จากนั้นจึงคัดลอกและวางลงในซอร์สโค้ด
ดังที่ได้กล่าวไว้ก่อนหน้านี้ ผลลัพธ์ของสมการสไตน์ฮาร์ต-ฮาร์ตอยู่ในหน่วยองศาเคลวิน และการออกแบบนี้แสดงองศาฟาเรนไฮต์ การแปลงจากองศาเคลวินเป็นองศาฟาเรนไฮต์มีดังนี้:
ขั้นแรก แปลงองศาเคลวินเป็นองศาเซลเซียสโดยลบ 273.15 (องศาเคลวิน) จากสมการสไตน์ฮาร์ต-ฮาร์ต:
องศา C = (A + (B * (ล็อก (เทอร์มิสเตอร์))) + (ล็อก C * (เทอร์มิสเตอร์) * บันทึก (เทอร์มิสเตอร์) * บันทึก (เทอร์มิสเตอร์))) - 273.15
ประการที่สอง แปลงองศาเซลเซียสเป็นองศาฟาเรนไฮต์ดังนี้
องศา F = ((องศา C * 9) / 5) + 32
เมื่อสมการ Steinhart-Hart และสัมประสิทธิ์สมบูรณ์ ต้องใช้สมการที่สองเพื่ออ่านเอาต์พุตตัวแบ่งตัวต้านทาน แบบจำลองของตัวแบ่งตัวต้านทานที่ใช้ในการออกแบบนี้คือ:
vRef<---เทอร์มิสเตอร์<---vOut<---ตัวต้านทาน<---กราวด์
ที่ไหน:
- vRef ในการออกแบบนี้คือ 3.3vdc
- เทอร์มิสเตอร์คือโพรบอุณหภูมิ NTC ที่ใช้ในตัวแบ่งตัวต้านทาน
- vOut คือแรงดันเอาต์พุตของตัวแบ่งตัวต้านทาน
- ตัวต้านทานคือตัวต้านทาน 33k ที่ใช้ในตัวแบ่งตัวต้านทาน
- และพื้นดินก็คือพื้นดิน
v ตัวแบ่งตัวต้านทานออกจากการออกแบบนี้ต่ออยู่กับอินพุตอะนาล็อก WiFi Kit 32 A0 (พิน 36) และเอาต์พุตแรงดันไฟฟ้าของตัวแบ่งตัวต้านทานคำนวณได้ดังนี้:
vOut = vRef * ตัวต้านทาน / (ตัวต้านทาน + เทอร์มิสเตอร์)
อย่างไรก็ตาม ดังที่ระบุไว้ในสมการสไตน์ฮาร์ต-ฮาร์ต ค่าความต้านทานเทอร์มิสเตอร์เป็นสิ่งจำเป็นเพื่อให้ได้อุณหภูมิ ไม่ใช่แรงดันเอาต์พุตของตัวแบ่งตัวต้านทาน ดังนั้นการจัดเรียงสมการใหม่เพื่อให้ได้ค่าเทอร์มิสเตอร์จึงต้องใช้พีชคณิตเล็กน้อยดังนี้
คูณทั้งสองข้างด้วย "(ตัวต้านทาน + เทอร์มิสเตอร์)" ส่งผลให้:
vOut * (ตัวต้านทาน + เทอร์มิสเตอร์) = vRef * ตัวต้านทาน
หารทั้งสองข้างด้วย "vOut" ส่งผลให้:
ตัวต้านทาน + เทอร์มิสเตอร์ = (vRef * ตัวต้านทาน) / vOut
ลบ "ตัวต้านทาน" จากทั้งสองด้านส่งผลให้:
เทอร์มิสเตอร์ = (vRef * ตัวต้านทาน / vOut) - ตัวต้านทาน
และสุดท้าย ใช้คุณสมบัติการกระจาย ทำให้ง่ายขึ้น:
เทอร์มิสเตอร์ = ตัวต้านทาน * ((vRef / vOut) - 1)
แทนที่ WiFi Kit 32 A0 จำนวนอินพุตแบบอะนาล็อกที่ 0 ถึง 4095 สำหรับ vOut และแทนที่ค่า 4096 สำหรับ vRef สมการตัวแบ่งตัวต้านทานที่ให้ค่าความต้านทานเทอร์มิสเตอร์ที่กำหนดโดยสมการ Steinhart-Hart จะกลายเป็น:
เทอร์มิสเตอร์ = ตัวต้านทาน * ((4096 / จำนวนอินพุตแบบอะนาล็อก) - 1)
ด้วยคณิตศาสตร์ที่อยู่เบื้องหลังเรา เรามาประกอบอุปกรณ์อิเล็กทรอนิกส์กันเถอะ
ขั้นตอนที่ 2: การประกอบอุปกรณ์อิเล็กทรอนิกส์
สำหรับอุปกรณ์อิเล็กทรอนิกส์ ก่อนหน้านี้ฉันได้ประกอบ ESP32 Capacitive Touch Demonstrator https://www.instructables.com/id/ESP32-Capacitive… ด้วยการประกอบนั้น จำเป็นต้องมีส่วนประกอบเพิ่มเติมดังต่อไปนี้:
- เส้นลวด 28awg ห้าเส้น 4 นิ้ว (สีแดง 1 เส้น สีดำ 1 เส้น สีเหลือง 1 เส้น และสีเขียว 2 เส้น)
- หนึ่ง หัววัด "ET-72 Temperature Probe" Maverick (https://www.maverickthermometers.com/product/pr-003/)
- ขั้วต่อ "โทรศัพท์" ขนาด 2.5 มม. หนึ่งตัว ตัวยึดแผง (https://www.mouser.com/ProductDetail/502-TR-2A)
- ตัวต้านทาน 33k ohm 1% 1/8 วัตต์หนึ่งตัว
- หนึ่ง piezo buzzer https://www.adafruit.com/product/160 หากคุณเลือกเสียง Piezo Buzzer อื่น ตรวจสอบให้แน่ใจว่าตรงกับข้อกำหนดของเครื่องนี้ (ขับเคลื่อนด้วยคลื่นสี่เหลี่ยม <= เอาต์พุตปัจจุบันของ ESP32)
ในการประกอบส่วนประกอบเพิ่มเติม ฉันได้ทำตามขั้นตอนต่อไปนี้:
- ปอกและชุบปลายสายไฟแต่ละเส้นยาว 4 นิ้วตามที่แสดง
- บัดกรีปลายด้านหนึ่งของสายสีเหลืองและปลายด้านหนึ่งของตัวต้านทาน 33k ohm เข้ากับพิน "เคล็ดลับ" ของขั้วต่อโทรศัพท์
- บัดกรีปลายสายสีดำด้านหนึ่งไปยังปลายด้านที่ว่างของตัวต้านทาน 33k ohm และตัดลวดตัวต้านทานส่วนเกินออก
- ใช้ท่อหดด้วยความร้อนเหนือสายไฟและตัวต้านทาน
- บัดกรีปลายสายสีแดงด้านหนึ่งเข้ากับพิน "ปลอก" ที่ขั้วต่อโทรศัพท์
- บัดกรีปลายสายสีเหลืองที่ว่างเพื่อตรึง 36 บน WiFi Kit 32
- บัดกรีปลายสายสีดำที่ว่างเข้ากับพิน GND บน WiFi Kit 32
- บัดกรีปลายสายสีแดงที่ว่างเข้ากับพิน 3V3 บน WiFi Kit 32
- บัดกรีลวดสีเขียวหนึ่งเส้นกับตะกั่วหนึ่งอันของออดแบบเพียโซ
- บัดกรีลวดสีเขียวที่เหลือกับตะกั่วที่เหลือของออดแบบเพียโซ
- บัดกรีปลายสายพายโซสีเขียวสายใดเส้นหนึ่งเพื่อตรึง 32 บน WiFi Kit 32
- บัดกรีปลายสายพายโซสีเขียวที่เหลืออยู่กับพิน GND บน WiFi Kit 32
- เสียบหัววัดอุณหภูมิเข้ากับช่องเสียบโทรศัพท์
เมื่อเดินสายทั้งหมดเสร็จแล้ว ฉันตรวจสอบงานของฉันอีกครั้ง
ขั้นตอนที่ 3: การติดตั้งซอฟต์แวร์
ไฟล์ "AnalogInput.ino" เป็นไฟล์สภาพแวดล้อม Arduino ที่มีซอฟต์แวร์สำหรับการออกแบบ นอกเหนือจากไฟล์นี้ คุณจะต้องมีไลบรารีกราฟิก "U8g2lib" สำหรับจอแสดงผล WiFi Kit32 OLED (ดู https://github.com/olikraus/u8g2/wiki สำหรับข้อมูลเพิ่มเติมเกี่ยวกับไลบรารีนี้)
ด้วยไลบรารีกราฟิก U8g2lib ที่ติดตั้งในไดเร็กทอรี Arduino ของคุณและโหลด "AnalogInput.ino" ในสภาพแวดล้อม Arduino ให้คอมไพล์และดาวน์โหลดซอฟต์แวร์ลงใน WiFi Kit 32 เมื่อดาวน์โหลดและใช้งาน บรรทัดบนสุดของจอแสดงผล OLED บน WiFi Kit 32 ควรอ่าน "อุณหภูมิ" โดยแสดงอุณหภูมิปัจจุบันเป็นข้อความขนาดใหญ่ตรงกลางหน้าจอ
แตะปุ่มกลาง (T5) เพื่อแสดงหน้าจอ "ตั้งอุณหภูมิปลุก" ปรับอุณหภูมิการเตือนโดยกดปุ่มซ้าย (T4) หรือปุ่มขวา (T6) ตามที่อธิบายไว้ในบทนำ ในการทดสอบการเตือน ให้ปรับอุณหภูมิการเตือนให้เท่ากับหรือต่ำกว่าอุณหภูมิปัจจุบัน และควรส่งเสียงเตือน เมื่อตั้งค่าอุณหภูมิการเตือนเสร็จแล้ว ให้แตะปุ่มกลางเพื่อกลับไปยังการแสดงอุณหภูมิ
ค่า dProbeA, dProbeB, dProbeC และ dResistor ในซอฟต์แวร์คือค่าที่ฉันกำหนดระหว่างการสอบเทียบหัววัดที่ฉันใช้ในการออกแบบนี้ และควรสร้างการอ่านค่าอุณหภูมิที่แม่นยำภายในไม่กี่องศา หากไม่เป็นเช่นนั้น หรือหากต้องการความแม่นยำสูงขึ้น การสอบเทียบจะดำเนินการต่อไป
ขั้นตอนที่ 4: การปรับเทียบหัววัดอุณหภูมิ NTP
รายการต่อไปนี้จำเป็นสำหรับการสอบเทียบหัววัดอุณหภูมิ:
- หนึ่งโอห์มมิเตอร์แบบดิจิตอล
- เทอร์โมมิเตอร์แบบดิจิตอลที่แม่นยำซึ่งเป็นที่รู้จักซึ่งมีความสามารถตั้งแต่ 0 ถึง 250 องศาฟาเรนไฮต์
- น้ำน้ำแข็งหนึ่งแก้ว
- น้ำเดือดหนึ่งหม้อ (ระวังให้มาก!)
เริ่มต้นด้วยการรับค่าตัวต้านทาน 33k จริง:
- ถอดไฟออกจากบอร์ด WiFi Kit 32
- ถอดหัววัดอุณหภูมิออกจากขั้วต่อโทรศัพท์ (อาจจำเป็นต้องถอดสายสีดำออกจากชุด WiFi 32 ด้วย ทั้งนี้ขึ้นอยู่กับโอห์มมิเตอร์แบบดิจิตอลของคุณ)
- เปิดสเปรดชีต Steinhart-Hart
- วัดค่าของตัวต้านทาน 33k ohm โดยใช้โอห์มมิเตอร์แบบดิจิตอลและป้อนลงในกล่อง "ตัวต้านทาน" สีเหลืองในสเปรดชีตและลงในตัวแปร "dResistor" ในซอฟต์แวร์ แม้ว่าสิ่งนี้อาจดูมากเกินไป แต่ตัวต้านทาน 33k ohm 1% สามารถส่งผลต่อความแม่นยำของการแสดงอุณหภูมิได้อย่างแท้จริง
- เสียบหัววัดอุณหภูมิเข้ากับช่องเสียบโทรศัพท์
ต่อไป รับค่าสัมประสิทธิ์ Steinhart-Hart:
- เปิดเครื่องวัดอุณหภูมิดิจิตอลที่แม่นยำซึ่งเป็นที่รู้จัก
- เสียบแหล่งพลังงาน USB เข้ากับ WiFi Kit 32
- กดปุ่มซ้าย (T4) และขวา (T6) พร้อมกันค้างไว้จนกระทั่งหน้าจอ "Thermistor Counts" ปรากฏขึ้น
- อนุญาตให้ทั้งเทอร์โมมิเตอร์แบบดิจิตอลและเทอร์มิสเตอร์นับแสดงให้คงที่
- ป้อนอุณหภูมิและเทอร์มิสเตอร์นับเป็นคอลัมน์สีเหลือง "องศา F จากเทอร์โมมิเตอร์" และ "จำนวนโฆษณาจาก ESP32" สีเหลืองในแถว "ห้อง"
- ใส่ทั้งเทอร์โมมิเตอร์แบบดิจิตอลและโพรบเทอร์มิสเตอร์ลงในน้ำน้ำแข็ง และปล่อยให้จอแสดงผลทั้งสองมีเสถียรภาพ
- ป้อนอุณหภูมิและเทอร์มิสเตอร์นับเป็นคอลัมน์สีเหลือง "Degrees F จากเทอร์โมมิเตอร์" และ "AD Counts from ESP32" ในแถว "น้ำเย็น"
- ใส่ทั้งเทอร์โมมิเตอร์แบบดิจิตอลและโพรบเทอร์มิสเตอร์ลงในน้ำเดือด และปล่อยให้จอแสดงผลทั้งสองมีเสถียรภาพ
- ป้อนอุณหภูมิและเทอร์มิสเตอร์นับเป็นคอลัมน์สีเหลือง "Degrees F จากเทอร์โมมิเตอร์" และ "AD Counts from ESP32" ในแถว "Boiling Water"
- คัดลอกสัมประสิทธิ์ "A:" สีเขียวลงในตัวแปร "dProbeA" ในซอร์สโค้ด
- คัดลอกสัมประสิทธิ์ "B:" สีเขียวลงในตัวแปร "dProbeB" ในซอร์สโค้ด
- คัดลอกสัมประสิทธิ์ "C:" สีเขียวลงในตัวแปร "dProbeC" ในซอร์สโค้ด
รวบรวมและดาวน์โหลดซอฟต์แวร์ลงใน WiFi Kit 32
ขั้นตอนที่ 5: การพิมพ์เคสและการประกอบขั้นสุดท้าย 3 มิติ
ฉันพิมพ์ทั้ง "Case, Top.stl" และ "Case, Bottom.stl" ที่ความสูงของเลเยอร์.1 มม. เติม 50% โดยไม่มีการรองรับ
เมื่อพิมพ์เคสแล้ว ฉันประกอบอุปกรณ์อิเล็กทรอนิกส์และเคสดังนี้:
- ฉันถอดสายไฟออกจากปลั๊กสามรู กดรูเสียบให้อยู่ในตำแหน่ง "Case, Top.stl" จากนั้นบัดกรีสายไฟอีกครั้งกับปลั๊กรู โดยสังเกตที่ด้านซ้าย (T4) ตรงกลาง (T5) และด้านขวาอย่างระมัดระวัง (T6) สายไฟและปุ่มต่างๆ
- ยึดขั้วต่อโทรศัพท์เข้ากับรูกลมใน "Case, Bottom.stl" โดยใช้น็อตที่ให้มา
- วางตำแหน่งเสียง piezo ไว้ในชุดประกอบด้านล่างของเคสถัดจากขั้วต่อโทรศัพท์ และยึดให้แน่นด้วยเทปสองด้าน
- เลื่อนชุด WiFi 32 เข้าไปในตำแหน่งในชุดประกอบด้านล่างของเคส ตรวจสอบให้แน่ใจว่าพอร์ต USB บนชุด WiFi 32 อยู่ในแนวเดียวกับรูวงรีที่ด้านล่างของเคส (อย่ากดที่จอแสดงผล OLED เพื่อจัดตำแหน่งชุด WiFi 32 ไว้ที่ด้านล่างของเคส แอสเซมบลี เชื่อฉันในอันนี้ อย่าทำ!)
- กดส่วนประกอบด้านบนของเคสเข้ากับส่วนประกอบด้านล่างของเคสและยึดเข้าที่โดยใช้กาวไซยาโนอะคริเลตหนาจุดเล็กๆ ที่มุม
ขั้นตอนที่ 6: เกี่ยวกับซอฟต์แวร์
ไฟล์ "AnalogInput.ino" เป็นการแก้ไขไฟล์ "Buttons.ino" จาก "https://www.instructables.com/id/ESP32-Capacitive-Touch-Buttons/" ที่สอนได้ก่อนหน้านี้ของฉัน ฉันได้แก้ไขโค้ดต้นฉบับสามส่วน "setup()", "loop()" และ "InterruptService()" เพื่อรวมซอฟต์แวร์สำหรับโพรบและสัญญาณเตือน และฉันได้เพิ่มส่วนโค้ดเพิ่มเติมอีกสามส่วน "Analog()", "Buttons()" และ "Display()" เพื่อล้าง "loop()" และเพิ่มซอฟต์แวร์ที่จำเป็นสำหรับโพรบและสัญญาณเตือน
"Analog()" มีรหัสที่จำเป็นในการอ่านการนับเทอร์มิสเตอร์ในอาร์เรย์ หาค่าเฉลี่ยอาร์เรย์ของการนับ ใช้ตัวแบ่งแรงดันไฟฟ้าเพื่อสร้างค่าเทอร์มิสเตอร์ และสุดท้ายใช้สมการสไตน์ฮาร์ต-ฮาร์ตและสมการการแปลงอุณหภูมิเพื่อสร้างองศาฟาเรนไฮต์
"Buttons()" มีรหัสที่จำเป็นในการประมวลผลการกดปุ่มและแก้ไขอุณหภูมิการเตือน
"Display()" มีโค้ดที่จำเป็นในการนำเสนอข้อมูลบนจอแสดงผล OLED
หากคุณมีคำถามหรือความคิดเห็นใดๆ เกี่ยวกับโค้ด หรือแง่มุมอื่นๆ ของคำแนะนำนี้ อย่าลังเลที่จะถามและเราจะพยายามอย่างเต็มที่เพื่อตอบคำถามเหล่านั้น
ฉันหวังว่าคุณจะสนุกกับมัน (และยังคงตื่นอยู่)!
ขั้นตอนที่ 7: "โครงการที่จะเกิดขึ้น"
โปรเจ็กต์ที่จะเกิดขึ้น "Intelligrill® Pro" เป็นเครื่องตรวจสอบผู้สูบบุหรี่ที่มีหัววัดอุณหภูมิแบบคู่ซึ่งมี:
- การคำนวณหัววัดอุณหภูมิ Steinhart-Hart (ตรงข้ามกับตาราง "ค้นหา") เพื่อความแม่นยำที่เพิ่มขึ้นตามที่รวมอยู่ในคำแนะนำนี้
- เวลาที่คาดการณ์ว่าจะเสร็จสมบูรณ์บนโพรบ 1 ที่รวมความแม่นยำที่เพิ่มขึ้นซึ่งได้มาจากการคำนวณของสไตน์ฮาร์ต-ฮาร์ต
- หัววัดที่สอง หัววัด 2 สำหรับตรวจสอบอุณหภูมิของผู้สูบบุหรี่ (จำกัดที่ 32 ถึง 399 องศา)
- การควบคุมอินพุตแบบสัมผัสแบบ Capacitive (เช่นเดียวกับในคำสั่งก่อนหน้า)
- การตรวจสอบระยะไกลโดยใช้ WIFI (ด้วยที่อยู่ IP คงที่ช่วยให้สามารถตรวจสอบความคืบหน้าของผู้สูบบุหรี่ได้จากทุกที่ที่มีการเชื่อมต่ออินเทอร์เน็ต)
- ช่วงอุณหภูมิขยาย (32 ถึง 399 องศา)
- เสียงเตือนเมื่อเสร็จสิ้นทั้งภายในตัวส่งสัญญาณ Intelligrill® และอุปกรณ์ตรวจสอบ WiFi ส่วนใหญ่ได้
- แสดงอุณหภูมิได้ทั้ง องศา F หรือ องศา C
- รูปแบบเวลาใน HH:MM:SS หรือ HH:MM แบตเตอรี่แสดงเป็นโวลต์หรือ% ที่ชาร์จ
- และเอาต์พุต PID สำหรับผู้สูบบุหรี่ที่ใช้สว่าน
"Intelligrill® Pro" ยังคงทำการทดสอบเพื่อให้เป็น Intelligrill® ที่ใช้ HTML ที่มีคุณลักษณะครบถ้วนและเชื่อถือได้มากที่สุด ยังอยู่ในระหว่างการทดสอบ แต่ด้วยอาหารที่ช่วยในการเตรียมระหว่างการทดสอบ ฉันได้รับมากกว่าสองสามปอนด์
อีกครั้งฉันหวังว่าคุณจะสนุกกับมัน!
แนะนำ:
Super Probe ของ Carlson: 11 ขั้นตอน (พร้อมรูปภาพ)
Carlson's Super Probe: สวัสดีทุกคน เมื่อเร็ว ๆ นี้ฉันได้สร้าง "Carlson Super Probe" และฉันต้องการแบ่งปันวิธีการทำสิ่งนี้กับคุณ ก่อนอื่น ฟังวิดีโอของ Paul คุณจะเห็นว่าทำไมคุณควรสร้างโพรบนี้ ความละเอียดอ่อนนั้นเป็นอย่างไร นอกจากนี้ ถ้าคุณชอบเครื่องใช้ไฟฟ้า คุณต้อง
ETextile Multimeter Pin Probe: 10 ขั้นตอน (พร้อมรูปภาพ)
ETextile Multimeter Pin Probe: Pin Probe ตามที่เผยแพร่ใน eTextile Swatchbook 2017The Pin Probe เป็นสายทดสอบเพื่อเชื่อมต่อระหว่างผ้าหรือด้ายที่เป็นสื่อกระแสไฟฟ้ากับมัลติมิเตอร์ หัววัดประกอบด้วยหมุดสำหรับสัมผัสกับวัสดุสิ่งทอชั่วคราวแต่แน่นหนาโดยไม่ทำอันตราย
ETextile Clip Probe: 9 ขั้นตอน (พร้อมรูปภาพ)
ETextile Clip Probe: คลิปโพรบคือสายทดสอบเพื่อเชื่อมต่อกับผ้าหรือด้ายที่เป็นสื่อกระแสไฟฟ้า หัววัดประกอบด้วยคลิปที่ทำขึ้นเพื่อให้มีการสัมผัสทางไฟฟ้าชั่วคราวแต่มั่นคงกับวัสดุสิ่งทอโดยไม่ทำอันตราย ใช้ได้ดีเป็นพิเศษกับด้ายเส้นเล็ก
Arduino Nano Logic Probe: 17 ขั้นตอน (พร้อมรูปภาพ)
Arduino Nano Logic Probe: โครงการนี้เป็นเวอร์ชันใหม่ของ Arduino Logic Probe ของฉัน แต่ตอนนี้สร้างด้วย Arduino Nano แทน Arduino Uno จอแสดงผล 3 หลัก ตัวต้านทานสองสามตัว และ Arduino Nano เป็นส่วนประกอบของโปรเจ็กต์ที่น่าสนใจนี้ที่เ
The Brew Probe - ตัวตรวจสอบอุณหภูมิ WiFi: 14 ขั้นตอน (พร้อมรูปภาพ)
The Brew Probe - ตัวตรวจสอบอุณหภูมิ WiFi: ในคำแนะนำนี้เราจะสร้างหัววัดอุณหภูมิที่ใช้ MQTT และ Home Assistant เพื่อถ่ายทอดข้อมูลอุณหภูมิไปยังหน้าเว็บที่คุณสามารถตรวจสอบอุณหภูมิการงอกที่ใดก็ได้ในถังหมักของคุณ