การสร้าง Web Based Weather Station โดยใช้ ESP32
ในศตวรรษปัจจุบันทุกอย่างเปลี่ยนไปใช้ WiFi มีสถานีอากาศจำนวนมากในตลาดที่สามารถใช้งาน WiFi และใช้ในบ้านได้ เหล่านี้ สถานีตรวจอากาศ เชื่อมต่อกับอินเทอร์เน็ตและมีเซ็นเซอร์บางตัว สถานีเหล่านั้นจะรับรู้อุณหภูมิความชื้นหรือความดันและแสดงบนหน้าจอที่มีอยู่แล้วในแกดเจ็ตและส่งข้อมูลไปยังแอปพลิเคชันมือถือผ่าน WiFi เซนเซอร์เหล่านี้มีราคาแพงมาก ดังนั้นคนส่วนใหญ่ไม่สามารถซื้อได้ เราจะสร้างสถานีตรวจอากาศที่บ้านซึ่งจะมีประสิทธิภาพและประหยัดด้วย ง่ายมากที่จะทำเองที่บ้านโดยใช้ส่วนประกอบที่หาได้ง่ายในตลาด
ในบทความนี้เราจะสร้างสถานีตรวจอากาศโดยใช้ไฟล์ ESP32 และ BME280 เซ็นเซอร์ เซ็นเซอร์จะตรวจจับพารามิเตอร์ที่เกี่ยวข้องและส่งไปยังหน้าเว็บผ่านการเชื่อมต่อ WiFi ในพื้นที่ สำหรับสิ่งนี้เราจะเขียนโค้ดและเบิร์นลงบนบอร์ดไมโครคอนโทรลเลอร์
วิธีสร้างสถานีตรวจอากาศโดยใช้ ESP32 และ BME280
เมื่อเราทราบบทคัดย่อของโครงการแล้วให้เราดำเนินการต่อและรวบรวมข้อมูลเพิ่มเติมเพื่อเริ่มทำงานในโครงการ
ขั้นตอนที่ 1: รวบรวมส่วนประกอบ
แนวทางที่ดีที่สุดในการเริ่มต้นโครงการคือการจัดทำรายการส่วนประกอบและทำการศึกษาส่วนประกอบเหล่านี้โดยสังเขปเนื่องจากไม่มีใครต้องการยึดติดอยู่ตรงกลางของโครงการเพียงเพราะส่วนประกอบที่ขาดหายไป รายการส่วนประกอบที่เราจะใช้ในโครงการนี้มีดังต่อไปนี้:
ขั้นตอนที่ 2: การสร้างตารางใน HTML
ตอนนี้เรามาดูวิธีสร้างตารางใน HyperText Markup Language (HTML) และแสดงในเว็บเบราว์เซอร์ HTML เป็นภาษาที่ใช้สร้างโครงสร้างของหน้าเว็บ ประกอบด้วยชุดขององค์ประกอบที่บอกเบราว์เซอร์ว่าจะแสดงสิ่งต่างๆบนหน้าเว็บอย่างไร องค์ประกอบเหล่านี้แสดงด้วยแท็ก เบราว์เซอร์อ่านโค้ดที่เขียนด้วย HTML และแสดงเนื้อหาบนหน้าจอโดยไม่แสดงแท็ก
ในการสร้างตารางในเบราว์เซอร์เราจะใช้ไฟล์
ปริมาณที่เรากำลังวัดมูลค่า
การวัด | VALUE |
---|---|
อุณหภูมิ เซลเซียส | --- *ค |
อุณหภูมิ ฟาเรนไฮต์ | --- * ฉ |
ความดัน | - hPa |
ประมาณ. ระดับความสูง | --- เมตร |
ความชื้น | --- % |
ในโค้ดด้านบนเซลล์สองเซลล์ของคอลัมน์แรกถูกตั้งชื่อเป็นการวัดและค่า ด้านล่างนี้จะมีการสร้างแถวหกแถวและแต่ละแถวมีไว้สำหรับปริมาณที่แตกต่างกันที่จะวัด เขียนรหัสนี้บนแผ่นจดบันทึก คลิกที่ ไฟล์ เมนูที่มุมบนซ้ายของหน้าจอ คลิกที่ บันทึกเป็น และตั้งชื่อไฟล์ของคุณด้วยนามสกุล .html.ตอนนี้เปลี่ยน Save As Type เป็น ทั้งหมด.คลิกที่ปุ่มบันทึกเพื่อบันทึกไฟล์ เบราว์เซอร์จะถูกสร้างขึ้นในโฟลเดอร์ที่วางไฟล์ข้อความนั้น คลิกที่ไฟล์นั้นเพื่อดูตารางของคุณในเบราว์เซอร์
เมื่อคุณจะเปิดไฟล์ในเบราว์เซอร์จะมีลักษณะดังภาพต่อไปนี้ ในตารางนี้จะไม่รวมรูปแบบ หากคุณต้องการเพิ่มเส้นขอบเพื่อสร้างตารางที่มีสไตล์ตามที่คุณต้องการ คุณจะต้องเพิ่ม CSS เข้าไป ในการเพิ่ม CSS คลิกที่นี่
ขั้นตอนที่ 3: การประกอบส่วนประกอบ
ตอนนี้ให้เราก้าวไปข้างหน้าและเชื่อมต่อเซ็นเซอร์กับ ESP32 คณะกรรมการ. ก่อนที่จะทำการเชื่อมต่อเหล่านี้ควรศึกษาคร่าวๆเกี่ยวกับการกำหนดค่าพินของเซนเซอร์ก่อน
ก BME280 เซ็นเซอร์มีหมุดเจ็ดตัวอยู่ One Pin คือพิน Vcc ที่ใช้เพื่อเปิดเซ็นเซอร์และพินที่สองคือพินกราวด์ แหล่งจ่ายอินพุตที่ใช้กับขา Vcc ต้องอยู่ในช่วง 1.8V ถึง 3.6V ฉัน2C การส่งข้อมูลแบบอนุกรม (สองทิศทาง) สามารถทำได้โดย SDA และ SCL พิน SCK ใช้สำหรับสายนาฬิกาในกระบวนการส่งสัญญาณ SDO พินใช้สำหรับข้อมูลที่ออกมาจากเซ็นเซอร์ BME280 SDI พินใช้สำหรับข้อมูลที่ออกจากเซ็นเซอร์ BME280 ชิปที่ใช้งานต่ำที่เลือกคือ CS พิน
โปรโตคอลที่เราจะใช้ในโครงการนี้คือการสื่อสาร 12C กับโมดูลเซ็นเซอร์ BME280 เพื่อจุดประสงค์นี้เราจะใช้ไฟล์ SDA และ SCL พินของเซ็นเซอร์ เชื่อมต่อพิน 21 ของ ESP32 เชื่อมต่อกับพิน SDA ของเซ็นเซอร์และพิน 22 ของ ESP32 เชื่อมต่อกับ SCL f เซ็นเซอร์
เมื่อทำการเชื่อมต่อทั้งหมดแล้วให้เชื่อมต่อบอร์ดไมโครคอนโทรลเลอร์เข้ากับคอมพิวเตอร์และเบิร์นโค้ดในนั้น กดปุ่มเปิดใช้งานเพื่อเริ่มต้น การเชื่อมต่อของแผนภาพจะมีลักษณะดังนี้:
ขั้นตอนที่ 4: เริ่มต้นใช้งาน ESP32
หากคุณไม่เคยทำงานกับ Arduino IDE มาก่อน ไม่ต้องกังวลเพราะขั้นตอนในการตั้งค่า Arduino IDE แสดงอยู่ด้านล่าง
- ดาวน์โหลด Arduino IDE เวอร์ชันล่าสุดจาก Arduino
- เชื่อมต่อบอร์ด Arduino ของคุณกับพีซีและเปิดแผงควบคุม คลิกที่ ฮาร์ดแวร์และเสียง.เปิดให้บริการแล้ว อุปกรณ์และเครื่องพิมพ์ และค้นหาพอร์ตที่บอร์ดของคุณเชื่อมต่ออยู่ ในกรณีของฉันมันคือ COM14แต่มันแตกต่างกันในคอมพิวเตอร์แต่ละเครื่อง
- คลิกที่ไฟล์จากนั้นคลิกที่การตั้งค่า คัดลอกลิงค์ต่อไปนี้ในไฟล์ URL ของ Board Manager เพิ่มเติม “https://dl.espressif.com/dl/package_esp32_index.json”
- ตอนนี้ในการใช้ ESP32 กับ Arduino IDE เราจำเป็นต้องนำเข้าไลบรารีพิเศษที่จะช่วยให้เราสามารถเบิร์นโค้ดบน ESP32 และใช้งานได้ ไลบรารีทั้งสองนี้แนบอยู่ในลิงค์ด้านล่าง หากต้องการรวมไลบรารี goto ร่าง > รวมไลบรารี > เพิ่มไลบรารี ZIP. กล่องจะปรากฏขึ้น ค้นหาโฟลเดอร์ ZIP ในคอมพิวเตอร์ของคุณและคลิกตกลงเพื่อรวมโฟลเดอร์ ไลบรารีนี้แนบมาพร้อมกับรหัสในลิงค์ด้านล่าง
- ตอนนี้ goto ร่าง> รวมไลบรารี> จัดการไลบรารี
- เมนูจะเปิดขึ้น ในแถบค้นหาพิมพ์ adafruit bme280. แพคเกจนี้จะใช้ในการรวมเข้าด้วยกัน BME280 เซ็นเซอร์และอ่านค่าจากมัน แพ็กเกจจะปรากฏบนหน้าจอ ติดตั้งแพคเกจโดยคลิกที่ปุ่มติดตั้ง
- ใน Library Manager เดียวกันให้ค้นหา Adafruit Unified Sensorไลบรารีนี้ยังช่วยให้เซ็นเซอร์ BME280 ใช้กับ ESP32 รายการจะปรากฏในกล่อง ไปที่ส่วนท้ายของรายการและเลือกไลบรารีที่แสดงในรูปภาพด้านล่าง คลิกที่ปุ่มติดตั้งเพื่อติดตั้งไลบรารี
- เมนูจะเปิดขึ้น ในแถบค้นหาพิมพ์ Arduino JSONรายการจะปรากฏขึ้น ติดตั้ง Arduino JSON โดย Benoit Blanchon
- ตอนนี้คลิกที่ไฟล์ เครื่องมือเมนูแบบเลื่อนลงจะปรากฏขึ้น ตั้งค่าบอร์ดเป็น โมดูล ESP Dev
- คลิกที่เมนูเครื่องมืออีกครั้งและตั้งค่าพอร์ตที่คุณสังเกตเห็นในแผงควบคุมก่อนหน้านี้
- ตอนนี้อัปโหลดรหัสที่แนบมาในลิงค์ด้านล่างและคลิกที่ปุ่มอัปโหลดเพื่อเบิร์นโค้ดบนไมโครคอนโทรลเลอร์ ESP32
ตอนนี้เมื่อคุณจะอัปโหลดโค้ดอาจเกิดข้อผิดพลาดขึ้น นี่เป็นข้อผิดพลาดทั่วไปที่อาจเกิดขึ้นหากคุณใช้ Arduino IDE และ Arduino JSON เวอร์ชันใหม่ ต่อไปนี้เป็นข้อผิดพลาดที่คุณอาจเห็นบนหน้าจอ
ในไฟล์รวมจาก C: \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0 จาก C: \ Users \ Pro \ Desktop \ smartHome \ code \ code.ino: 2: C : \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: error: StaticJsonBuffer เป็นคลาสจาก ArduinoJson 5 โปรดดู arduinojson.org/upgrade เพื่อเรียนรู้วิธีอัปเกรดโปรแกรมของคุณเป็น ArduinoJson รุ่น 6 StaticJsonBufferjsonBuffer; ^ ในไฟล์ที่มาจาก C: \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, จาก C: \ Users \ Pro \ Desktop \ smartHome \ code \ code.ino: 2: C: \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: error: StaticJsonBuffer เป็นคลาสจาก ArduinoJson 5 โปรดดู arduinojson.org/upgrade เพื่อเรียนรู้วิธีอัปเกรดโปรแกรมของคุณเป็น ArduinoJson เวอร์ชัน 6 ส่งคืน StaticJsonBuffer () .parseObject (_data); ^ พบหลายไลบรารีสำหรับ "WiFi.h" ที่ใช้: C: \ Users \ Pro \ AppData \ Local \ Arduino15 \ package \ esp32 \ hardware \ esp32 \ 1.0.2 \ libraries \ WiFi ไม่ได้ใช้: C: \ Program Files ( x86) \ Arduino \ libraries \ WiFi โดยใช้ไลบรารี WiFi ที่เวอร์ชัน 1.0 ในโฟลเดอร์: C: \ Users \ Pro \ AppData \ Local \ Arduino15 \ package \ esp32 \ hardware \ esp32 \ 1.0.2 \ libraries \ WiFi โดยใช้ไลบรารี IOXhop_FirebaseESP32-master ในโฟลเดอร์: C: \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master (ดั้งเดิม) โดยใช้ไลบรารี HTTPClient ที่เวอร์ชัน 1.2 ในโฟลเดอร์: C: \ Users \ Pro \ AppData \ Local \ Arduino15 \ package \ esp32 \ hardware \ esp32 \ 1.0.2 \ libraries \ HTTPClient การใช้ไลบรารี WiFiClientSecure ที่เวอร์ชัน 1.0 ในโฟลเดอร์: C: \ Users \ Pro \ AppData \ Local \ Arduino15 \ package \ esp32 \ hardware \ esp32 \ 1.0.2 \ libraries \ WiFiClientSecure โดยใช้ไลบรารี ArduinoJson ที่ เวอร์ชัน 6.12.0 ในโฟลเดอร์: C: \ Users \ Pro \ Documents \ Arduino \ libraries \ ArduinoJson สถานะการออก 1 ข้อผิดพลาดในการคอมไพล์สำหรับบอร์ด ESP32 Dev Module
ไม่มีอะไรต้องกังวลเพราะเราสามารถกำจัดข้อผิดพลาดเหล่านี้ได้โดยทำตามขั้นตอนง่ายๆ ข้อผิดพลาดเหล่านี้เกิดขึ้นเนื่องจาก Arduino JSON เวอร์ชันใหม่มีคลาสอื่นแทน StaticJsonBuffer.นี่คือคลาสของ JSON 5 ดังนั้นเราสามารถกำจัดข้อผิดพลาดนี้ได้โดยการดาวน์เกรด Arduino JSON เวอร์ชัน Arduino IDE ของเรา เพียงไปที่ ร่าง> รวมไลบรารี> จัดการไลบรารีค้นหาArduino JSON โดย Benoit Blanchonที่คุณเคยติดตั้งมาก่อน ถอนการติดตั้งก่อนจากนั้นตั้งค่าเวอร์ชันเป็น 5.13.5. ตอนนี้เราได้ตั้งค่า Arduino JSON เวอร์ชันเก่าแล้ว ให้ติดตั้งอีกครั้งและคอมไพล์โค้ดใหม่ คราวนี้ รหัสของคุณจะคอมไพล์สำเร็จ
ดาวน์โหลดรหัสคลิกที่นี่
ขั้นตอนที่ 5: ทำความเข้าใจรหัส
รหัสของโครงการนี้ง่ายมากและแสดงความคิดเห็นได้ดี แต่ถึงกระนั้นรหัสก็อธิบายสั้น ๆ ด้านล่าง
1. ในการเริ่มต้นมีการรวมไลบรารีเพื่อให้บอร์ด ESP32 สามารถเชื่อมต่อกับการเชื่อมต่อ WiFi ภายในบ้านหรือที่ทำงาน นอกจากนี้ยังมีไลบรารีที่ช่วย ESP32 ในการรวมเซ็นเซอร์ BME280 เข้าด้วย จากนั้นชื่อและรหัสผ่านของการเชื่อมต่อ wifi ในพื้นที่ของคุณจะถูกกำหนดเพื่อให้ ESP32 สามารถเชื่อมต่อกับ Wifi ได้
// โหลดไลบรารี Wi-Fi #include// libray เพื่อใช้ wifi #include # รวม // ไลบรารีเพื่อใช้เซ็นเซอร์ BME280 #include // ไลบรารีเพื่อใช้เซ็นเซอร์ BME280
2. หลังจากนี้จะมีการแสดงความคิดเห็นในบางบรรทัด เส้นเหล่านี้จะถูกใช้หากคุณใช้โปรโตคอล SPI สำหรับการสื่อสารของเซ็นเซอร์ เราจะให้พวกเขาแสดงความคิดเห็นเนื่องจากเราใช้โปรโตคอล 12C
/ * # ได้แก่# กำหนด BME_SCK 18 # กำหนด BME_MISO 19 # กำหนด BME_MOSI 23 # กำหนด BME_CS 5 * /
3. ตัวแปรถูกสร้างขึ้นเพื่อบันทึกค่าของความดันระดับน้ำทะเลในเฮกโตปาสคาล 1 เฮกโตปาสคาลเทียบเท่ากับมิลลิบาร์ ระดับความสูงของความดันที่กำหนดจะถูกประมาณจากนั้นตัวแปรนี้จะเปรียบเทียบกับความดันระดับน้ำทะเล หลังจากนี้, bmeเป็นวัตถุที่สร้างขึ้นเพื่อใช้งานต่อไป
# กำหนด SEALEVELPRESSURE_HPA (1013.25) // ตัวแปรเพื่อเปรียบเทียบความดันที่พบกับระดับน้ำทะเล Adafruit_BME280 bme; // I2C
4. หลังจากนี้ชื่อของการเชื่อมต่อ WiFi ของคุณและพลังงานจะรวมอยู่ในรหัสเพื่อให้สามารถเชื่อมต่อ ESP32 กับ WiFi ได้ หลังจากนั้นหมายเลขพอร์ตจะถูกตั้งค่าให้สื่อสารกับเว็บเซิร์ฟเวอร์และมีการประกาศตัวแปรเพื่อจัดเก็บคำขอ HTTP
const char * ssid = "SSID ของคุณ"; // ชื่อการเชื่อมต่อ wifi ในพื้นที่ของคุณ const char * password = "YOUR PASSWORD"; // รหัสผ่านของเซิร์ฟเวอร์ WiFiServer การเชื่อมต่อ WiFi ในพื้นที่ของคุณ (80); // ตั้งค่าหมายเลขพอร์ตเว็บเซิร์ฟเวอร์เป็น 80 ส่วนหัวของสตริง; // ตัวแปรในการจัดเก็บคำขอ HTTP
5. การตั้งค่าเป็นโมฆะ ()เป็นฟังก์ชั่นที่เราเตรียมใช้งานพิน INPUT หรือ OUTPUT ฟังก์ชั่นนี้ยังกำหนดอัตราการรับส่งข้อมูลโดยใช้ Serial.begin () คำสั่ง Baud Rate คือความเร็วในการสื่อสารของไมโครคอนโทรลเลอร์ มีการเพิ่มโค้ดบางบรรทัดที่นี่เพื่อเชื่อมต่อ ESP32 กับการเชื่อมต่อ wifi ในพื้นที่ บอร์ดจะพยายามเชื่อมต่อกับการเชื่อมต่อ wifi ท้องถิ่นและจะพิมพ์ “การเชื่อมต่อ” ในจอภาพแบบอนุกรม มันจะพิมพ์ “ เชื่อมต่อแล้ว” เมื่อการเชื่อมต่อถูกสร้างขึ้น ดังนั้นเพื่อตรวจสอบสิ่งนี้ จะเป็นการดีกว่าที่จะเปิดมอนิเตอร์แบบอนุกรมและตรวจสอบสถานะที่นั่น
การตั้งค่าเป็นโมฆะ () {Serial.begin (115200); // การตั้งค่าสถานะบูลอัตราบอด; // การตั้งค่าเริ่มต้น // (คุณสามารถส่งผ่านวัตถุไลบรารี Wire เช่น & Wire2) // status = bme.begin (); ถ้า (! bme.begin (0x76)) {// ตรวจสอบว่าเซ็นเซอร์เป็นอนุกรม fouund Serial.println หรือไม่ ("ไม่พบเซ็นเซอร์ BME280 ที่ถูกต้องให้ตรวจสอบสายไฟ!"); ในขณะที่ (1); } // เชื่อมต่อกับเครือข่าย Wi-Fi ด้วย SSID และรหัสผ่าน Serial.print ("Connecting to"); Serial.println (ssid); WiFi.begin (ssid รหัสผ่าน); ในขณะที่ (WiFi.status ()! = WL_CONNECTED) {ล่าช้า (500); Serial.print("."); } // พิมพ์ที่อยู่ IP ในเครื่องและเริ่มเว็บเซิร์ฟเวอร์ Serial.println (""); Serial.println ("เชื่อมต่อ WiFi แล้ว"); Serial.println ("ที่อยู่ IP:"); // พิมพ์ที่อยู่ IP บนมอนิเตอร์แบบอนุกรม Serial.println (WiFi.localIP ()); server.begin (); }
6. ห่วงเป็นโมฆะ ()เป็นฟังก์ชันที่ทำงานซ้ำ ๆ ในวง ในลูปนี้เราจะเขียนโค้ดที่บอกบอร์ดไมโครคอนโทรลเลอร์ว่าต้องทำอะไรและทำอย่างไร ในรหัสนี้อันดับแรกการเชื่อมต่อถูกสร้างขึ้นกับไคลเอนต์ใหม่ หากสร้างการเชื่อมต่อแล้วเว็บเพจจะแสดงบนเบราว์เซอร์ จากนั้นตารางจะถูกสร้างขึ้นและการอ่านเซ็นเซอร์จะถูกกรอกลงในตารางนั้น เมื่อเต็มโต๊ะการเชื่อมต่อจะถูกปิด
โมฆะ loop () {ไคลเอนต์ WiFiClient = server.available (); // รับฟังไคลเอนต์ขาเข้า if (ไคลเอนต์) {// หากไคลเอนต์ใหม่เชื่อมต่อ Serial.println ("ไคลเอนต์ใหม่"); // พิมพ์ข้อความในพอร์ตอนุกรม String currentLine = ""; // สร้าง String เพื่อเก็บข้อมูลขาเข้าจากไคลเอนต์ในขณะที่ (client.connected ()) {// วนซ้ำในขณะที่ไคลเอนต์เชื่อมต่อ if (client.available ()) {// หากมีไบต์ที่จะอ่านจากไคลเอนต์ถ่าน c = client.read (); // อ่านไบต์แล้ว Serial.write (c); // พิมพ์ส่วนหัวของจอภาพอนุกรม + = c; ถ้า (c == '\ n') {// ถ้าไบต์เป็นอักขระขึ้นบรรทัดใหม่ // ถ้าบรรทัดปัจจุบันว่างคุณจะมีอักขระขึ้นบรรทัดใหม่สองตัวในแถว // นั่นคือจุดสิ้นสุดของคำขอ HTTP ไคลเอ็นต์ดังนั้นให้ส่งการตอบกลับ: if (currentLine.length () == 0) {// ส่วนหัว HTTP จะเริ่มต้นด้วยรหัสตอบกลับเสมอ (เช่น HTTP / 1.1 200 OK) // และ a ประเภทเนื้อหาเพื่อให้ไคลเอนต์ทราบว่ากำลังจะเกิดอะไรขึ้นจากนั้นบรรทัดว่าง: client.println ("HTTP / 1.1 200 OK"); client.println ("ประเภทเนื้อหา: text / html"); client.println ("การเชื่อมต่อ: ปิด"); client.println (); // แสดงหน้าเว็บ HTML client.println (""); client.println (""); client.println (""); // CSS เพื่อจัดรูปแบบตาราง client.println ("ESP32 พร้อม BME280
"); client.println (""); client.println (""); client.println (""); client.println (""); client.println (""); client.println (""); client.println ("
การวัด | VALUE |
---|---|
อุณหภูมิ เซลเซียส | "); client.println(bme.readTemperature()); client.println(" *C |
อุณหภูมิ ฟาเรนไฮต์ | "); client.println (1.8 * bme.readTemperature () + 32); client.println (" * F |
ความดัน | "); client.println(bme.readPressure() / 100.0F); client.println(" hPa |
ประมาณ. ระดับความสูง | "); client.println (bme.readAltitude (SEALEVELPRESSURE_HPA)); client.println (" ม. |
ความชื้น | "); client.println (bme.readHumidity ()); client.println ("% |
นี่เป็นขั้นตอนทั้งหมดของการสร้างสถานีตรวจอากาศโดยใช้ ESP32 ตอนนี้หลังจากรวบรวมส่วนประกอบฮาร์ดแวร์จากตลาดและเริ่มสร้างด้วยตัวคุณเอง โชคดี!