สารบัญ:

Crawl Space Monitor (aka: No More Frozen Pipes!!): 12 ขั้นตอน (พร้อมรูปภาพ)
Crawl Space Monitor (aka: No More Frozen Pipes!!): 12 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Crawl Space Monitor (aka: No More Frozen Pipes!!): 12 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Crawl Space Monitor (aka: No More Frozen Pipes!!): 12 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Best Way To Fix Your Wet Crawl Space! 2024, พฤศจิกายน
Anonim
Crawl Space Monitor (หรือที่รู้จักว่า: No More Frozen Pipes!!)
Crawl Space Monitor (หรือที่รู้จักว่า: No More Frozen Pipes!!)

น้ำที่บ้านของฉันมาจากบ่อน้ำของฉันผ่านพื้นที่รวบรวมข้อมูลที่ไม่มีเครื่องทำความร้อน ระบบประปาในครัวและห้องน้ำทั้งหมดไหลผ่านพื้นที่นี้เช่นกัน (ระบบประปาในอาคารเป็นสิ่งที่ต้องคิดภายหลังในช่วงกลางทศวรรษที่ 70 ของบ้านหลังนี้!) ฉันเคยใช้โคมไฟให้ความร้อนกับปลั๊กควบคุมอุณหภูมิ "ถังสต็อก" เพื่อรักษาอุณหภูมิให้สูงกว่าจุดเยือกแข็ง มีปัญหาสำคัญสองสามประการกับข้อตกลงนี้:1 - ไม่มีการมองเห็น ข้อบ่งชี้แรกของหลอดไฟที่ไหม้คือท่อที่แข็งตัว!2 - บางครั้งปลั๊กก็ไม่ยอมปิด ที่สร้างความประหลาดใจที่น่ารังเกียจมากับค่าไฟฟ้า3 - ไม่มีความละเอียด ฉันเก็บ 3 หลอด "ออนไลน์" (รวม 750 วัตต์) และมันก็เป็นวิธีแก้ปัญหาทั้งหมดหรือไม่มีเลย (2 หลอดไม่สามารถรับมือได้เสมอไป) หลังจากที่ได้รู้จักกับ Arduino และได้เห็นบางสิ่งที่คนอื่นทำกับมัน ฉันก็ตัดสินใจว่าจะลองดูสักครั้ง ฉันจะยอมรับทันทีว่าฉันได้ขัดขวางและปรับแต่งโค้ดตัวอย่างจากโปรเจ็กต์ของคนอื่นอย่างไร้ยางอายเพื่อให้ใช้งานได้ แม้ว่าในที่สุดแล้ว ฉันก็เขียนทุกอย่างใหม่เกือบทั้งหมด ตอนแรกฉันสร้าง "WiFi Weather Station" ที่ฉันพบ Adafruit.com และแก้ไข แทนที่จะอัปเดตเว็บไซต์ ฉันใช้ Amazon Web Services เพื่อส่งการอัปเดตสถานะ SMS ให้ฉัน ฉันยังเพิ่มการควบคุมรีเลย์ 110V บางตัว (https://www.adafruit.com/products/268) จากนั้นฉันก็ "ฉลาด" และตัดสินใจที่จะ "ทำให้แข็งแกร่ง" มัน -- ก็ -- บางอย่างทำให้บางอย่างสั้นลง และฉันก็พ่นควันสีฟ้าวิเศษออกมา ผัดทุกอย่าง… ไม่มีสัญญาณไวไฟ CC3000 อีก คราวนี้ฉันทำสิ่งที่แตกต่างไปจากเดิม ฉันสร้างมันขึ้นมาเพื่อให้มีการตรวจสอบแบบโต้ตอบผ่านอินเทอร์เฟซแบบอนุกรม จากนั้นจึงเพิ่มอินเทอร์เฟซ EZ-Link Bluetooth FTDI (ไม่ต้องลากแล็ปท็อปไปไว้ที่บ้านเพื่ออัปเดตซอฟต์แวร์อีกต่อไป!!!) ฉันยังสร้างอินเทอร์เฟซ Python ที่เชื่อมต่อกับเครื่องผ่านบลูทูธ สืบค้นข้อมูลเป็นประจำ และแสดงข้อมูลสถานะบน Mac ของฉัน (นอกจากนี้ยังมี "อินเทอร์เฟซสำหรับมนุษย์" ที่สามารถเข้าถึงได้โดยซอฟต์แวร์การจำลองเทอร์มินัล) จากการเขียนใหม่และลบรหัส WiFi และ RTC ทั้งหมด โครงการจึงย่อขนาดจากมากกว่า 29K เหลือเพียง 10K นอกจากนี้ยังได้ปรับปรุงความน่าเชื่อถือในขอบเขตที่สุนัขเฝ้าบ้านฮาร์ดแวร์ไม่ได้ทำงานเลยในช่วงสองสามสัปดาห์ที่มันทำงานและฉันได้ปรับแต่งแล้ว

2/17/16 อัปเดต/หมายเหตุ: ในความพยายามที่จะจัดรูปแบบที่ถูกต้องในโค้ดบางตัว (โดยเฉพาะการเยื้องของโค้ด Python) สิ่งต่างๆ เปลี่ยนจากน่าเกลียดเป็นใช้ไม่ได้ ฉันแน่ใจว่าปัญหาอยู่ที่จุดสิ้นสุดของฉัน และฉันจะพยายามหาทางออก ก่อนหน้านั้น ฉันได้เพิ่มลิงก์ไปยังไฟล์โค้ดผ่าน DropBox ทุกคนควรเข้าถึงได้ ถ้าไม่ใช่ โปรดแจ้งให้เราทราบเพื่อที่เราจะได้ติดต่อคุณด้วยวิธีอื่น!

ขั้นตอนที่ 1: ปัญหาที่ต้องแก้ไข

ระบบจำเป็นต้องทำสิ่งต่อไปนี้สำหรับฉัน:1 - ตรวจสอบอุณหภูมิในพื้นที่รวบรวมข้อมูล2 - เปิดหลอดความร้อนตามความจำเป็นเพื่อรักษาอุณหภูมิให้สูงกว่าจุดเยือกแข็ง3 - เมื่อไม่ได้ใช้งาน ให้ทดสอบหลอดไฟเป็นระยะๆ และให้ทัศนวิสัย ของสถานะของพวกเขา4 - ให้ฉันมองเห็นอุณหภูมิและสถานะของระบบ รวมถึง: - ระบบกำลังทำงานอยู่หรือไม่ - ตอนนี้อุณหภูมิเท่าไหร่? - อุณหภูมิที่เย็นที่สุดคืออะไร? - วิ่งกี่หลอด? - กี่หลอดทดสอบดี? - เวลาทั้งหมดของฉันใน "นาทีแสง" (หรือที่เรียกว่า "เวลาเผาไหม้") คืออะไร5 - ทำทั้งหมดข้างต้นโดยที่ฉันไม่ต้องคลานใต้บ้าน!!!ฉันตัดสินใจว่าวิธีที่ง่ายที่สุดในการทดสอบการทำงานของหลอดไฟคือใช้ เซ็นเซอร์วัดแสง ปัญหาอื่นๆ ที่ฉันต้องการแก้ไขคือรอบเวลาของไฟ ช้าเกินไปและฉันกำลังเผาไหม้ไฟฟ้าโดยไม่จำเป็น เร็วเกินไปและฉันเสี่ยงต่อการเผาไหม้จากการเปิดและปิดทั้งหมดด้วยการทำความร้อนและความเย็นที่เกี่ยวข้อง

ขั้นตอนที่ 2: ฮาร์ดแวร์

ฮาร์ดแวร์
ฮาร์ดแวร์

2 โคมไฟความร้อน 250 วัตต์1 โคมไฟทำงาน 500 วัตต์ (หนึ่งในโคมไฟความร้อนของฉันหายไป ดังนั้นนี่คือสแตนด์อิน)Arduino UnoDHT22 เซ็นเซอร์อุณหภูมิ/ความชื้นGA1A12S202 เซ็นเซอร์วัดแสงPowerSwitch 110V รีเลย์บลูฟรุต EZ-Link อินเทอร์เฟซแบบอนุกรมและโปรแกรมเมอร์กล่องไฮเทค (อ่าง Rubbermaid ขนาดแซนวิช)เคเบิ้ลแกลนด์บอร์ดขนาด 1/2 ขนาดแผ่นอะคริลิกสำหรับเขียงหั่นขนมและสายจัมเปอร์ของ ArduinoColeman 5-outlet "workshop strip"ฉันยังใช้ Adafruit Trinket เป็นสุนัขเฝ้าบ้านด้วยฮาร์ดแวร์ แต่ได้รับการพิสูจน์แล้วว่าไม่จำเป็น (โชคร้ายแน่นอน!) และฉัน เขียนคำแนะนำแยกต่างหากเกี่ยวกับเรื่องนี้ดังนั้นฉันจะไม่ทำซ้ำที่นี่ ผมเปีย Coleman เป็นผลิตภัณฑ์ที่ดี เพราะมี 4 ช่องสำหรับโคมไฟความร้อนของฉัน บวกกับเต้ารับสำหรับแหล่งจ่ายไฟ Arduino โดยไม่ต้องใช้ตัวแยกหรือปลั๊กพ่วงเพิ่มเติม ให้คะแนนเต็ม 15 แอมป์พร้อมสวิตช์และเบรกเกอร์ภายใน มันสามารถจัดการทุกอย่างที่ฉันสามารถดึงผ่านเต้ารับเดียว

ขั้นตอนที่ 3: แนวทาง

ในขณะที่ระบบเป็นแอปพลิเคชันที่สร้างขึ้นเพื่อนั่งรอ และทำบางสิ่งที่ค่อนข้างช้า สิ่งที่ฉันไม่ต้องการทำคือสร้างระบบที่ตัวควบคุมอยู่ในวงจรการหน่วงเวลา () ที่ไม่ตอบสนอง ฉันยังต้องการที่จะเปลี่ยนพารามิเตอร์การกำหนดค่าให้ใกล้เคียงกับแบบทันทีที่ฉันทำได้ – แน่นอนว่าไม่ใช่ในลักษณะที่จำเป็นต้องเขียนโค้ดใหม่หรือดำเนินการค้นหาและแทนที่จำนวนมากบนแหล่งที่มาฉัน พบบทความที่ยอดเยี่ยมที่สุดของ Bill Earl เกี่ยวกับ "Multitasking the Arduino" (เริ่มที่นี่: https://learn.adafruit.com/multi-tasking-the-arduino-part-1) และยุ่งมาก ด้วยการสร้างคลาส "ตัวจับเวลา" และ "ตัวทำความร้อน" ฉันสามารถทำฟังก์ชันจับเวลาทั้งหมดที่ฉันต้องการได้โดยไม่ต้องใช้การหน่วงเวลา () (โดยมีข้อยกเว้นเพียงสองสามข้อ) และกำหนดค่าหลอดไฟ ("ตัวทำความร้อน") ด้วยรหัสบรรทัดเดียวสำหรับแต่ละรายการ หนึ่ง.

ขั้นตอนที่ 4: การเดินสายไฟ

การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ

แผนภาพ Fritzing ไม่รวม Bluefruit EZ-LinkArduino 5V และกราวด์ไปยัง breadboard busDHT22 พิน 1 ถึง 5V busDHT22 พิน 2 ถึง Arduino พิน 7DHT22 พิน 4 ถึง Ground bus10K ตัวต้านทานระหว่าง DHT22 พิน 1 และ 2GA1A12S202 VCC พินถึง 5V busGA1A12S202 GND พินกับกราวด์ busGA1A12S202 พิน OUT ไปยัง Arduino A0Arduino 3V พินไปยังพิน Arduino AREF รีเลย์กราวด์นำไปสู่กราวด์บัสรีเลย์ 1 พลังงานนำไปสู่ Arduino A1Relay 2 พลังงานนำไปสู่ Arduino A2Relay 3 พลังงานนำไปสู่ Arduino A3Relay 4 พลังงานนำไปสู่ Arduino A4 ส่วนใหญ่ของการเชื่อมต่อเหล่านี้สามารถจัดเรียงใหม่ได้ตามที่คุณต้องการ. สิ่งเดียวที่สำคัญคือตะกั่ว OUT บนเซ็นเซอร์แสงจะต้องไปที่พินอะนาล็อก พินเอาต์นี้จะทำงานกับโค้ดของฉันตามที่เขียน ถ้าคุณใช้ฮาร์ดแวร์เฝ้าบ้าน คุณจะเห็นโค้ดของฉันทำให้ฮาร์ตบีตบน Arduino pin 2

ขั้นตอนที่ 5: รหัส Arduino, ร่างหลัก

CrawlSpace_monitor.ino

ขั้นตอนที่ 6: หมายเหตุเกี่ยวกับรหัส

บรรทัดของรหัสต่อไปนี้สร้างอินสแตนซ์ของตัวทำความร้อนและกำหนดพารามิเตอร์การทำงาน: // Heater(relayPin, onTemp(f), offTemp(f), minMinutes, testInterval(minutes), luxDelta)Heater heater1 = Heater(A1, 38, 43, 20, 1440, 5);ฮีตเตอร์ฮีตเตอร์2 =ฮีตเตอร์(A2, 36, 41, 20, 1440, 5);ฮีตเตอร์ฮีตเตอร์3 =ฮีตเตอร์(A3, 34, 39, 20, 1440, 5);ฮีตเตอร์ฮีตเตอร์4 =ฮีตเตอร์ (A4, 32, 37, 20, 1440, 5);(และใช่ ฉันกำหนดฮีตเตอร์ทั้ง 4 ตัว แม้ว่าตอนนี้ฉันจะทำงานแค่ 3 ตัว ฉันยังต้องรับรีเลย์อีกตัว แต่เพิ่มฮีตเตอร์ตัวที่ 4 เข้าไป ง่ายเหมือนเสียบปลั๊ก) ฉันเซอุณหภูมิทริกเกอร์ของพวกเขา เริ่มต้นที่ 38 องศาสำหรับอันแรกและสิ้นสุดที่ 32 สำหรับอันที่ 4 ที่ไม่มีอยู่จริง สิ่งหนึ่งที่ฉันพบเมื่อเริ่มทำสิ่งนี้ร่วมกันคือฉันต้องกำหนดช่วงของอุณหภูมิและกำหนด "เวลาการเผาไหม้" ขั้นต่ำ มิฉะนั้นฉันเปิดและปิดไฟจักรยานอย่างบ้าคลั่ง ที่นี่ฉันให้แต่ละคนมีการแพร่กระจาย 5 องศารวมทั้งเวลาการเผาไหม้ขั้นต่ำ 20 นาที ฉันตั้งค่าช่วงเวลาการทดสอบเป็น 24 ชั่วโมง และตั้งค่า 5 ลักซ์เป็นการอ่านค่าแสงขั้นต่ำที่ฉันต้องการเพื่อระบุว่าหลอดไฟยังคงทำงานอยู่ เกือบทุกอย่างที่ต้องการการกำหนดค่าอยู่ที่นี่ในโค้ด 4 บรรทัดนี้

ขั้นตอนที่ 7: รหัส Arduino คลาส

ฉันสร้าง 3 คลาสสำหรับโครงการนี้ พวกเขาคือ "ตัวจับเวลา" "ตัวทำความร้อน" และ "ตัวสะสม" ด้วยความคิดอีกเล็กน้อย ฉันน่าจะพับตัวสะสมเป็นตัวจับเวลาได้ แต่ฉันยังไม่ได้ เต็มแล้ว:heater.h

timer.h

accumulator.h

ขั้นตอนที่ 8: การตรวจสอบระบบ

การตรวจสอบระบบ
การตรวจสอบระบบ

ฉันสร้างอินเทอร์เฟซเดียวสำหรับจอภาพสองจอแยกกัน เป็นเซสชันแบบโต้ตอบบนคอนโซลซีเรียล ในกรณีของฉัน ฉันใช้ EZ-Link ของ Bluefruit เพื่อให้ฉันสามารถเข้าถึงระบบโดยไม่ต้องคลานใต้บ้านหรือพยายามดึงสาย USB ระหว่างตงพื้น! ข้อดีเพิ่มเติมของ EZ-Link คือฉันสามารถอัปโหลดรหัสโปรแกรมใหม่ไปยัง Arduino ผ่าน Bluetooth ได้เช่นกัน สามารถเข้าถึงอินเทอร์เฟซ "มนุษย์" (บลูทูธหรือสายเคเบิลจริง) ด้วยซอฟต์แวร์จำลองเทอร์มินัล รวมถึงซีเรียลของ Arduino IDE เฝ้าสังเกต. เมื่อคุณเชื่อมต่อครั้งแรก จะไม่มีการตอบสนอง แต่การกดปุ่ม "u" (สำหรับ "อัปเดต") และ "t" (สำหรับ "ทดสอบ") จะทำให้คุณได้ผลลัพธ์ที่แสดงในภาพหน้าจอ "m" ("monitor") และ "s" ("sys check") ทำให้คุณได้รับข้อมูลเดียวกัน แต่อยู่ในรูปแบบที่อ่านง่ายกว่ามาก สิ่งเหล่านี้มีจุดประสงค์เพื่อ "ขูด" โดยโปรแกรมอื่นสำหรับการแสดงผลอัตโนมัติ ฉันรวบรวมสคริปต์ Python ที่ทำอย่างนั้น คีย์อื่นๆ จะรวบรวมข้อความแสดงข้อผิดพลาดปรากฏขึ้น คุณจะเห็นค่าสำหรับ "เวลาเบิร์น" - ลองนึกถึง "bulb minutes" - 1 หลอดไฟสำหรับ 10 นาที = 10 นาที 3 หลอดไฟสำหรับ 10 นาที = 30 นาที

ขั้นตอนที่ 9: สคริปต์ Python

สคริปต์ Python
สคริปต์ Python

crawlspace_gui.py

ขั้นตอนที่ 10: ยังคงทำ…

อาจไม่สวยหรือสมบูรณ์แบบ แต่มีประสิทธิภาพและพิสูจน์แล้วว่าเชื่อถือได้ และฉันยังไม่เคยมีปัญหาเรื่องท่อแช่แข็งในฤดูหนาวนี้!!! ฉันมีรายการสิ่งที่ต้องทำ แน่นอน ตอนนี้ใช้งานได้แล้ว ฉันอาจจะหรือไม่เคยทำสิ่งพวกนี้ให้สำเร็จเลยก็ได้:รับ Bluetooth ที่ทำงานบน Raspberry Pi ตัวใดตัวหนึ่งของฉัน เพื่อให้ฉันสามารถสร้างจอภาพเฉพาะได้ เรียนรู้เกี่ยวกับ Python เพิ่มเติม - จากนั้นจึงทำความสะอาด Python อินเตอร์เฟซ. การแยกองค์ประกอบนั้นไม่ได้ตั้งใจและฉันไม่เข้าใจว่าทำไมมันถึงอยู่ที่นั่น เพิ่มอินเทอร์เฟซให้กับบางอย่างเช่นบริการ IO ของ Adafruit เพื่อให้ฉันสามารถตรวจสอบได้จากทุกที่ เพิ่มข้อความแจ้งเตือน ย้ายไปยังตัวควบคุมที่เล็กกว่า (อาจเป็น Metro มินิหรือ Trinket Pro?) รีเลย์ราคาไม่แพง และบรรจุภัณฑ์ที่ดีขึ้น นำออกจากเขียงหั่นขนมและเข้าสู่บอร์ด "Perma Proto" พารามิเตอร์การกำหนดค่าใน EEPROM อินเทอร์เฟซที่ละเอียดยิ่งขึ้นซึ่งจะระบุว่าหลอดไฟใดดี และ อาจถึงเวลาเผาไหม้สำหรับหลอดไฟแต่ละดวง เมื่อฉันทำเสร็จแล้วฉันจะกลับมาและอัปเดตคำแนะนำนี้

ขั้นตอนที่ 11: อัปเดต 3/16 บิลด์ "ถาวร"

อัปเดต 3/16
อัปเดต 3/16
อัปเดต 3/16
อัปเดต 3/16
อัปเดต 3/16
อัปเดต 3/16

ฉันได้พักในสภาพอากาศหนาวเย็น ฉันได้ดึงเครื่องและย้ายไปยังตัวควบคุมที่เล็กกว่า (ฉันตั้งใจจะใช้ Trinket Pro แต่มี Adafruit Metro Mini นั่งอยู่รอบๆ ที่ไม่มีผู้อ้างสิทธิ์จากโครงการอื่นใด) บัดกรีมันขึ้น บอร์ด Perma-Proto และใส่ไว้ทั้งหมดในกรณีที่ดีขึ้น โดยดูจากความน่าเชื่อถือของมัน ฉันไม่ได้ใส่เครื่องมือเฝ้าระวังฮาร์ดแวร์กลับเข้าไป ฉันยังคงใช้หลอดไฟ/รีเลย์ 3 ดวงเท่านั้นซึ่งระบบจะจัดการ 4 โมดูล Bluetooth อยู่บนส่วนหัวที่บัดกรี จึงสามารถถอดออกได้หากต้องการที่อื่น ไม่มีการเปลี่ยนแปลงโค้ดที่จำเป็นในการย้ายไปยังคอนโทรลเลอร์ใหม่ - การคอมไพล์ใหม่และโหลดอย่างง่ายทำให้ฉันพร้อมใช้งานในเวลาไม่กี่นาที (Metro Mini มีพินเอาต์เหมือนกับ Arduino Uno และเป็นโปรเซสเซอร์ ATMega328 ด้วย)

ขั้นตอนที่ 12: อัปเดต 12/1/2018 - ยินดีต้อนรับสู่ IoT

ระบบทำงานได้อย่างไม่มีที่ติสำหรับเรา หลังจากสองฤดูหนาวค่อนข้างจะรุนแรง ไม่มีท่อแช่แข็ง ที่จริงแล้วระบบสามารถรักษาท่อได้โดยไม่ไหม้เกิน 2 หลอดเลยทีเดียว การมีหลอดไฟดวงที่ 3 ทางออนไลน์เป็นการประกันที่ดี แต่เราไม่เคยต้องใช้เลยจนถึงปัจจุบัน

เข้าสู่ปีที่ 3 สำหรับระบบ โมดูล Bluetooth ล้มเหลว เรายังสร้างบ้านหลังใหม่ ดังนั้นระบบตรวจสอบจึงอยู่นอกช่วงบลูทูธได้ดี (บ้านหลังเก่าอยู่ได้ชั่วขณะหนึ่ง แต่ไม่ใช่ตลอดไป) ในช่วงเวลาดังกล่าว ฉันได้ทำอะไรมากมายกับโปรเซสเซอร์ที่เปิดใช้งาน ESP8266 WiFi; ทั้งในรูปแบบ Adafruit Feather และในรูปแบบโอเพ่นซอร์ส "NodeMCU" โดยทั่วไปแล้ว NodeMCU สามารถพบได้ใน Amazon ในราคาประมาณ $5 - น้อยกว่ามากหากคุณซื้อจำนวนมากและ/หรือจากใครบางคนเช่น AliExpress

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

ตัวจัดการเครือข่าย WiFi เพื่อกำจัดข้อมูลรับรอง WiFi แบบฮาร์ดโค้ด

ความสามารถในการอัปเดตเฟิร์มแวร์แบบ over-the-air โดยใช้ Arduino IDE (ตราบใดที่คุณอยู่ในเครือข่าย WiFi เดียวกัน -- โปรดทราบว่าหลังจากทำการอัปโหลด USB ไปยังอุปกรณ์แล้ว จำเป็นต้องรีเซ็ตก่อนการอัปเดต OTA จะทำงาน) โปรดเปลี่ยนรหัสผ่าน OTA ในบรรทัดที่ 6 ให้เป็นเอกลักษณ์ของคุณ!!

หน้าเว็บที่แสดงข้อมูลเดียวกันกับที่สคริปต์ python ทำ โดยมีการรีเฟรชอัตโนมัติทุกนาที ฉันไม่ได้ใส่การรักษาความปลอดภัยใด ๆ ไว้บนหน้า เนื่องจากเป็นแบบแสดงผลเท่านั้น

คุณสามารถหารหัสใหม่ได้ที่นี่ โปรดทราบว่าชื่อพินจะเปลี่ยนเมื่อย้ายไปที่ NodeMCU

แนะนำ: