ความคิดที่ยืมมาจากโครงการ จอแสดงผลสภาพอากาศ ESP8266.
ฉันตัดสินใจที่จะนึกถึง
งานต่อไปนี้ถูกตั้งค่า:
- อัปเดตรหัสที่เกี่ยวข้องกับการใช้งาน เวอร์ชั่นใหม่ ห้องสมุด ArduinoJson.h.
- เขียนโค้ดใหม่โดยใช้ฟังก์ชัน millis () แทนฟังก์ชั่น delay () เป็นที่ชัดเจนว่าการใช้การหน่วงเวลาเพื่อตั้งการหยุดชั่วคราวระหว่างการเปลี่ยนข้อมูลบนจอแสดงผลเป็นไปไม่ได้ที่จะใช้การควบคุมปุ่ม
- แต่งหน้า ดาวน์โหลดภาพร่างผ่าน Wifi;
- หนีจาก Wemos D1 ขนาดใหญ่บน Wemos D1 mini
- เมื่อใดก็ตามที่เป็นไปได้ จอแสดงผล Russify;
- ใช้ตัวเรือนสำเร็จรูปพร้อมช่องปุ่มสำหรับอุปกรณ์ที่ใช้ LCD1602
- ใช้ปุ่มบัดกรีขนาด 6x6 มาตรฐานไปยังเขียงหั่นขนม เพิ่มปุ่มควบคุมแบ็คไลท์ซึ่งเป็นปุ่มแบบหมุนเพื่อเปลี่ยนข้อมูลที่แสดงและปุ่มสำหรับบังคับให้อัพเดตข้อมูลจากเซิร์ฟเวอร์
ใช้ส่วนประกอบต่อไปนี้:
- ตัวเรือนทำจากพลาสติก ABS พร้อมฝาปิดสำหรับปุ่ม;
- สายไนล่อน 6 + 5 มม. M3 ตัวผู้สีดำ, 4 ชิ้น;
- ถั่วไนล่อน M3 สีดำ 4 ชิ้น;
- โพสต์ไนล่อน 6 + 5 มม. ตัวผู้ M2 ขาว, 3 ชิ้น;
- ขาตั้งไนล่อนขนาด 6 มมสีขาว 1 ชิ้น
- ขาตั้งไนล่อนขนาด 8 มมสีขาว 1 ชิ้น
- ชั้นวางไนล่อน 10mm สีขาวแม่ 2 ชิ้น;
- จอแอลซีดี 1602 (I2C), สีเหลือง;
- Wemos d1 mini;
- Wemos d1 DC-Power shield;
- คณะกรรมการเขียงหั่นขนม 3x7;
- ปุ่ม 6x6, สูง 7 มม., 3 ชิ้น;
- สาย Dupont ขนาด 10 ซม. แม่ลูก 4 ชิ้น;
- 24 AWG สายไฟสีดำและสีแดง;
- สายซิลิโคน 20 AWG สีน้ำเงินและสีขาว
- ตัวต้านทาน 5 kOhm - 2 ชิ้น, 10 kOhm - 1 ชิ้น (ซึ่งมาถึงมือ);
- อะแดปเตอร์ 9V 1A;
- กาวอีพอกซี่สององค์ประกอบ
กรณีที่ใช้มีข้อดีหลายประการ ประการแรกนอกเหนือจากจอแสดงผลแล้วบอร์ด decoupling มาตรฐานแบบ 3x7 ที่มีส่วนประกอบที่ติดตั้งอยู่บนทั้งสองด้านนั้นมีความสูงพอดีพอดี ประการที่สองที่ปลายทั้งสองมีช่องสี่เหลี่ยมสำหรับระบายความร้อน ปรากฎว่าจัมเปอร์ระหว่างหลุมเหล่านี้ถูกตัดอย่างสมบูรณ์แบบด้วยไฟล์ขนาดเล็ก 3 และ 4 มม. หากคุณตัดจัมเปอร์สองอันแล้วตัดเป็นรูสี่เหลี่ยมเล็ก ๆ ในกล่องตัวเชื่อมต่อกำลังไฟ DC-005 จะเข้ากับรูที่เกิดจากรูปทรงเรขาคณิตที่ซับซ้อน นอกจากนี้ด้านหลังของกล่องนี้มีรูสี่เหลี่ยมขนาดใหญ่ซึ่งเห็นได้ชัดว่าควรติดตั้งแบตเตอรี่ผ่านมันจะสะดวกในการเชื่อมต่อบางสิ่งบางอย่างภายในโดยไม่ต้องถอดเคส ต่อมาสามารถปิดด้วยแก้วหรือพลาสติก
สร้างความคืบหน้า:
ขั้นแรกให้สร้างต้นแบบบน breadboard
จากนั้นเคสจะถูกสรุปด้วยไฟล์
หลังจากนั้นส่วนประกอบหลักจะถูกบัดกรีและดำเนินการติดตั้ง ขานั้นโค้งงอเป็นพิเศษเพื่อให้ข้อต่อที่ถอดออกได้พอดีกับความสูง ต้องใส่ชั้นวางไนลอนสองชั้นเพื่อให้ทุกปุ่มอยู่ในระดับความสูงเท่ากัน
เป็นผลให้ด้านหน้าของบอร์ดมีปุ่มตัวต้านทานและสายไฟดังนี้:
ดังนั้นภายในของอุปกรณ์จะมีลักษณะดังนี้:
เมื่อประกอบแล้วอุปกรณ์จะมีลักษณะดังนี้:
การเอาชนะความยากลำบาก:
- เป็นเวลานานฉันไม่เข้าใจว่าทำไมปุ่มไม่ทำงานแม้ว่ามัลติมิเตอร์จะแสดงค่า 0 อย่างชัดเจนเมื่อกดปุ่มและ 4.6 - 5.0 V เมื่อกด (ขึ้นอยู่กับแหล่งจ่ายไฟ) ปรากฏว่าในอุปกรณ์ Wemos / Lolin จำเป็นต้องระบุหมายเลข GPIO เป็นหมายเลขพินในร่าง ตัวอย่างเช่น D5 คือ GPIO14 นี่คือเข็มที่ 14
const int buttonPin = 14;
- ในการแสดงสภาพอากาศจำเป็นต้องมีเงื่อนไข:
currentMillis - previousMillis == สภาพอากาศ
การโต้ตอบที่เข้มงวดเพราะจะต้องทำครั้งเดียว
หากต้องการส่งคำขอไปยังเซิร์ฟเวอร์จำเป็นต้องมีเงื่อนไข:currentMillis - previousMillis> = getDataTime
การปฏิบัติตามกฎระเบียบหลวมเนื่องจากมีการดำเนินการจนกว่าจะมีการตั้งค่าสถานะ "รับข้อมูล"
ในความเป็นจริงมันไม่ชัดเจนและการทำความเข้าใจมันใช้เวลาค่อนข้างนาน - ฉันต้องทรมานตัวเองด้วยการตอบกลับของเซิร์ฟเวอร์:
String weather = root ["weather"] [0] ["main"]; String description = root ["weather"] [0] ["description"];
ซีโร่ไม่มีความชัดเจนอย่างสมบูรณ์ ปรากฎว่ามีสถานีตรวจอากาศสองแห่งในมอสโกและสถานีที่สองไม่ทำงานเสมอ (เพื่อรับข้อมูลจากมันคุณต้องระบุ [1] ถ้าเปิดใช้งานอยู่)
ที่เก็บที่มีรหัสและไลบรารีตั้งอยู่ ที่นี่.