สารบัญ:
- ขั้นตอนที่ 3: JAWS: ซอฟต์แวร์
- ขั้นตอนที่ 4: ซอฟต์แวร์เพิ่มเติม…
- ขั้นตอนที่ 5: ภาพหน้าจอบางส่วน…
- ขั้นตอนที่ 6: เสร็จแล้ว?
วีดีโอ: ขากรรไกร: สถานีตรวจอากาศอีกแห่ง: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
มันค่อนข้างง่ายที่จะสร้างขากรรไกรดังกล่าว
คุณได้รับเซ็นเซอร์ของคุณ คุณรวมเข้าด้วยกันบนกระดาน และคุณเริ่มใช้ไลบรารีที่มาพร้อมกับเซ็นเซอร์
มาเริ่มกันที่การตั้งค่าโปรแกรมกันก่อน
เนื่องจากฉันพูดภาษาดัตช์ (เจ้าของภาษา) ข้อมูลทั้งหมดและตัวแปรส่วนใหญ่ที่ฉันใช้จึงเป็นภาษาดัตช์ ตอนนี้คุณมีโอกาสที่จะเรียนรู้ภาษาอื่น…
เราต้องการอะไรจาก JAWS?
ง่าย ๆ: เราต้องการดูหน้าจอที่แสดงเวลาจริง วันที่ เอเฟเมอไรด์ (พระอาทิตย์ขึ้น ดวงอาทิตย์ตก ความยาวของวัน และเที่ยงวันทางดาราศาสตร์) ตามจริง
นอกจากนั้น คงจะดีถ้าได้เห็นอุณหภูมิภายในและภายนอก ความชื้นสัมพัทธ์และจุดน้ำค้าง และความกดอากาศ
เพื่อให้ง่ายขึ้น ฉันใช้เซนติเกรดสำหรับอุณหภูมิและ hPa (=mBar) สำหรับความดัน ดังนั้นไม่มีใครต้องคำนวณกลับจากฟาเรนไฮต์หรือปอนด์ต่อตารางเฟอร์ลอง…
ขณะนี้ มีเพียงข้อมูลเหล่านี้เท่านั้น…
ในอนาคตฉันจะเพิ่มความเร็วลม ทิศทางลม และปริมาณน้ำฝน
แนวคิดก็คือ ฉันจะมีกระท่อมรับอากาศภายนอก และข้อมูลทั้งหมดจะถูกส่งผ่าน 2.4GHz ไปยังตัวเครื่องในอาคาร
ขั้นตอนที่ 3: JAWS: ซอฟต์แวร์
เพื่อเข้าถึงซอฟต์แวร์ของเรา ส่วนใหญ่สามารถพบได้ในไลบรารีที่มีอยู่
ใน JAWS ฉันใช้สิ่งต่อไปนี้:
- SPI.h: ไลบรารีดั้งเดิมจาก Arduino สำหรับโปรโตคอล 4 สาย มันถูกใช้สำหรับ TFT-shield
- Adafruit_GFX.h และ MCUfriend_kbv.h: ทั้งคู่ใช้สำหรับกราฟิกและหน้าจอ สิ่งเหล่านี้ทำให้ง่ายต่อการเขียนข้อความ ลากเส้น และกล่องต่างๆ บนหน้าจอ TFT
- dht.h: สำหรับ DHT ของเรา: ไลบรารีนี้สามารถใช้สำหรับ DHT11 (อันสีน้ำเงิน) และ DHT22
- Wire.h: ไลบรารี Arduino เพื่อให้การสื่อสารแบบอนุกรมเป็นเรื่องง่าย ใช้สำหรับนาฬิกาและการ์ด SD
- SD.h: Arduino ดั้งเดิมอีกครั้งในการเขียนและอ่านจากการ์ด SD
- TimeLord.h: อันนี้ฉันใช้รักษาเวลา คำนวณพระอาทิตย์ตกหรือพระอาทิตย์ขึ้นจากตำแหน่งทางภูมิศาสตร์ใดๆ นอกจากนี้ยังตั้งนาฬิกาสำหรับ DST (ฤดูร้อนหรือฤดูหนาว)
เริ่มจากนาฬิกากันก่อน
เมื่ออ่านนาฬิกา คุณต้องมีตัวแปรที่คุณได้รับจากรีจิสเตอร์ต่างๆ ภายในโมดูลนาฬิกา เมื่อเราทำให้มันเป็นมากกว่าตัวเลข เราสามารถใช้บรรทัดต่อไปนี้:
const int DS1307 = 0x68;const char* days = {"Zo.", "Ma.", "Di.", "Wo.", "Do", "Vr.", "Za"};
const ถ่าน* เดือน = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11 "," 12"};
NS
ด้วย TimeLord เราได้รับสิ่งนี้เป็นข้อมูลสำหรับสถานที่ของฉัน: (Lokeren, เบลเยียม)
ไทม์ลอร์ดโลเคเรน; ตั้งค่า Lokeren. Position (51.096, 3.99); ลองจิจูดและละติจูด
Lokeren. TimeZone(+1*60); GMT +1 = +1 x 60 นาที
Lokeren. DstRules(3, 4, 10, 4, 60); DST ตั้งแต่เดือนที่ 3 สัปดาห์ที่ 4 ถึงเดือนที่ 10 สัปดาห์ที่ 4 +60 นาที
int jaar= ปี +2000;
ไบต์พระอาทิตย์ขึ้น= {0, 0, 12, เดือน, เดือน, ปี}; เริ่มคำนวณทุกวันตั้งแต่ 00 น.
ไบต์ sunSet={0, 0, 12, monthday, month, year}; เหมือนข้างบน
byte maan={0, 0, 12, monthday, month, year}; เหมือนข้างบน
เฟสลอย
จากที่นี่จะทำการคำนวณ
เฟส = Lokeren. MoonPhase(มาน);
Lokeren. SunRise(พระอาทิตย์ขึ้น);
Lokeren. SunSet(พระอาทิตย์ตก);
Lokeren. DST(พระอาทิตย์ขึ้น);
Lokeren. DST(อาทิตย์ตก);
int ZonOpUur=พระอาทิตย์ขึ้น[tl_hour];
int ZonOpMin = พระอาทิตย์ขึ้น[tl_minute];
int ZonOnUur = พระอาทิตย์ตก [tl_hour];
int ZonOnMin = ซันเซ็ท[tl_minute];
นี่คือตัวอย่างวิธีคำนวณสิ่งต่างๆ ใน TimeLord ด้วยห้องสมุดนี้ คุณจะได้เวลาพระอาทิตย์ตกและพระอาทิตย์ขึ้นที่แม่นยำ (ค่อนข้างมาก)
ในตอนท้าย ฉันจะใส่โปรแกรมทั้งหมดด้วยคำแนะนำนี้ มันค่อนข้างตรงไปตรงมา
ขั้นตอนที่ 4: ซอฟต์แวร์เพิ่มเติม…
ข้อมูลเพิ่มเติมเกี่ยวกับซอฟต์แวร์…
เรามีสามส่วนใหญ่ในซอฟต์แวร์
1) เราได้รับข้อมูลดิบจากเซ็นเซอร์ต่างๆ ของเรา: จากนาฬิกา DHT และ BMP180 นั่นคือข้อมูลของเรา
2) เราจำเป็นต้องแปลข้อมูลเป็น (1 และ 0) เป็นสิ่งที่สมเหตุสมผล สำหรับสิ่งนี้ เราใช้ไลบรารีและตัวแปรของเรา
3) เราต้องการอ่านและจัดเก็บข้อมูลของเรา นั่นคือผลลัพธ์ของเรา สำหรับการใช้งานทันที เรามี LCD-TFT สำหรับใช้ในภายหลัง เรามีข้อมูลที่บันทึกไว้ในการ์ด SD ของเรา
ในลูปของเรา () เราได้รับ "GOTO" มากมาย: เราข้ามไปยังไลบรารีต่างๆ เราได้รับข้อมูลของเราจากเซ็นเซอร์ตัวใดตัวหนึ่ง รับข้อมูลและเก็บไว้ใน (ส่วนใหญ่) ตัวแปรข้อมูลแบบลอยตัว เราเลือกชื่อตัวแปรของเราอย่างชาญฉลาด ไม่ใช่ด้วย x หรือ y แต่ใช้ชื่ออย่าง "tempOutside" หรือ "pressure" หรืออะไรทำนองนั้น เพื่อให้อ่านง่ายขึ้น ตกลง สิ่งนี้ทำให้การใช้ตัวแปรหนักขึ้นเล็กน้อยและใช้หน่วยความจำมากขึ้น
เคล็ดลับคือ: เมื่อทำให้ตัวแปรของเราปรากฏบนหน้าจอ ตัวแปรจะถูกวางไว้ในตำแหน่งที่ถูกต้อง
ไลบรารีสองแห่งที่ใช้ที่นี่ Adafruit_GFX.h และ MCUfriend_kbv.h มีชุดงานที่ดีในการใช้สี แบบอักษร และความสามารถในการวาดเส้น ในตัวอย่างแรก ฉันใช้หน้าจอ 12864- กับไลบรารีเหล่านี้ ต่อมาฉันเปลี่ยนสิ่งนั้นในหน้าจอ tft ทั้งหมดที่ฉันต้องทำคือวางกล่อง สี่เหลี่ยมและเส้น และตรวจสอบให้แน่ใจว่าข้อมูลออกมาถูกที่แล้ว คุณสามารถใช้ setCursor และ tft. Write เป็นคำสั่งได้ ง่ายทำมัน สามารถกำหนดสีเป็นตัวแปรได้เช่นกัน มีตัวอย่างมากมายในไลบรารีเหล่านั้นว่าจะเลือกอย่างไร
สำหรับการเขียนบนการ์ด SD เราต้องการลูกเล่นง่ายๆ ด้วยเช่นกัน
ตัวอย่างเช่น เราอ่านข้อมูลจากนาฬิกาโดยแยกเป็นชั่วโมง นาที และวินาที อุณหภูมิคือ DHT.temperature และ DHTT.temperature เพื่อแยกความแตกต่างระหว่างในร่มหรือกลางแจ้ง
เมื่อเราต้องการใส่มันลงในการ์ด SD เราใช้สตริง: เราเริ่มทุกลูปเป็นสตริงว่าง:
ตัวแปรสตริง=""; จากนั้นเราสามารถกรอกข้อมูลทั้งหมดของเรา:
variablestring = variablestring + hours+":" + minutes +":" + seconds ซึ่งจะทำให้สตริงเช่น 12:00:00
เนื่องจากเราเขียนเป็นไฟล์ TXT (ดู SD.h บน Arduino.cc) สำหรับตัวแปรถัดไป เราจึงเพิ่มแท็บ ดังนั้นจึงง่ายต่อการนำเข้าใน Excel
ดังนั้นเราจึงมาที่: variablestring = variablestring +" \t " + DHT.temperature + " \t" + DHTT. Temperature
และอื่นๆ.
ขั้นตอนที่ 5: ภาพหน้าจอบางส่วน…
เพื่อให้แน่ใจว่าเราจะไม่ "โอเวอร์โหลด" ชุดข้อมูลของเรา ฉันเขียนข้อมูลเพียงครั้งเดียวทุกๆ 10 นาที ให้เรา 144 รายการต่อวัน ฉันคิดว่าไม่เลว
และแน่นอน คุณสามารถดำเนินการกับข้อมูลนั้นต่อไปได้: คุณสามารถสร้างค่าเฉลี่ย คุณสามารถมองหาค่าสูงสุดและค่าต่ำสุด คุณสามารถเปรียบเทียบกับปีที่ผ่านมา…
สำนักงาน Met มักจะทำการเฉลี่ยทั้งกลางวันและกลางคืน สำหรับอุณหภูมิ: กลางวันเริ่มเวลา 8.00 น. และทำงานถึง 20.00 น.
สำหรับลม ความกดอากาศ และปริมาณฝน จะใช้ค่าเฉลี่ยตั้งแต่เที่ยงคืนถึงเที่ยงคืน
ขั้นตอนที่ 6: เสร็จแล้ว?
ไม่ได้จริงๆ… อย่างที่ฉันบอกไป ในที่สุดฉันก็อยากได้เซ็นเซอร์วัดความเร็วลมและทิศทางลมที่ทำงานร่วมกับขากรรไกรที่เหลือ
สิ่งก่อสร้างเล็กๆ ที่ฉันสร้างนั้นสูงประมาณ 4 เมตร นักอุตุนิยมวิทยาได้รับความเร็วลมจากที่สูง 10 เมตร สูงเกินไปสำหรับฉัน…
ฉันหวังว่าคุณจะสนุกกับการอ่านสิ่งนี้!
อธิบาย Adafruit-GFX ที่นี่:
พบ MCUFRIEND_kbv.h ที่นี่:
ข้อมูลเพิ่มเติมเกี่ยวกับ BMP 120 (เหมือนกับ BMP085):
เกี่ยวกับ DHT22:
แนะนำ:
การออกแบบเกมในการสะบัดใน 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++)
สถานีตรวจอากาศอีกแห่ง (YAWS): 18 ขั้นตอน (พร้อมรูปภาพ)
สถานีตรวจอากาศอีกแห่ง (Y.A.W.S.): โครงการนี้เป็นโครงการที่ฉันใช้เกี่ยวกับสถานีตรวจอากาศที่ได้รับความนิยมตลอดกาล ของฉันใช้ ESP8266, a.96” จอแสดงผล OLED และอาร์เรย์เซ็นเซอร์สิ่งแวดล้อม BME280 สถานีตรวจอากาศดูเหมือนจะเป็นโครงการที่ได้รับความนิยมมาก เหมืองสร้างความแตกต่างจาก ot