
สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12

ในแง่ของฮาร์ดแวร์ โครงการใช้:
- Arduino Uno / เมก้า 2560
- อีเธอร์เน็ตชิลด์ Wiznet W5100 / โมดูลอีเธอร์เน็ต Wiznet W5200-W5500
- เซ็นเซอร์อุณหภูมิ DS18B20 บนบัส OneWire
- รีเลย์ SRD-5VDC-SL-C ใช้สำหรับการสลับหม้อไอน้ำ
ขั้นตอนที่ 1: คำอธิบายของ Ethernet Thermostat

Arduino เป็นแพลตฟอร์มฝังตัวที่มีประโยชน์ซึ่งสามารถนำมาใช้เพื่อสร้างเทอร์โมสตัทในห้องที่เราจะแสดงในวันนี้ เทอร์โมสตาร์ทสามารถเข้าถึงได้จากเครือข่าย LAN ที่ตั้งอยู่ ในขณะที่มีเว็บอินเตอร์เฟสซึ่งใช้ในการกำหนดค่าองค์ประกอบทั้งหมดของเทอร์โมสตัท เว็บอินเตอร์เฟสทำงานโดยตรงบน Arduino ในโหมดเว็บเซิร์ฟเวอร์ เว็บเซิร์ฟเวอร์อนุญาตให้เรียกใช้หน้า HTML อิสระหลายหน้า ซึ่งสามารถให้ข้อมูลหรือใช้งานได้ เว็บเซิร์ฟเวอร์ทำงานบนพอร์ต 80 -
รีเลย์แม่เหล็กไฟฟ้า SRD-5VDC-SL-C ซึ่งใช้ในโปรเจ็กต์นี้ สามารถสลับได้ถึง 10A ที่ 230V - กำลัง 2300W ในกรณีที่สลับวงจร DC (โหลด) สามารถเปลี่ยน 300W (10A ที่ 30V DC) อีกทางหนึ่ง รีเลย์ OMRON G3MB-202P SSR เข้ากันได้อย่างสมบูรณ์สำหรับแผนภาพการเดินสาย ซึ่งเหมาะสำหรับโหลดที่ไม่เหนี่ยวนำเท่านั้นและสำหรับวงจรไฟฟ้ากระแสสลับเท่านั้น กำลังสวิตชิ่งสูงสุด 460W (230V, 2A) การบริโภค Arduino พร้อมอีเธอร์เน็ตชิลด์และอุปกรณ์ต่อพ่วงอื่น ๆ อยู่ที่ระดับ 100-120mA เมื่อรีเลย์เปิดอยู่ เมื่อปิด ต่ำกว่า 200mA ที่แหล่งจ่ายไฟ 5V
ขั้นตอนที่ 2: เว็บอินเตอร์เฟส

เว็บอินเตอร์เฟสสำหรับตัวควบคุมอุณหภูมิช่วยให้:
- ดูอุณหภูมิแบบเรียลไทม์จากเซ็นเซอร์ DS18B20
- ดูสถานะรีเลย์ตามเวลาจริงพร้อมการเปลี่ยนแปลงเอาต์พุตแบบไดนามิกบนหน้า
- แก้ไขอุณหภูมิเป้าหมาย (อ้างอิง) ในช่วง 5 ถึง 50 ° C ด้วยขั้นตอน 0.25 ° C
- แก้ไขฮิสเทรีซิสในช่วง 0 ถึง 10 ° C ด้วยขั้นตอน 0.25 ° C
เว็บอินเตอร์เฟสได้รับการออกแบบมาเพื่อรองรับหน้าจอที่ใหญ่ขึ้นและเล็กลง มันตอบสนอง รองรับหน้าจอความละเอียดสูงแบบไวด์สกรีน แต่ยังรวมถึงอุปกรณ์พกพา อินเทอร์เฟซใช้รูปแบบ CSS ที่นำเข้าของเฟรมเวิร์ก Bootstrap จากเซิร์ฟเวอร์ CDN ภายนอก ซึ่งจะโหลดอุปกรณ์ฝั่งไคลเอ็นต์เมื่อเปิดเพจที่ทำงานบน Arduino เนื่องจาก Arduino Uno มีหน่วยความจำจำกัด จึงสามารถเรียกใช้หน้าที่มีขนาดไม่กี่ kB เท่านั้น ด้วยการนำเข้ารูปแบบ CSS จากเซิร์ฟเวอร์ภายนอก จะช่วยลดประสิทธิภาพและโหลดหน่วยความจำของ Arduino การใช้งานซอฟต์แวร์ (สำหรับ Arduine Uno) ใช้หน่วยความจำแฟลช 70% (บูตโหลดเดอร์ 32kB - 4kB) และหน่วยความจำ RAM 44% (2kB)
ส่วนที่คงที่ของหน้าเว็บ (ส่วนหัวและส่วนท้ายของเอกสาร HTML, การเชื่อมโยง Bootstrap CSS, เมตาแท็ก, ส่วนหัวการตอบสนอง HTTP, ประเภทเนื้อหา, แบบฟอร์ม และอื่นๆ) จะถูกจัดเก็บโดยตรงในหน่วยความจำแฟลชของ Arduino ซึ่งสามารถลดปริมาณ RAM ที่ใช้สำหรับผู้ใช้ได้อย่างมาก - เนื้อหาที่สร้างขึ้น เว็บเซิร์ฟเวอร์จึงมีความเสถียรมากกว่าและสามารถจัดการการเชื่อมต่อหลายอุปกรณ์ในเครือข่ายได้พร้อมกัน
เพื่อที่จะรักษาค่าที่ตั้งไว้แม้หลังจากไฟฟ้าขัดข้อง ค่าเหล่านี้จะถูกเก็บไว้ในหน่วยความจำ EEPROM ของ Arduino อุณหภูมิอ้างอิงเพื่อชดเชย 10, ฮิสเทรีซิสถึงออฟเซ็ต 100 แต่ละค่าใช้พื้นที่สูงสุด 5B ในหน่วยความจำ EEPROM ขีด จำกัด การถอดความ EEPROM อยู่ที่ระดับ 100,000 การถอดเสียง ข้อมูลจะถูกเขียนทับเมื่อส่งแบบฟอร์ม HTML เท่านั้น ในกรณีที่อุปกรณ์ไม่มีสิ่งใดเก็บไว้ในออฟเซ็ต EEPROM ที่กล่าวถึงในการเริ่มต้นครั้งแรก การเขียนอัตโนมัติจะดำเนินการโดยใช้ค่าเริ่มต้น - อ้างอิง: 20.25, ฮิสเทรีซิส 0.25 ° C
เมตาแท็กรีเฟรชจะรีเฟรชหน้า Arduino ทั้งหมดทุกๆ 10 วินาที ถึงเวลานี้จำเป็นต้องเขียนการเปลี่ยนแปลงสำหรับตัวควบคุมอุณหภูมิ มิฉะนั้น หน้าต่างอินพุตจะถูกรีเซ็ตเมื่อรีเฟรชหน้า เนื่องจากไลบรารีอีเทอร์เน็ตไม่ได้รวมการใช้เว็บเซิร์ฟเวอร์แบบอะซิงโครนัส หน้าทั้งหมดต้องถูกเขียนใหม่ ข้อมูลไดนามิกที่เปลี่ยนแปลงเป็นหลักคือค่าปัจจุบันของเอาต์พุต - เปิด / ปิด
ขั้นตอนที่ 3: หน้า HTML ทำงานที่เว็บเซิร์ฟเวอร์, แผนผัง, ซอร์สโค้ด

หน้า HTML ที่ทำงานบน Arduino:
- / - หน้ารูทที่มีแบบฟอร์ม, รายการเอาต์พุตลอจิกปัจจุบันสำหรับรีเลย์, อุณหภูมิ
- /action.html - ประมวลผลค่าจากแบบฟอร์ม เขียนลงในหน่วยความจำ EEPROM เปลี่ยนเส้นทางผู้ใช้กลับไปที่รูทเพจ
- /get_data/ - กระจายข้อมูลเกี่ยวกับอุณหภูมิปัจจุบัน อุณหภูมิอ้างอิง และฮิสเทรีซิสไปยังบุคคลที่สาม (คอมพิวเตอร์ ไมโครคอนโทรลเลอร์ ไคลเอนต์อื่น ๆ …) ในรูปแบบ JSON
นอกจากนี้ยังมีเทอร์โมสตัทรุ่นเพิ่มเติมซึ่งรวมถึง:
- โหมดแมนนวลสำหรับรีเลย์ (ไม่ จำกัด เวลา, เปิด / ปิดอย่างหนัก)
- นาฬิกาสุนัขเฝ้าบ้าน
- มีเซ็นเซอร์เพิ่มเติม เช่น SHT21, SHT31, DHT22, BME280, BMP280 และอื่นๆ
- โหมดทำความเย็น
- ควบคุมและกำหนดค่าผ่าน RS232 / UART โดยไม่ขึ้นกับอีเธอร์เน็ต
- การควบคุมอุณหภูมิแบบ PID สำหรับเทอร์โมสตัท
- ความเป็นไปได้ในการใช้แพลตฟอร์ม ESP8266, ESP32 สำหรับเทอร์โมสตัท
การใช้งานโปรแกรมสำหรับโครงการสามารถดูได้ที่: https://github.com/martinius96/termostat-ethernet/ การใช้งานประกอบด้วยโปรแกรมสำหรับที่อยู่ IPv4 แบบคงที่ / ไดนามิกที่กำหนดให้กับอีเทอร์เน็ตชิลด์
เทอร์โมสตัทมีไว้สำหรับอุณหภูมิในร่มเท่านั้น! (สูงกว่า 0 ° C) ซึ่งปรับตรรกะของระบบ สามารถเปลี่ยนเทอร์โมสตัทในห้องที่มีอยู่ด้วยเทอร์โมสตัทได้ สามารถเปลี่ยนเทอร์โมสตัทในตู้เย็นชั่วคราว รักษาอุณหภูมิให้คงที่ใน terrarium และอื่นๆ ในทำนองเดียวกัน
แนะนำ:
DIY 10/100M Ethernet PoE Injector: 6 ขั้นตอน

DIY 10/100M Ethernet PoE Injector: เราจะสร้าง PoE inector แบบง่าย ๆ เหมาะสำหรับ 10/100M ethernet และสามารถขับเคลื่อนด้วยแบตเตอรี่ได้โดยตรง
Raspberry Pi Ethernet เป็น Wifi Bridge: 7 ขั้นตอน

Raspberry Pi Ethernet to Wifi Bridge: ฉันมีเครือข่ายทดสอบของ Raspberry Pies อุปกรณ์ต่างๆ คอมพิวเตอร์และอุปกรณ์เครือข่ายอื่นๆ ทั้งหมดได้รับการจัดการโดยไฟร์วอลล์/เราเตอร์ที่แพร่หลาย และฉันต้องการเชื่อมต่อกับอินเทอร์เน็ตเพื่อที่ฉันจะได้ ดึงการอัปเดต ซอฟต์แวร์ ฯลฯ น่าเสียดาย
เครื่องทดสอบสายเคเบิล Ethernet RJ45: 5 ขั้นตอน (พร้อมรูปภาพ)

เครื่องทดสอบสายเคเบิล Ethernet RJ45: สวัสดีทุกคน นี่เป็นคำสั่งแรกของฉัน ให้อภัยคำอธิบายที่น้อยกว่าที่เหมาะสมของฉัน (และรูปถ่ายที่ขาดหายไปบางส่วน) - แนวคิด (คือความต้องการจริง ๆ ) คือการตรวจสอบสายเคเบิลที่เหมาะสมของสายยาว (40 ม. หรือ ดังนั้น) สายเคเบิลอีเธอร์เน็ตจากแฟลตของฉันถึงชั้นใต้ดิน รู
แชร์ WiFi ด้วยพอร์ต Ethernet บน Raspberry Pi: 7 ขั้นตอน (พร้อมรูปภาพ)

แชร์ WiFi กับพอร์ตอีเทอร์เน็ตบน Raspberry Pi: คุณมีเครื่องพิมพ์เลเซอร์หรือสแกนเนอร์รุ่นเก่าที่ยังคงใช้งานได้ดี แต่ไม่รองรับ wifi หรือไม่ หรือบางทีคุณอาจต้องการเชื่อมต่อฮาร์ดไดรฟ์ภายนอกเป็นอุปกรณ์สำรองข้อมูลบนเครือข่ายของคุณและพอร์ตอีเทอร์เน็ตบนเราเตอร์ที่บ้านของคุณหมด คำสั่งนี้
Ethernet Link Tester: 5 ขั้นตอน (พร้อมรูปภาพ)

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