สารบัญ:
- ขั้นตอนที่ 1: รับชิ้นส่วนทั้งหมด
- ขั้นตอนที่ 2: ESP32
- ขั้นตอนที่ 3: การแสดงผล Nextion
- ขั้นตอนที่ 4: เซ็นเซอร์ BME280
- ขั้นตอนที่ 5: การเชื่อมต่อชิ้นส่วน
- ขั้นตอนที่ 6: รหัสของโครงการ
- ขั้นตอนที่ 7: ความคิดและการปรับปรุงขั้นสุดท้าย
วีดีโอ: ESP32 WiFi Weather Station พร้อมเซ็นเซอร์ BME280: 7 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
เพื่อนๆที่รักยินดีต้อนรับสู่การกวดวิชาอื่น! ในบทช่วยสอนนี้ เราจะสร้างโครงการสถานีตรวจอากาศที่เปิดใช้งาน aWiFi! เราจะใช้ชิป ESP32 ใหม่ที่น่าประทับใจพร้อมกับจอแสดงผล Nextion เป็นครั้งแรก
ในวิดีโอนี้ เราจะทำสิ่งนี้ ฉันรู้จักโครงการสถานีตรวจอากาศอีกโครงการหนึ่ง แต่คราวนี้เราใช้ชิป ESP32 ใหม่! เรายังใช้เซ็นเซอร์ BME280 ใหม่ ซึ่งวัดอุณหภูมิ ความชื้น และความกดอากาศ เมื่อเราเพิ่มพลังให้กับโปรเจ็กต์ มันจะเชื่อมต่อกับเครือข่าย WiFi และมันจะดึงข้อมูลการพยากรณ์อากาศสำหรับตำแหน่งของฉันจากเว็บไซต์ openweathermap จากนั้นจะแสดงการคาดการณ์บน 3.2” Nextion Touch Display พร้อมกับการอ่านจากเซ็นเซอร์! การอ่านจะได้รับการอัปเดตทุก ๆ สองวินาทีและการพยากรณ์อากาศทุก ๆ ชั่วโมง! อย่างที่คุณเห็น ในโครงการนี้ เราใช้เทคโนโลยีล่าสุดสำหรับผู้ผลิตในปัจจุบัน! หากคุณเป็นผู้เชี่ยวชาญ DIY คุณสามารถสร้างโครงการนี้ได้ภายในห้านาที
หากคุณเป็นมือใหม่ คุณต้องดูวิดีโอสักสองสามวิดีโอก่อนที่จะลองทำโครงการนี้ คุณสามารถค้นหาลิงก์ไปยังวิดีโอเหล่านี้ได้ในคำแนะนำนี้ ไม่ต้องกังวล
เริ่มกันเลย!
ขั้นตอนที่ 1: รับชิ้นส่วนทั้งหมด
ในการสร้างโครงการนี้ เราจำเป็นต้องมีส่วนต่างๆ ดังต่อไปนี้:
- บอร์ด ESP32 ▶
- เซ็นเซอร์ BME280 I2C ▶
- หน้าจอ Nextion ขนาด 3.2” ▶
- เขียงหั่นขนมขนาดเล็ก ▶
- สายบางเส้น ▶
ค่าใช้จ่ายของโครงการอยู่ที่ประมาณ 30 เหรียญ
แทนที่จะใช้ ESP32 เราสามารถใช้ชิป ESP8266 ที่ถูกกว่าได้ แต่ฉันตัดสินใจใช้ ESP32 เพื่อรับประสบการณ์กับมัน และดูว่าสิ่งใดใช้ได้ผลและไม่ได้ผล
ขั้นตอนที่ 2: ESP32
นี่เป็นโครงการแรกที่ฉันเคยสร้างด้วยชิป ESP32 ใหม่
หากคุณไม่คุ้นเคย ชิป ESP32 เป็นตัวตายตัวแทนของชิป ESP8266 ยอดนิยมที่เราเคยใช้มาหลายครั้งแล้ว ESP32 เป็นสัตว์ร้าย! มันมีแกนประมวลผล 32 คอร์สองตัวที่ทำงานที่ 160MHz หน่วยความจำจำนวนมาก WiFi บลูทู ธ และคุณสมบัติอื่น ๆ อีกมากมายด้วยราคาประมาณ 7 $! ของวิเศษ!
โปรดดูบทวิจารณ์โดยละเอียดที่ฉันเตรียมไว้สำหรับบอร์ดนี้ ฉันได้แนบวิดีโอในคำแนะนำนี้ จะช่วยให้เข้าใจว่าเหตุใดชิปตัวนี้จะเปลี่ยนวิธีที่เราทำสิ่งต่างๆ ตลอดไป!
ขั้นตอนที่ 3: การแสดงผล Nextion
นอกจากนี้ นี่เป็นโครงการแรกที่ฉันสร้างด้วยหน้าจอสัมผัส Nextion
การแสดง Nextion เป็นการแสดงรูปแบบใหม่ พวกเขามีโปรเซสเซอร์ ARM ของตัวเองที่ด้านหลังซึ่งรับผิดชอบในการขับเคลื่อนจอแสดงผลและสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ ดังนั้นเราจึงสามารถใช้พวกมันกับไมโครคอนโทรลเลอร์ใดก็ได้และบรรลุผลลัพธ์ที่น่าทึ่ง
ฉันได้เตรียมคำแนะนำโดยละเอียดเกี่ยวกับการแสดงผล Nextion ซึ่งอธิบายในเชิงลึกถึงวิธีการทำงาน วิธีใช้งาน และข้อเสีย สามารถอ่านได้ที่นี่:
ขั้นตอนที่ 4: เซ็นเซอร์ BME280
BME280 ในเซ็นเซอร์ใหม่ที่ยอดเยี่ยมจาก Bosch
จนถึงตอนนี้ ฉันใช้เซ็นเซอร์ BMP180 ซึ่งสามารถวัดอุณหภูมิและความดันบรรยากาศได้ เซ็นเซอร์ BME280 สามารถวัดอุณหภูมิ ความชื้น และความดันบรรยากาศได้! เจ๋งแค่ไหน! เราต้องการเซ็นเซอร์เพียงตัวเดียวเพื่อสร้างสถานีตรวจอากาศที่สมบูรณ์!
นอกจากนั้น เซ็นเซอร์มีขนาดเล็กมากและใช้งานง่ายมาก โมดูลที่เราจะใช้ในวันนี้ใช้อินเทอร์เฟซ I2C เพื่อให้สื่อสารกับ Arduino ได้ง่ายมาก เราเพียงเชื่อมต่อพลังงานและสายไฟอีกสองเส้นเพื่อให้มันใช้งานได้
มีห้องสมุดจำนวนมากที่พัฒนาขึ้นสำหรับเซ็นเซอร์นี้ ดังนั้นเราจึงสามารถใช้มันในโครงการของเราได้อย่างง่ายดายมาก! ค่าใช้จ่ายของเซ็นเซอร์ประมาณ 5 เหรียญ สามารถรับชมได้ที่นี่ ▶
หมายเหตุ: เราต้องการเซ็นเซอร์ BME280 นอกจากนี้ยังมีเซ็นเซอร์ BMP280 ซึ่งไม่มีการวัดความชื้น ระวังการสั่งซื้อเซ็นเซอร์ที่คุณต้องการ
ขั้นตอนที่ 5: การเชื่อมต่อชิ้นส่วน
การเชื่อมต่อของชิ้นส่วนต่างๆ นั้นตรงไปตรงมาอย่างที่คุณเห็นจากแผนผัง
เนื่องจากเซ็นเซอร์ BME280 ใช้อินเทอร์เฟซ I2C เราจึงจำเป็นต้องเชื่อมต่อสองสายเพื่อสื่อสารกับ ESP32 ฉันได้ติดเซ็นเซอร์เข้ากับพิน 26 และ 27 ในทางทฤษฎีแล้ว พินดิจิทัลของบอร์ด ESP32 ทุกตัวสามารถใช้กับอุปกรณ์ต่อพ่วง I2C ได้ ในทางปฏิบัติ ฉันพบว่าหมุดบางตัวใช้งานไม่ได้เพราะถูกสงวนไว้สำหรับการใช้งานอื่นๆ พิน 26 และ 27 ใช้งานได้ดี!
ในการส่งข้อมูลไปยังจอแสดงผล เราต้องต่อสายเพียงเส้นเดียวเข้ากับพิน TX0 ของ ESP32 ฉันต้องงอหมุดแบบนี้เพื่อเชื่อมต่อสายตัวเมียของจอแสดงผลเนื่องจากบอร์ด ESP32 ใหญ่เกินไปสำหรับเขียงหั่นขนมนี้
หลังจากเชื่อมต่อชิ้นส่วนต่างๆ แล้ว เราต้องโหลดโค้ดไปที่ ESP32 และต้องโหลด GUI ไปที่จอแสดงผล Nextion หากคุณมีปัญหาในการอัปโหลดโปรแกรมไปยังบอร์ด ESP32 ให้กดปุ่ม BOOT ค้างไว้หลังจากกดปุ่มอัปโหลดบน Arduino IDE
ในการโหลด GUI ไปยังจอแสดงผล Nextion ให้คัดลอกไฟล์ WeatherStation.tft ฉันจะแชร์กับคุณไปยังการ์ด SD เปล่า ใส่การ์ด SD ลงในช่องเสียบการ์ด SD ที่ด้านหลังของจอแสดงผล จากนั้นเปิดเครื่องแสดงผล และ GUI จะถูกโหลด จากนั้นถอดการ์ด SD และเสียบปลั๊กอีกครั้ง
หลังจากโหลดโค้ดสำเร็จแล้ว โปรเจ็กต์จะเชื่อมต่อกับเครือข่าย WiFi จะได้รับข้อมูลพยากรณ์อากาศจากเว็บไซต์ openweathermap.org และจะแสดงค่าที่อ่านได้จากเซ็นเซอร์ มาดูด้านซอฟต์แวร์ของโครงการกัน
ขั้นตอนที่ 6: รหัสของโครงการ
ในการแยกวิเคราะห์ข้อมูลสภาพอากาศ เราจำเป็นต้องมีไลบรารี Arduino JSON ที่ยอดเยี่ยม เราจำเป็นต้องมีห้องสมุดสำหรับเซ็นเซอร์ด้วย
? ESP32 BME280: https://github.com/Takatsuki0204/BME280-I2C-ESP32? Arduino JSON:
มาดูโค้ดกันเลย
อันดับแรก เราต้องตั้งค่า SSID และรหัสผ่านของเครือข่าย WiFi ของเรา ต่อไป เราต้องป้อน APIKEY ฟรีจากเว็บไซต์ operweathermap.org ในการสร้างคีย์ API ของคุณเอง คุณต้องลงทะเบียนบนเว็บไซต์ การรับข้อมูลสภาพอากาศในปัจจุบันและการพยากรณ์นั้นฟรี แต่เว็บไซต์มีตัวเลือกเพิ่มเติมหากคุณยินดีจ่ายเงิน ต่อไปเราต้องหา id ของตำแหน่งของเรา ค้นหาตำแหน่งของคุณและคัดลอก ID ซึ่งสามารถพบได้ที่ URL ของตำแหน่งของคุณ
จากนั้นป้อนรหัสเมืองของคุณในตัวแปร CityID นอกจากนี้ ให้ป้อนระดับความสูงของเมืองของคุณในตัวแปรนี้ ค่านี้จำเป็นสำหรับการอ่านค่าความดันบรรยากาศที่แม่นยำจากเซ็นเซอร์
const char* ssid = "yourSSID";const char* password = "รหัสผ่านของคุณ"; สตริง CityID = "253394"; //สปาร์ตา, กรีซสตริง APIKEY = "yourAPIkey"; #define ALTITUDE 216.0 // ระดับความสูงใน Sparta ประเทศกรีซ
ตอนนี้เราพร้อมแล้วที่จะไปต่อ
ในตอนแรก เราเริ่มต้นเซ็นเซอร์และเชื่อมต่อกับเครือข่าย WiFi จากนั้นเราขอข้อมูลสภาพอากาศจากเซิร์ฟเวอร์
เราได้รับการตอบกลับด้วยข้อมูลสภาพอากาศในรูปแบบ JSON ก่อนส่งข้อมูลไปยังไลบรารี JSON ฉันจะลบอักขระบางตัวที่เป็นสาเหตุของปัญหาด้วยตนเอง จากนั้นไลบรารี JSON ก็เข้ามาแทนที่ และเราสามารถบันทึกข้อมูลที่เราต้องการในตัวแปรได้อย่างง่ายดาย หลังจากที่เราเก็บข้อมูลไว้ในตัวแปรแล้ว สิ่งที่เราต้องทำคือแสดงข้อมูลเหล่านั้นบนหน้าจอและรอหนึ่งชั่วโมงก่อนที่จะขอข้อมูลใหม่จากเซิร์ฟเวอร์ ข้อมูลเดียวที่ฉันนำเสนอคือพยากรณ์อากาศ แต่คุณสามารถแสดงข้อมูลเพิ่มเติมได้หากต้องการ ทั้งหมดนี้บันทึกไว้ในตัวแปร จากนั้นเราอ่านอุณหภูมิ ความชื้น และความกดอากาศจากเซ็นเซอร์ แล้วส่งข้อมูลไปยังจอแสดงผล Nextion
ในการอัปเดตจอแสดงผล เราเพียงแค่ส่งคำสั่งบางคำสั่งไปยังพอร์ตอนุกรมดังนี้:
เป็นโมฆะ showConnectingIcon () { Serial.println (); คำสั่งสตริง = "weatherIcon.pic=3"; Serial.print(คำสั่ง); endNextionCommand(); }
Nextion GUI ประกอบด้วยพื้นหลัง กล่องข้อความบางส่วน และรูปภาพที่เปลี่ยนแปลงตามการพยากรณ์อากาศ โปรดดูบทแนะนำการแสดงผล Nextion สำหรับข้อมูลเพิ่มเติม คุณสามารถออกแบบ GUI ของคุณเองได้อย่างรวดเร็วหากต้องการและแสดงสิ่งต่างๆ เพิ่มเติม
คุณสามารถหารหัสของโครงการที่แนบมากับคำแนะนำนี้ได้เช่นเคย
ขั้นตอนที่ 7: ความคิดและการปรับปรุงขั้นสุดท้าย
อย่างที่คุณเห็น ผู้ผลิตที่มีประสบการณ์ในปัจจุบันสามารถสร้างโครงการที่น่าตื่นเต้นได้ในเวลาเพียงไม่กี่ชั่วโมงด้วยโค้ดเพียงไม่กี่บรรทัดและเพียงสามส่วนเท่านั้น! โครงการแบบนี้จะเป็นไปไม่ได้เลยเมื่อสองปีก่อน!
แน่นอนว่านี่เป็นเพียงจุดเริ่มต้นของโครงการเท่านั้น ฉันต้องการเพิ่มคุณสมบัติมากมาย เช่น กราฟ ฟังก์ชันการสัมผัสที่ขาดหายไป อาจเป็นจอแสดงผลที่ใหญ่ขึ้น และแน่นอนว่ากล่องพิมพ์ 3 มิติที่ดูสวยงาม ฉันจะออกแบบ GUI และไอคอนที่ดูดีขึ้นด้วย ฉันมีแนวคิดใหม่ ๆ ที่จะนำไปใช้!
ฉันชอบที่จะได้ยินความคิดเห็นของคุณเกี่ยวกับโครงการของวันนี้ คุณต้องการให้ฉันเพิ่มคุณสมบัติประเภทใดในโครงการ คุณชอบที่มันดู? คุณอยากเห็นวิวัฒนาการอย่างไร? กรุณาโพสต์ความคิดของคุณในส่วนความคิดเห็นด้านล่าง; ฉันชอบอ่านความคิดของคุณ!
รองชนะเลิศการแข่งขันไร้สาย
แนะนำ:
DIY Weather Station & WiFi Sensor Station: 7 ขั้นตอน (พร้อมรูปภาพ)
DIY Weather Station & WiFi Sensor Station: ในโครงการนี้ ฉันจะแสดงวิธีสร้างสถานีตรวจอากาศพร้อมกับสถานีเซ็นเซอร์ WiFi สถานีเซ็นเซอร์จะวัดอุณหภูมิและความชื้นในพื้นที่ และส่งผ่าน WiFi ไปยังสถานีตรวจอากาศ จากนั้นสถานีตรวจอากาศจะแสดงเ
ESP32 Weathercloud Weather Station: 16 ขั้นตอน (พร้อมรูปภาพ)
ESP32 Weathercloud Weather Station: ปีที่แล้วฉันเผยแพร่ Instructable ที่ใหญ่ที่สุดจนถึงปัจจุบันที่เรียกว่า Arduino Weathercloud Weather Station เป็นที่นิยมมากฉันจะพูด มันถูกนำเสนอบนหน้าแรกของ Instructables, บล็อก Arduino, พิพิธภัณฑ์ Wiznet, Instructables Instagram, Arduino Instagr
DIY Logging Thermometer พร้อมเซ็นเซอร์ 2 ตัว: 3 ขั้นตอน (พร้อมรูปภาพ)
DIY Logging Thermometer พร้อมเซ็นเซอร์ 2 ตัว: โครงการนี้เป็นการปรับปรุงโครงการก่อนหน้านี้ของฉัน "DIY Logging Thermometer" โดยจะบันทึกการวัดอุณหภูมิลงในการ์ด micro SD การเปลี่ยนแปลงฮาร์ดแวร์ฉันได้เพิ่มเซ็นเซอร์อุณหภูมิ DS18B20 ลงในโมดูลนาฬิกาแบบเรียลไทม์ โดยจะมีปร
DIY Glove Controller พร้อมเซนเซอร์ E-Textile: 14 ขั้นตอน (พร้อมรูปภาพ)
ตัวควบคุมถุงมือ DIY พร้อมเซ็นเซอร์ E-Textile: คำแนะนำนี้เป็นการสอนทีละขั้นตอนเกี่ยวกับวิธีการทำถุงมือข้อมูลด้วยเซ็นเซอร์ eTextile โครงการนี้เป็นความร่วมมือระหว่าง Rachel Freire และ Artyom Maxim Rachel เป็นนักออกแบบสิ่งทอถุงมือและเซ็นเซอร์ eTextile และ Arty เป็นผู้ออกแบบวงจร
Arduino DIY Light Meter พร้อมเซ็นเซอร์ BH1750: 6 ขั้นตอน (พร้อมรูปภาพ)
Arduino DIY Light Meter พร้อมเซ็นเซอร์ BH1750: ในคำแนะนำนี้ ฉันจะแสดงวิธีสร้างเครื่องวัดแสงด้วยจอแสดงผล LCD ขนาดใหญ่ของ Nokia 5110 โดยใช้ Arduino การสร้างเครื่องวัดแสงเป็นประสบการณ์การเรียนรู้ที่ยอดเยี่ยม เมื่อคุณสร้างโครงการนี้เสร็จแล้ว คุณจะมีความเข้าใจมากขึ้น