สารบัญ:
- ขั้นตอนที่ 1: อะไรทำให้สิ่งนี้พิเศษ
- ขั้นตอนที่ 2: การแล่เนื้อ TFT
- ขั้นตอนที่ 3: การติดตั้ง / การบัดกรีเซ็นเซอร์
- ขั้นตอนที่ 4: ทดสอบและใช้งานครั้งแรก
- ขั้นตอนที่ 5: การใช้เครื่องมือ & คำถามที่พบบ่อย
- ขั้นตอนที่ 6: รวบรวมจากแหล่งที่มา
- ขั้นตอนที่ 7: ทำให้เป็นของคุณเอง
- ขั้นตอนที่ 8: แฮ็คมัน
- ขั้นตอนที่ 9: การบริจาคเพิ่มเติม
วีดีโอ: Hotstuff: 9 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:02
ตั้งเป้าที่จะเป็นเทอร์โมไฮโกรมิเตอร์แบบกราฟขนาดเล็กที่สุดสำหรับ Arduino Uno
แอปพลิเคชันรวมถึง:
- เครื่องวัดอุณหภูมิทารก/สถานรับเลี้ยงเด็ก
- ตัวตรวจสอบอุณหภูมิภายนอกอาคาร
- จอภาพเรือนกระจก
- การตรวจสอบบรรยากาศภายนอก
- การตรวจสอบและตรวจสอบ HVAC ที่บ้าน/ที่ทำงาน
- ตรวจสอบ/ควบคุมตู้ฟักไข่
หมายเหตุ: นี่ไม่ใช่อุปกรณ์ทางการแพทย์และไม่สามารถทดแทนการวางแผนและสภาพการทำงานที่เหมาะสมได้!
- คุณสมบัติ
- สมบูรณ์ฟรีสำหรับการใช้งานที่ไม่ใช่เชิงพาณิชย์
- มาพร้อมกับฟอนต์จำลอง 7 เซ็กเมนต์ความเร็วสูง "Rose Digital" และ 16 เซ็กเมนต์พร้อมอัลฟ่าแบบเต็ม "Astro Nerd" (ดูการอนุญาตสำหรับข้อ จำกัด ในส่วนของซอฟต์แวร์มันเป็นเหตุผลที่ดีเราสัญญา)
- การอัปเดตที่ปราศจากการสั่นไหวเกือบทั้งหมด (1)
- กราฟแสดงระยะอัตโนมัติครอบคลุมช่วงทั้งหมดของเซ็นเซอร์ DHT11 และ DHT22
- ใช้ DHT11 (เรายังไม่ได้ลองใช้เลย) หรือ DHT22 เพื่อรับอุณหภูมิและความชื้นสัมพัทธ์
- แสดงความชื้นสัมพัทธ์และอุณหภูมิเป็นฟาเรนไฮต์หรือเซลเซียส
- แสดงน้ำค้าง (ควบแน่น) และจุดแข็ง (น้ำแข็งควบแน่น) ในหน่วยปัจจุบัน
- ภาพกราฟิกเตือนอากาศชื้นและแห้งกะพริบ
- แบบอักษรแสดงผลตามสัดส่วนที่ผู้ใช้กำหนดเองได้ (ตัวเลือก)
- ช่วงการแสดงผลหลัก -9 -> 99 F หรือ -9 -> 80C (การเตือนช่วงถ้าเกิน)
- ความชื้นตั้งแต่ 0% -> 99% RH
- บันทึกอุณหภูมิและความชื้นสูงสุดและต่ำสุดตั้งแต่รีเซ็ต
- รวมถึงการคำนวณของ Steadman และจะเตือนสภาพการทำงานที่ไม่สะดวกหรือเป็นอันตราย
- ต้องใช้ชิ้นส่วนขั้นต่ำ Uno, แผงป้องกัน TFT ขนาด 3.5 นิ้ว
- F/C. แบบเลือกได้
- การควบคุมเครื่องทำความร้อนที่ตั้งโปรแกรมได้ (สำหรับตู้ฟักไข่ ฯลฯ)
- สร้างง่าย
- รหัสโมดูลาร์สูง
- เราบอกว่ามันฟรีเหรอ?
(1) ข้อจำกัดการบัฟเฟอร์บน UNO หมายความว่าแผนภูมิจะกะพริบชั่วครู่ระหว่างการอัปเดต
เสบียง:
Arduino Uno R3 (หรือโคลนจีน)
- เครื่องวัดอุณหภูมิและความชื้น DHT22 1 เครื่อง (eBay/Amazon)
- 1 TFT 3.5" Shield พร้อมหน้าจอสัมผัสแบบต้านทานและช่องเสียบการ์ด SD (ดูข้อความ)
- สวิตช์เลื่อน SPST (อุปกรณ์เสริม)
- พีซีที่มี USB - เพื่ออัปโหลดโปรแกรม
- แหล่งจ่ายไฟ 9-12v
- เครื่องตัดด้านข้างคุณภาพดี
- หัวแร้งและบัดกรี แหนบฮีทซิงค์ สายจัมเปอร์.
- อีกทางเลือกหนึ่ง เคส (เคส Arduino Uno ไม่มีที่ว่างเพียงพอสำหรับแผงแสดงผล)
- ท่อหดความร้อนแบบละเอียด (สำหรับตกแต่งและป้องกันจุดบัดกรี)
ขั้นตอนที่ 1: อะไรทำให้สิ่งนี้พิเศษ
แต่เดี๋ยวก่อน คุณเห็นภาพแล้ว และนี่เป็นเพียงเครื่องวัดอุณหภูมิและความชื้นอีกเครื่องหนึ่งใช่ไหม คุณสามารถรับสิ่งเหล่านี้บน eBay ได้ในราคาเดียวกับ Arduino TFT shield ที่เราใช้สำหรับโครงการนี้
ไม่ค่อย… ให้ฉันอธิบาย
Coronavirus, Covid-19, SARS-Cov-2 … สิ่งที่น่ากลัวมาก หนึ่งในสิ่งที่ดีที่สุดที่เราสามารถทำได้ในตอนนี้คือการดูแลปอดของเรา และไม่มีอะไรจะง่ายไปกว่านี้แล้วที่บ้าน หากเราทำงานในสำนักงานสมัยใหม่ ควรมี HVAC ที่ดีและรถยนต์สมัยใหม่ส่วนใหญ่มีตัวกรองที่ดีเยี่ยมซึ่งนำอนุภาคขนาดใหญ่ส่วนใหญ่ออกจากอากาศภายนอกก่อนจะเข้าสู่ห้องโดยสาร บ้านหลังนี้ออกจากบ้าน… ที่เดียวที่รู้สึกปลอดภัยและเป็นที่ซึ่งสิ่งเลวร้ายที่พบบ่อยที่สุดแฝงตัวอยู่ แม้ว่าจะเป็นไปได้ที่จะเป็นโรคลีเจียนแนร์จากฝักบัวที่สกปรก (ใช่แล้ว!) โชคดีมากที่ไม่ธรรมดา
แต่มีบางอย่างที่ธรรมดากว่ามากที่พวกเราส่วนใหญ่ไม่แม้แต่จะคิดด้วยซ้ำเพราะเราอยู่กับมันมาทั้งชีวิต
เชื้อรา.
โดยเฉพาะอย่างยิ่ง สปอร์ของเชื้อรา ลองนึกภาพพวกมันเป็นเมล็ดขนาดเล็กจิ๋วที่เกิดจากการเจริญเติบโตของเชื้อราขนาดเล็กที่ซ่อนความมืดมิดและกระจายไปในอากาศอย่างอิสระ บ่อยครั้งโดยไม่จำเป็นต้องถูกรบกวน และสามารถเติมเต็มบ้านของเราด้วยทุกสิ่งตั้งแต่รอยดำที่น่ารังเกียจในมุมชื้นไปจนถึง เน่าแห้งและอื่น ๆ
เชื้อราไม่ได้ทำลายทรัพย์สินของคุณ (ซึ่งก็แย่พอแล้ว) มันอาจทำให้เกิดการระคายเคืองต่อทางเดินหายใจทั้งหมด ตั้งแต่จมูกและไซนัสของเราตอนนี้ไปจนถึงถุงลม ถุงเล็กๆ นับล้านที่เรียงรายอยู่ในปอดของเรา มันเล็กมากจน ยืดออกพวกเขาจะคลุมสนามเทนนิสอย่างคร่าวๆ นั่นเป็นพื้นที่จำนวนมากสำหรับสิ่งมีชีวิตขนาดเล็กที่จะเข้าไป ซ่อนตัว และก่อให้เกิดความหายนะทุกรูปแบบ
และยังมีอีก…
ที่ปลายอีกด้านของมาตราส่วน อากาศแห้งสามารถสร้างความเสียหายได้เช่นกัน พื้นผิวของปอดของเราถูกปกคลุมด้วยฟิล์มบางๆ ของเมือกที่เป็นน้ำ - มันอยู่ที่นั่นเพื่อช่วยรักษาสิ่งที่น่ารังเกียจให้อยู่ในอ่าวและทำงานได้ดีทีเดียว แต่ถ้าอากาศแห้งเกินไป น้ำมูกนั้นก็เริ่มแห้งเช่นกันและ ที่ทำให้หายใจลำบากขึ้น
และยังมีอีกมากมาย…
โดยธรรมชาติแล้ว มนุษย์จะรักษาความเย็นโดยการระเหย - เรามีเหงื่อออก (ในวันที่อากาศร้อนและแห้ง จะมองไม่เห็น) แต่เมื่อความชื้นเพิ่มขึ้น ผู้คนพบว่าน้ำเพียงแค่ "เกาะ" บนผิวหนัง และเริ่มร้อนขึ้น ร้อนมาก.
ในบางส่วนของโลก (ออสเตรเลียและเขตร้อน) นี่เป็นปัญหาที่คนงานต้องตระหนักถึง "อุณหภูมิในการทำงานที่มีประสิทธิภาพ" - ช่องอากาศมักเรียกสิ่งนี้ว่าอุณหภูมิ "รู้สึกเหมือน" เพราะเป็นความร้อน /ความชื้นเพิ่มขึ้น มีโอกาสเป็นลมแดดและเสียชีวิตได้
สำหรับเหตุผลและการอ่านเพิ่มเติม ปรึกษา Wikipedia หรือดำดิ่งลงไป!
th.wikipedia.org/wiki/Heat_index
หากคุณคิดว่า "สิ่งนี้จะไม่เกิดขึ้นกับฉัน" ให้พิจารณาว่าการเปลี่ยนแปลงสภาพภูมิอากาศนี้เป็นไปได้อย่างแท้จริงในละติจูดที่ไกลจากซีแอตเทิล และการทำงานในวันที่ "สกปรก" ที่ร้อนแรง คุณอาจเสี่ยงต่อสุขภาพโดยที่ไม่รู้ตัว
อาการอ่อนเพลียจากความร้อนเป็นสิ่งที่ไม่พึงประสงค์อย่างยิ่งและจังหวะความร้อนเป็นเหตุฉุกเฉินทางการแพทย์ที่ร้ายแรง
ดังนั้นอุปกรณ์นี้จึงไม่ได้เป็นเพียงเทอร์โมมิเตอร์/ไฮโกรมิเตอร์แบบกราฟที่สวยงามเท่านั้น แต่ยังสร้างสัญญาณเตือนเพื่อเตือนสภาวะจังหวะความร้อน ซึ่งจะช่วยให้คุณตัดสินใจได้ว่าบ้านของคุณระบายอากาศได้ดีเพียงใด และมันก็ดูค่อนข้างฉลาดด้วย (ถ้าเราบอกเอง)
จากทั้งหมดที่กล่าวมา อุปกรณ์นี้ไม่ได้มีไว้สำหรับวัตถุประสงค์ทางการแพทย์ และไม่ควรใช้ในที่ที่อาจเป็นอันตรายต่อสุขภาพและความปลอดภัยของคนงาน แม้ว่าเราจะสามารถรับรองรหัสของเราได้ (เราไม่สามารถ) ตัวฮาร์ดแวร์เองก็ไม่ได้รับประกันนั้น นี่คือการหยุดยั้งจัมโบ้ทางกฎหมายที่ยุ่งเหยิง แต่ควรให้ความคิดกับคุณว่าบ้านของคุณมีสุขภาพที่ดีแค่ไหน!
การสร้างนั้นง่ายพอๆ กับที่มันทำได้ แม้ว่าคุณจะต้อง "ฆ่า" แผงป้องกัน TFT เพราะเราจะใช้มันในแบบที่นักออกแบบไม่เคยนึกถึงมาก่อน
หมายเหตุ: เนื่องจากมีคนยกประเด็นนี้ขึ้นมา จึงควรสังเกตว่าเซ็นเซอร์ DHT22 มีความถูกต้องที่อ้างว่าเป็น ±0.5°C และ ±1% Rh ซึ่งเพียงพอสำหรับการใช้งานหลายอย่าง แต่จะไม่เป็นเช่นนั้นหากอุณหภูมิ/ความชื้นมีความสำคัญ เราวางแผนที่จะเพิ่มการปรับเทียบหลังการประกอบในภายหลัง DHT11 มีการวัดอุณหภูมิที่แม่นยำน้อยกว่าเล็กน้อยที่ ±1.0°C แต่โดยทั่วไปควรสะท้อนสภาพแวดล้อมของเราได้ดี
ขั้นตอนที่ 2: การแล่เนื้อ TFT
นี่เป็นเพียงส่วนเดียวที่ยุ่งยากจริงๆ และเป็นสิ่งที่คุณต้องทำให้ถูกต้อง เพราะหากคุณไม่ถนัดเรื่องหัวแร้ง… เอาละ พูดถึงเรื่องนี้น้อยกว่าจะดีกว่า
โปรเจ็กต์นี้ *ควร* ทำงานร่วมกับการป้องกันหลายตัวของความละเอียดและประเภทนี้ - และซอฟต์แวร์จะทำงานกับ ATMega 328 หรือใหญ่กว่า (ซอฟต์แวร์มีความกระชับมาก ใกล้ 99% ของ 28K ที่มีอยู่ในการเขียนนี้) และเราได้บีบ มีคุณสมบัติมากมายเท่าที่พื้นที่จะเอื้ออำนวย
ตรวจสอบว่าทุกอย่างใช้งานได้ก่อนที่คุณจะเริ่มตัดชิ้นส่วน
- ทดสอบให้พอดีกับจอแสดงผลกับ Arduino - ช่องเสียบ uSD จะไปอยู่ที่จุดสิ้นสุดของพอร์ตจ่ายไฟและพอร์ต USB ไฟแบ็คไลท์จะสว่างขึ้นเมื่อเปิดเครื่อง แต่จะไม่ทำอะไรเลย
- สังเกตป้ายพินสำหรับการเข้าถึงการ์ด uSD เราไม่ต้องการสิ่งเหล่านี้ ดังนั้นเราจะตัดผมสั้นให้คณะกรรมการ
- บนกระดานของเรา หมุดเป้าหมายจะมีเครื่องหมาย SD_SS, SD_DI, SD_DO และ SD_SCK ที่ส่วนท้ายของ J1
- คุณสามารถปล่อยหรือถอดหมุดสองตัวสุดท้ายออกได้ - เราตัดหมุดออกจากบอร์ดของเรา
- อย่าตัดอย่างอื่น มิฉะนั้น LCD จะไม่ทำงาน! ตัวอย่างเช่น LCD_D0 (หนึ่งในสายข้อมูล) อยู่ใกล้มาก คุณจึงต้องใช้ความระมัดระวังอย่างยิ่งที่นี่
- ตรวจสอบสองครั้ง ตัดครั้งเดียวหรือหวังว่าคุณจะสามารถประสานส่วนหัวใหม่ได้!
หมายเหตุ: อาจเป็นไปได้ที่จะใช้ "มัลติเพล็กซ์" พิน SPI ที่เราเคยใช้ที่นี่และจัดเก็บข้อมูลในการ์ด SD แต่นั่นคือสิ่งที่เราจะปล่อยให้ผู้สร้างรายอื่น
ขั้นตอนที่ 3: การติดตั้ง / การบัดกรีเซ็นเซอร์
แม้ว่าจะไม่จำเป็นอย่างยิ่ง แต่การบัดกรีการเชื่อมต่อเป็นวิธีที่ดีที่สุดในการทำให้โครงการนี้เป็นสิ่งที่คุณสามารถติดตั้งและลืมได้
ผู้ที่มีทักษะการบัดกรีที่เหมาะสมควรพยายามบัดกรีกับ DHT22 เท่านั้น เซ็นเซอร์มีความไวสูงต่อการเปลี่ยนแปลงของอุณหภูมิและความชื้น คนนิรนามคนหนึ่งทำให้หมุดบัดกรีของเราร้อนเกินไปเล็กน้อย (ไอ, ไอ) และส่งเซ็นเซอร์ไปจนพ้นการสอบเทียบจนมันปฏิเสธที่จะทำงานจนกว่าเราจะ "ปรุง" ตามคำแนะนำของผู้ผลิตเพื่อหยุดการผลิตการอ่าน ข้อผิดพลาด ตัวเลือกที่ดีกว่าสำหรับคนส่วนใหญ่คือการจัดหา DHT11/22 ที่ติดตั้งไว้ล่วงหน้าพร้อมส่วนหัวที่ออกแบบมาสำหรับสายกระโดด
DHT22 ใช้ลิงก์อนุกรมแบบสายเดี่ยวแบบอนุกรมเพื่อสื่อสารกับ MCU โดยมีช่วงที่เป็นไปได้มากกว่า 10 เมตร (>32 ฟุต) โดยไม่มีการปรับสภาพสัญญาณ จึงสามารถวางเครื่องตรวจจับได้ในระยะหนึ่งจาก Arduino
ปรากฏ (หลังจากศึกษาแผนผัง) ว่าส่วนหัว 6-pin In-Circuit Serial Programmer (ICSP) ที่ส่วนท้ายของบอร์ดเชื่อมต่อกับพิน SPI ที่ชิลด์ใช้สำหรับอ่าน/เขียนการ์ด SD การใช้พินเหล่านี้จะไม่ส่งผลต่อความสามารถในการเขียนโปรแกรมบอร์ดผ่าน USB ในอนาคต เนื่องจากส่วนใหญ่จะใช้สำหรับการดีบักและการเขียนโปรแกรม Uno ด้วยโปรแกรมเมอร์แบบอนุกรม (FDTI) เพื่อเป็นข้อสังเกต เรารู้สึกขอบคุณ Steve Wood แห่ง AudioSpectrum Analyzers ในสหราชอาณาจักรที่จัดหาอะไหล่ให้กับเราเมื่อเครื่องของเราหายไปในกองเศษใหญ่ของ Marc
หากคุณมีคีมปากยาวคุณภาพดี คุณสามารถงอสายไฟเพื่อให้สามารถใช้เฮดเดอร์ของดูปองท์ได้ แต่การบัดกรีเป็นวิธีที่แนะนำ ด้วยความระมัดระวัง (และมือที่มั่นคง) จึงสามารถบัดกรี DHT22 เข้ากับส่วนหัวได้โดยตรง
การเชื่อมต่อนั้นง่ายพอๆ กับที่มา แต่จำเป็นต้องสังเกตขั้วไฟฟ้า เนื่องจากการเชื่อมต่ออุปกรณ์กลับด้านมีแนวโน้มที่จะทำลายอุปกรณ์ในทันที แม้ว่า DHT22 จะมีสี่พิน แต่พิน 3 ไม่ได้เชื่อมต่อ โดยทั่วไปแล้วเซ็นเซอร์แบบติดตั้งจะมาพร้อมกับหมุดสามตัวที่เรียงตัวกันอย่างสวยงามกับส่วนหัว เมื่อเซ็นเซอร์วางอยู่ด้านหลัง (ตามภาพ) คุณจะเห็นว่าหมุดกำลังและข้อมูลอยู่ในแนวที่ถูกต้อง
ขั้นตอนที่ 4: ทดสอบและใช้งานครั้งแรก
สิ่งที่เหลืออยู่คือการเสียบโมดูล DHT22 ของคุณเข้ากับ Arduino อย่างระมัดระวังและตั้งค่าซอฟต์แวร์ สิ่งที่ชาญฉลาดส่วนใหญ่ทำได้โดยซอฟต์แวร์ ซึ่งเป็นไปได้โดยไลบรารีกราฟิกจาก Adafruit ไดรเวอร์การแสดงผล MCUFriend ของ David Prentice และสิ่งที่ฉลาดพอๆ กันจากการคำนวณ "ความร้อนที่มีประสิทธิภาพ" ของ Robert Steadman
สิ่งเดียวที่คุณจะต้องตั้งค่าในการกำหนดค่าพื้นฐานนี้คือบอกซอฟต์แวร์ว่ากำลังใช้พินสามตัว
หากคุณต้องการต่อเซ็นเซอร์ในแบบที่ต่างออกไป บรรทัดต่อไปนี้ใน CONSTANTS. H จะบอก Uno วิธีกำหนดค่าตัวเอง
#define DHT22_DATA 11
DH22 ใช้ 1 - 1.5 mA ที่อนุรักษ์นิยมมากเมื่อทำการอ่านซึ่งน้อยกว่าค่าสูงสุดทั่วไปที่ 20 mA มาก จึงไม่ทำให้เกิดความเครียดใดๆ (แน่นอนว่าการลัดวงจรของพินใดๆ ก็ตามเกือบจะทำลายอุปกรณ์ ดังนั้น เราจึงแนะนำให้ใช้การหดตัวด้วยความร้อนหากคุณวางเซ็นเซอร์ไว้บนบอร์ดปลั๊กอินของ Heath Robinson) หากทุกอย่างเป็นไปด้วยดี HotStuff จะบูตได้ภายใน 5 วินาที หากตรวจพบข้อผิดพลาด หน้าจอจะเป็นสีดำและแสดงข้อความแสดงข้อผิดพลาดสั้นๆ สิ่งนี้ส่วนใหญ่มองข้ามไป เนื่องจากเป็นเพียงการบ่งชี้ว่าเซ็นเซอร์ไม่ได้จ่ายไฟหรือไม่ได้ต่อสายอย่างถูกต้อง
ขั้นตอนที่ 5: การใช้เครื่องมือ & คำถามที่พบบ่อย
ถาม: ฉันสามารถเห็นร่องรอยของตัวเลขที่ไม่สว่างบนหน้าจอได้ นี่ไม่ใช่ข้อผิดพลาดใช่ไหม
ตอบ: ไม่ นี่คือการออกแบบแม้ว่าจะไม่ได้สร้างเป็นหินก็ตาม แนวคิดคือการจำลองรูปลักษณ์ของจอ LCD "ของจริง" (เทียบกับ TFT ความละเอียดสูง) จอแสดงผลดังกล่าวใช้บล็อกขนาดใหญ่ที่ออกแบบไว้ล่วงหน้าซึ่งสามารถเปิดและปิดได้เหมือนพิกเซล แต่ต่างจากพิกเซลที่สามารถใช้พื้นที่ส่วนใหญ่ของหน้าจอได้ เป็นผลให้มีร่องรอยของวัสดุที่มองเห็นได้อย่างสม่ำเสมอและสิ่งนี้ถูกจำลองที่นี่
ถาม: ฉันจะสลับระหว่างเซนติเกรดและฟาเรนไฮต์ได้อย่างไร
A: ฟังก์ชันยังไม่ผ่านการทดสอบอย่างสมบูรณ์ในขณะที่ "กำลังจะกด" (เพราะมีคนลืมไปใช่ไหม…) อย่างไรก็ตาม เราได้ตรวจสอบแล้วและฟังก์ชันนี้ใช้งานได้ (หากต้องการ) แต่ติดสวิตช์ตัวเลื่อน SPST ขนาดเล็กกับเทอร์มินัลหนึ่งไปยังพิน 12 และอีกอันเข้ากับกราวด์ที่สะดวก วิธีที่เร็วที่สุดในการทำเช่นนี้คือการบัดกรีหรือใช้ขั้วต่อดูปองท์ที่ดัดแปลงเพื่อยึดติดกับพื้นและอีกอันหนึ่งเพื่อยึด 12 โดยตรง (โคลนบางตัวมีรูทะลุพิเศษสำหรับสิ่งนี้) หรือในการออกแบบดั้งเดิม หมุด MOSI บนส่วนหัว ICSP ซึ่งอยู่เหนือกำลัง 5v หากสวิตช์นี้อยู่ในตำแหน่งเปิด หน่วยจะบู๊ตในเซนติเกรด แต่อยู่ในตำแหน่งปิด จะดึงพิน 12 ให้ต่ำ และการรีบูตจะทำให้สวิตช์กลับมาอยู่ที่ระดับฟาเรนไฮต์ ไม่จำเป็นต้องใช้ตัวต้านทานเพื่อป้องกันพินเนื่องจากมีตัวต้านทานภายในให้
ถาม: ฉันสามารถใช้เซ็นเซอร์อื่นได้หรือไม่
ก. ใช่. แต่คุณจะต้องค้นหาห้องสมุดที่เหมาะสมหรือเขียนเอง เราเลือก DHT22 เนื่องจากอินเทอร์เฟซแบบสายเดี่ยว และเนื่องจากมีส่วนหนึ่งที่ด้านหลังของชิ้นส่วนจึงดูดฝุ่นสะสม การออกแบบส่วนต่อประสานแบบมีสายหนึ่งจะดีกว่าเพราะเราสามารถใช้หมุดดิจิทัล "ฟรี" อื่น ๆ สำหรับฟังก์ชันอื่น ๆ I2C ไม่พร้อมใช้งานเนื่องจากถูกครอบครองโดยแผงแสดงผล อย่างไรก็ตาม SPI นั้นจะเกิดขึ้นหากคุณพร้อมที่จะสูญเสียฟังก์ชันการทำงาน เช่น การสลับมาตราส่วน ฯลฯ
ถาม: ฉันสามารถขายเวอร์ชันเชิงพาณิชย์ได้หรือไม่
ตอบ: แน่นอนว่าคุณสามารถให้คุณปฏิบัติตามเงื่อนไขการอนุญาตให้ใช้สิทธิ์ซอฟต์แวร์ (โดยพื้นฐานแล้วเป็นสิทธิ์ใช้งาน BSD แบบ 2 ข้อซึ่งอนุญาตอย่างมาก แต่โปรดทราบว่าใบอนุญาตอื่นอาจนำไปใช้กับไลบรารีที่รวมอยู่ด้วย) โปรดทราบว่าอุปกรณ์นี้ไม่ใช่ (และไม่สามารถเป็นได้) ได้รับการรับรองสำหรับการใช้งานในสภาพแวดล้อมที่สำคัญ ใช้สำหรับบ้าน/งานอดิเรก แม้ว่าจะพบการใช้งานในบ้านพักคนชรา สำนักงาน และสถานที่ทำงานอื่นๆ เพียงแต่ตระหนักดีว่ามันดีพอๆ กับลิงก์ที่อ่อนแอที่สุดเท่านั้น … ฟอนต์เอ็นจิ้นที่พัฒนาขึ้นสำหรับโครงการนี้ได้รับอนุญาตสำหรับการใช้งานที่ไม่ใช่เชิงพาณิชย์ เว้นแต่คุณจะบริจาคเงินให้กับ GoFundMe มะเร็งของเพื่อนร่วมงานของเรา
ถาม: การอ่านค่าต่ำสุด/สูงสุดของฉันจะไม่ถูกบันทึกบนแผนภูมิ
ตอบ: นี่คือการออกแบบ เครื่องมือที่ใช้ "ค่าเฉลี่ยเคลื่อนที่" (ค่าเฉลี่ยทางสถิติ) ซึ่งรีเซ็ตทุกชั่วโมง วิธีนี้ช่วยให้กราฟเรียบขึ้นและดูการวัดที่สมเหตุสมผลยิ่งขึ้นเพื่อป้องกันไม่ให้เกิดหนามแหลมขึ้น (เช่น บางคน "เอ่อ" หายใจบนเซ็นเซอร์ ไม่ให้บ้าไป
ถาม: ทำไมคุณไม่ใช้ทางลัด C++ (เช่น ++, -- และอื่นๆ) ในโค้ดของคุณ ทำไมทุกอย่างช่าง…ช่างพูดเสียเหลือเกิน!
ตอบ: หนึ่งในผู้แต่งเป็นโปรแกรมเมอร์เกม 8 บิตที่มากประสบการณ์ แต่อีกคนมาจาก Python เราได้ใช้ทางลัดสองสามทางซึ่งการใช้งานค่อนข้างชัดเจน แต่ C (ภาษาที่อยู่ภายใต้ C++) นั้นเก่า และคอมไพเลอร์โดยทั่วไปกลับค่อนข้างโง่เมื่อ Kernighan และ Richie เขียนคอมไพเลอร์ตัวแรก ไม่ต้องพูดถึงว่าคอมพิวเตอร์ช้ามาก และคีย์บอร์ดก็มีคีย์ ที่คุณรู้สึกว่าต้องตีด้วยค้อนทุบ สิ่งเหล่านี้ (และอื่น ๆ) ทำให้ C เป็นภาษาที่สั้นมากพร้อมทางลัดหลายทางเพื่อให้ได้สิ่งเดียวกัน จำนวนมากมี (และยังคง) รับผิดชอบต่อบั๊กที่ยุ่งยากบางอย่าง และอย่าแม้แต่จะให้เราเริ่มต้นกับการขัดข้องของฮีป/สแต็ค
เห็นได้ชัดว่า การเพิ่มประสิทธิภาพบางอย่าง (เช่น สัญญาณ) มีความจำเป็นเนื่องจากเรากำลังพยายามบีบควอร์ตลงในถ้วยชา แต่หากเป็นไปได้ เราจะหลีกเลี่ยงสิ่งนั้น
อนึ่ง ถ้าคุณไม่ได้เป็นเจ้าของสำเนา K&R C ที่อ่านแล้วดี… หยุดตอนนี้แล้วไปสั่งซื้อ มีหนังสือเกี่ยวกับ C จำนวนมาก แต่ K&R ยังคงเป็นหนังสือที่ดีที่สุด และเนื่องจาก C สนับสนุน C++ คุณจะเข้าใจคุณลักษณะของภาษานั้นได้ดีขึ้นด้วย
ถาม: ฉันคิดว่าฉันพบข้อผิดพลาด ฉันควรทำอย่างไร!
A: บัก? ไม่มีข้อบกพร่อง มีเพียงคุณสมบัติ… เพียงคุณสมบัติบางอย่างใช้งานไม่ได้อย่างที่เราคาดหวัง ทิ้งหมายเหตุไว้บน GitHub แล้วเราจะลองเปลี่ยนคุณลักษณะนี้เพื่อให้เหมาะกับการออกแบบมากขึ้น อันที่จริงโค้ดกำลังถูกปรับโครงสร้างใหม่ตลอดเวลาในหลายโปรเจ็กต์ ดังนั้นมันจึงค่อนข้างกระท่อนกระแท่นในสถานที่ต่างๆ และสำหรับมาร์คนั้น มาร์คจะถูกตบด้วยปลาแฮดด็อกเปียกๆ จนกว่าเขาจะกรีดร้องว่า "ไม่มีอีกแล้ว!" - แดน
ขั้นตอนที่ 6: รวบรวมจากแหล่งที่มา
โครงการนี้โฮสต์บน GitHub (มีรหัสมากเกินไปที่จะตบบน Instructable ผู้คนจะได้รับสายตาที่พยายามคิดออกทั้งหมด) แต่ในขณะที่ ATMegas ที่ตั้งโปรแกรมไว้ล่วงหน้าจะพร้อมใช้งานบน eBay คุณอาจต้องการรวบรวมของคุณเองจาก แหล่งที่มา.
ซอร์สโค้ดที่ควรคอมไพล์ภายใต้ Visual Studio ด้วย Platform IO - มันค่อนข้างเทอะทะเล็กน้อยสำหรับตัวแก้ไข Arduino และ Visual Studio ช่วยให้เราเขียนโค้ดได้ดีขึ้นโดยมีข้อผิดพลาดน้อยลงด้วยการเลือก "ผ้าสำลี" บางอย่างที่มี
github.com/marcdraco/HotStuff
platformio.org/
visualstudio.microsoft.com/downloads/ คุณจะต้องมีห้องสมุดสองสามแห่งสำหรับโล่นี้ Adafruit GFX (ซึ่งจะต้องใช้ไลบรารี Wire ด้วย)
MCUFriend_kbv โดย David Prentice v2.9 David ได้ผลิตรุ่นที่ใหม่กว่า แต่ไม่รับประกันว่าจะใช้งานได้
ขั้นตอนที่ 7: ทำให้เป็นของคุณเอง
ไม่มีอะไรที่เหมือนกับการมีโครงการที่สวยงามที่คุณสามารถแสดงให้คนอื่นเห็นและทำให้พวกเขาอ้าปากค้างด้วยความตกใจเมื่อชื่อของคุณขึ้นต้นด้วยแสงไฟ ดังนั้นเราจึงได้ตั้งค่าซอฟต์แวร์เพื่อให้เกือบทุกคนสามารถทำการเปลี่ยนแปลงได้โดยไม่ต้องมีความรู้เกี่ยวกับ C/C++
ค้นหาในโปรแกรมแก้ไขข้อความที่คุณชื่นชอบใน "constants.h" เพื่อค้นหาบรรทัดต่อไปนี้:
constexpr uint16_t defaultPaper = สีดำ;
constexpr uint16_t defaultInk = CYAN;
คุณสามารถดูชื่อสีในภาษาอังกฤษธรรมดาได้ - David Prentice ได้กรุณาให้คำจำกัดความจำนวนมากซึ่งปรากฏก่อนหน้าในไฟล์ และสิ่งที่คุณต้องทำคือเปลี่ยนพื้นหน้า (และพื้นหลัง) เป็นสิ่งที่คุณเลือกก่อนที่คุณจะอัปโหลดไปยังบอร์ด สี "ร่องรอย" สำหรับกราฟอยู่ลึกลงไปเล็กน้อยที่นี่ และมีลักษณะดังนี้:
constexpr uint16_t HUMIDITY_TRACE {AZURE};constexpr uint16_t TEMP_TRACE {สีเหลือง};
แม้ว่า TFT เหล่านี้จะไม่รู้จักคอนทราสต์ (และจำกัดไว้ที่ 5-6-5 RGB, สี 16 บิต) เราได้จัดเตรียมตัวอย่างตัวเลือกการรวบรวม "NIGHT_MODE" ซึ่งแสดงความเห็นไว้โดยค่าเริ่มต้นแต่ตั้งค่าการแสดงผล
สามารถปรับสีอื่นๆ ได้เช่นเดียวกัน ต้องการให้อ่านใน Imperial เมื่อมันลุกเป็นไฟหรือไม่? ไม่มีปัญหา! ค้นหาและแสดงความคิดเห็น ("//") หรือลบบรรทัดต่อไปนี้และเมื่อคุณอัปโหลดกลับไปที่บอร์ด…
คำถาม ความคิดเห็น และการปรับปรุงควรโพสต์ไปที่ GitHub
เอกสารเพิ่มเติมเกี่ยวกับการแฮ็คโปรเจ็กต์อยู่ใน README. MD. ที่แนบมาด้วย
ขั้นตอนที่ 8: แฮ็คมัน
โปรเจ็กต์นี้สร้างขึ้นโดยใช้หลักการของ KISS และเสร็จสมบูรณ์ตามที่เป็นอยู่
มันสามารถสร้างพื้นฐานของบางสิ่งโดยอาศัยเซ็นเซอร์อื่น - อาจมีความแม่นยำมากกว่าหรือเร็วกว่านั้นหากว่ามีพื้นที่เพียงพอสำหรับห้องสมุด อย่างที่คุณเห็น สิ่งต่างๆ ค่อนข้างแน่นอยู่แล้ว
เมื่อคุณรู้โค้ดเป็นอย่างดีแล้ว การเปลี่ยนแปลงสิ่งต่างๆ อย่างรวดเร็วเป็นเรื่องง่าย แต่ถึงแม้จะไม่มีประสบการณ์ในการเขียนโปรแกรมมากนัก ค่าคงที่จำนวนมากใน "constants.h" ก็อธิบายวิธีเปลี่ยนสิ่งต่างๆ ได้ โปรแกรมเมอร์ขั้นสูงจะสังเกตเห็นว่ามันค่อนข้างง่าย (เราหวังว่าจะ!) ในการดึงชิ้นส่วนที่คุณต้องการเพื่อใช้ในภายหลัง ตัวอย่างเช่น เราแทนที่การแสดงกราฟด้วยนาฬิกาแบบเรียลไทม์ที่ทำงานได้อย่างสมบูรณ์ภายในเวลาไม่ถึงชั่วโมง นาฬิกาต้องการวิธีการตั้งเวลา อย่างไรก็ตาม จึงไม่มีประโยชน์อย่างที่ควรจะเป็น เราจะปล่อยเวอร์ชันที่ใช้งานได้ในภายหลัง (คุณสามารถค้นหารหัสการพัฒนาบน GitHub ภายใต้ HotStuff Chrono)
แต่มีบางอย่างเกี่ยวกับจอแสดงผลเหล่านี้ที่ไม่ชัดเจนในทันทีจนกว่าคุณจะไปที่โปรแกรม - หน้าจอสัมผัสนั้น
ปัญหาเกี่ยวกับหน้าจอสัมผัสแบบต้านทานประเภทนี้คือพวกเขาต้องการการปรับเทียบซึ่งเพิ่มความซับซ้อนและตรงไปตรงมาไม่มีห้องที่มีฟังก์ชั่นอื่น ๆ ทั้งหมดที่เรายัดเยียดให้ห้องสมุดอื่นในนั้นชะงักงัน สิ่งนี้จะเป็นไปได้ด้วย Arduino Mega ที่มีพื้นที่แฟลชมากกว่า แต่ความสนุกในนั้นมันอยู่ตรงไหน?
ดูใต้บอร์ดแล้วคุณจะเห็นว่านอกเหนือจาก I/O ดิจิตอลเพื่อขับเคลื่อน LCD และการ์ด SD แล้ว ไม่มีเอาต์พุตสำหรับ ADC เพื่อตรวจจับการวัดความต้านทาน
แปลกใช่มั้ย?
คนฉลาดออกแบบเหล่านี้ จอแสดงผลมีเฟรมบัฟเฟอร์ของตัวเอง นั่นคือพื้นที่ของ RAM ที่ยึดหน้าจอไว้เหมือนเดิมในขณะที่ไฟยังคงเชื่อมต่ออยู่ ซึ่งหมายความว่าคุณสามารถ (โดยทางโปรแกรม) ปลดหมุดของอุปกรณ์หลายตัวในขณะที่เปิดเครื่องและใช้งานอื่นๆ - ให้คุณนำมันกลับมาในภายหลัง!
สำหรับข้อมูลเกี่ยวกับวิธีการดำเนินการนี้ เราแนะนำให้อ่านไลบรารีหน้าจอสัมผัสแบบต้านทานของ Limor "Lady Ada" Fried
และถ้าคุณทำอะไรเจ๋ง ๆ โปรดอย่าลืมยื่นคำขอดึง!
ขั้นตอนที่ 9: การบริจาคเพิ่มเติม
นี่เป็นทางเลือกเพิ่มเติม ให้เราแนะนำผู้หญิงที่ให้ชีวิตและตั้งชื่อฟอนต์ที่ใช้ในโครงการนี้ และยังคงเป็นแรงบันดาลใจให้กับพวกเราทุกคน โดยเฉพาะอย่างยิ่งเมื่อได้รับข่าวว่าเธอเป็นมะเร็ง และ … พวกเราส่วนใหญ่รู้ดีว่าน่ากลัวแค่ไหนโดยเฉพาะ ปิศาจคือ ชีวประวัติฉบับเต็มของเธออยู่ที่เว็บไซต์ https://www.rosedf.net/ และคุณสามารถหาเธอได้บนช่องทางโซเชียลมีเดียทั่วไป เธอพูดเกี่ยวกับตัวเอง:
“ถ้าฉันไม่ได้ฝึกเพื่อไปอวกาศ บอกให้คนอื่นไปดูท้องฟ้ายามค่ำคืนที่สวยงามของเรา ใช้เวลากับคนที่ฉันรัก หรือเป็นแค่คนโง่ ฉันชอบที่จะให้ความสนใจกับการเข้าถึงการศึกษาและความเท่าเทียม ฉัน ทำงานเพื่อสนับสนุนเหยื่อของการล่วงละเมิดในครอบครัว/ทางเพศ และเหมือนฉันเป็นคนไร้บ้าน และฉันชอบที่จะปลุกจิตสำนึกถึงความสำคัญของสุขภาพจิตในชีวิตประจำวันและวิชาการ"
หากคุณต้องการจ่ายให้เธอสักสองสามเหรียญ (หรือสกุลเงินท้องถิ่นของคุณคืออะไร) เราก็ยินดีเป็นอย่างยิ่ง ความรักมากมายได้ทุ่มเทให้กับการพัฒนา HotStuff แม้จะคิดว่ามันเป็นการฝึกสอน และงานส่วนใหญ่นั้นสามารถนำมาใช้ซ้ำสำหรับโครงการในอนาคตที่มีตัวประมวลผล "ช้า" แต่ต้องการความรวดเร็ว ชัดเจน และเหนือสิ่งอื่นใดคือตัวอักษรและตัวเลขขนาดใหญ่ แบบอักษรบนจอแสดงผล TFT บริจาคที่นี่ (ขอบคุณมาก):
paypal.me/FirstGenSci
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง