สารบัญ:

Hotstuff: 9 ขั้นตอน
Hotstuff: 9 ขั้นตอน

วีดีโอ: Hotstuff: 9 ขั้นตอน

วีดีโอ: Hotstuff: 9 ขั้นตอน
วีดีโอ: [MV] Davichi(다비치) - Hot Stuff | My Fair Lady 아가씨를 부탁해 OST (Official Music Video) 2024, พฤศจิกายน
Anonim
Hotstuff
Hotstuff

ตั้งเป้าที่จะเป็นเทอร์โมไฮโกรมิเตอร์แบบกราฟขนาดเล็กที่สุดสำหรับ 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

การแล่เนื้อ TFT
การแล่เนื้อ TFT

นี่เป็นเพียงส่วนเดียวที่ยุ่งยากจริงๆ และเป็นสิ่งที่คุณต้องทำให้ถูกต้อง เพราะหากคุณไม่ถนัดเรื่องหัวแร้ง… เอาละ พูดถึงเรื่องนี้น้อยกว่าจะดีกว่า

โปรเจ็กต์นี้ *ควร* ทำงานร่วมกับการป้องกันหลายตัวของความละเอียดและประเภทนี้ - และซอฟต์แวร์จะทำงานกับ ATMega 328 หรือใหญ่กว่า (ซอฟต์แวร์มีความกระชับมาก ใกล้ 99% ของ 28K ที่มีอยู่ในการเขียนนี้) และเราได้บีบ มีคุณสมบัติมากมายเท่าที่พื้นที่จะเอื้ออำนวย

ตรวจสอบว่าทุกอย่างใช้งานได้ก่อนที่คุณจะเริ่มตัดชิ้นส่วน

  1. ทดสอบให้พอดีกับจอแสดงผลกับ Arduino - ช่องเสียบ uSD จะไปอยู่ที่จุดสิ้นสุดของพอร์ตจ่ายไฟและพอร์ต USB ไฟแบ็คไลท์จะสว่างขึ้นเมื่อเปิดเครื่อง แต่จะไม่ทำอะไรเลย
  2. สังเกตป้ายพินสำหรับการเข้าถึงการ์ด uSD เราไม่ต้องการสิ่งเหล่านี้ ดังนั้นเราจะตัดผมสั้นให้คณะกรรมการ
  3. บนกระดานของเรา หมุดเป้าหมายจะมีเครื่องหมาย SD_SS, SD_DI, SD_DO และ SD_SCK ที่ส่วนท้ายของ J1
  4. คุณสามารถปล่อยหรือถอดหมุดสองตัวสุดท้ายออกได้ - เราตัดหมุดออกจากบอร์ดของเรา
  5. อย่าตัดอย่างอื่น มิฉะนั้น LCD จะไม่ทำงาน! ตัวอย่างเช่น LCD_D0 (หนึ่งในสายข้อมูล) อยู่ใกล้มาก คุณจึงต้องใช้ความระมัดระวังอย่างยิ่งที่นี่
  6. ตรวจสอบสองครั้ง ตัดครั้งเดียวหรือหวังว่าคุณจะสามารถประสานส่วนหัวใหม่ได้!

หมายเหตุ: อาจเป็นไปได้ที่จะใช้ "มัลติเพล็กซ์" พิน 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

แนะนำ: