สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
โลกกำลังอยู่ในภาวะระบาดของโคโรนาไวรัส และเช่นเดียวกับประเทศอื่นๆ อีกหลายประเทศ การปิดเมืองในอินเดียด้วย ดังนั้นฉันจึงมีแนวคิดในการสร้างจอแสดงผล IoT ที่จะให้การอัปเดตสถิติ Corona ของประเทศแบบเรียลไทม์ ฉันใช้ API ที่ให้ข้อมูลของอินเดีย แต่คุณสามารถใช้ API ใดก็ได้โดยมีการเปลี่ยนแปลงโค้ดเล็กน้อย
ขั้นตอนที่ 1: สิ่งที่จำเป็น
นี่คือสิ่งที่คุณจะต้องทำเพื่อแสดงผล IoT:
- NodeMCU (ESP8266)
- โมดูล LCD 16x2 (I2C)
- เขียงหั่นขนม (ไม่จำเป็น)
- บางสาย/จัมเปอร์
- สาย USB
ขั้นตอนที่ 2: การเชื่อมต่อ
การเชื่อมต่อนั้นค่อนข้างง่าย มีเพียง 4 สายเชื่อมต่อ คุณสามารถใช้เขียงหั่นขนมเพื่อวาง esp8266 ลงในนั้นแล้วเชื่อมต่อกับโมดูล LCD หรือคุณสามารถใช้สายจัมเปอร์ตัวเมียกับตัวเมียโดยตรงเพื่อเชื่อมต่อ
การเชื่อมต่อคือ (ESP-> LCD):
- VIN -> VCC (สำหรับ 5V)
- GND -> GND
- D2 -> SDA
- D1 -> SCL
ตอนนี้เพียงเชื่อมต่อ esp8266 ด้วยสาย USB เข้ากับพีซี ตอนนี้เราแค่ต้องอัปโหลดโค้ด
ขั้นตอนที่ 3: การเข้ารหัส
นี่คือส่วนที่สำคัญที่สุด หลายท่านคงมีคำถามในใจว่าวิธีนี้ทำงานอย่างไร?
ดังนั้น ก่อนอื่นจะเชื่อมต่อกับ wifi แล้วเชื่อมต่อกับ API เพื่อรวบรวมข้อมูล JSON จากนั้นจะถอดรหัสข้อมูล JSON และเก็บค่าเหล่านั้นไว้ในตัวแปร จากนั้น LCD จะแสดงค่าและการดำเนินการนี้จะดำเนินต่อไปในลูป
API ที่ฉันใช้คือ https://coronago.xyz/api/data.json ซึ่งรับข้อมูลจาก https://www.covid19india.org/ ให้ข้อมูลสำหรับอินเดียเท่านั้น แต่มี API มากมายสำหรับประเทศอื่นๆ คุณสามารถใช้ API ใดก็ได้ แต่ต้องแน่ใจว่า HTTP สามารถเข้าถึงได้
ขั้นแรก คุณต้องติดตั้งการสนับสนุนบอร์ด ESP8266 สำหรับ Arduino IDE ทำตามบทช่วยสอนนี้
สิ่งที่สองที่ต้องทำคือติดตั้ง Libraries ที่จำเป็นทั้งหมด คุณสามารถติดตั้งได้อย่างง่ายดายจาก Arduino Library Manager
จากนั้นเปิดรหัสและเปลี่ยนข้อมูลรับรอง wifi และอัปโหลดรหัส
รหัสอยู่ที่นี่ในที่เก็บ GitHub ของฉัน -
ขั้นตอนที่ 4: คำอธิบายโค้ดและการใช้ API อื่นๆ
รหัสค่อนข้างง่าย
ในส่วนการตั้งค่าเป็นโมฆะ จะเริ่มต้นโมดูล LCD และแสดงข้อความจ้องเขม็ง จากนั้นจะเชื่อมต่อกับเครือข่าย wifi
ในส่วนลูป จะดึงข้อมูล JSON จาก API และถอดรหัสที่เก็บโฆษณาในตัวแปร จากนั้นจะแสดงข้อมูลเหล่านั้นในมอนิเตอร์แบบอนุกรมและ LCD
สำหรับการใช้ API อื่น คุณต้องเปลี่ยนที่อยู่ในบรรทัดนี้ของรหัส
http.begin("https://coronago.xyz/api/data.json"); //API
อีกสิ่งหนึ่งที่ API ต้องทำงานกับการเชื่อมต่อ HTTP การเชื่อมต่อ HTTPS จะไม่ทำงานในรหัสนี้ และคุณจะได้รับข้อผิดพลาด -1
API ส่งคืนข้อมูล JSON แบบนี้
ตอนนี้โค้ดถัดไปนี้เพิ่งถอดรหัส JSON และเก็บค่าไว้ในตัวแปร ซึ่งทั้งหมดขึ้นอยู่กับข้อมูล API และ JSON ที่ส่งคืน แต่การเปลี่ยนแปลงนั้นทำได้ง่าย สำหรับข้อมูลเพิ่มเติม คุณสามารถตรวจสอบบทแนะนำนี้ได้
StaticJsonBuffer JSONBuffer; //พูลหน่วยความจำ JsonObject& parsed = JSONBuffer.parseObject (เพย์โหลด); //แยกวิเคราะห์ข้อความยืนยัน = parsed["confirmed"]; กู้คืน = แยกวิเคราะห์["กู้คืน"]; ความตาย = แยกวิเคราะห์["ความตาย"]; current_active = แยกวิเคราะห์ ["active"];
หลังจากนั้นรหัสจะแสดงตัวแปรในมอนิเตอร์แบบอนุกรมและใน LCD
Serial.print("ยืนยัน: "); Serial.println (ยืนยัน); Serial.print("กู้คืน: "); Serial.println (กู้คืน); Serial.print("currenty_active: "); Serial.println (current_active); Serial.print("เสียชีวิต: "); Serial.println (เสียชีวิต); if(httpCode==200){ //แสดงข้อมูลใน lcd lcd.clear(); lcd.setCursor(0, 0); lcd.print("ยืนยัน: "); lcd.print (ยืนยัน); lcd.setCursor(0, 1); lcd.print("เสียชีวิต: "); lcd.print (เสียชีวิต); ล่าช้า (2500); lcd.clear(); lcd.setCursor(0, 0); lcd.print("ใช้งานอยู่: "); lcd.print(current_active); lcd.setCursor(0, 1); lcd.print("กู้คืนแล้ว: "); lcd.print (กู้คืน); ล่าช้า (2500);
}
ขั้นตอนที่ 5: บทสรุป
นี่เป็นโครงการที่ยอดเยี่ยมในการติดตามสถิติตลอดเวลา และคุณสามารถสร้างมันขึ้นมาเพื่อฆ่าเวลาในสถานการณ์ล็อกดาวน์นี้ได้
หากคุณต้องการความช่วยเหลือใด ๆ คุณสามารถถามฉันผ่านความคิดเห็นหรือคุณสามารถเปิดปัญหาใน Github. ของฉัน
github.com/Soumojit28/covid19-iot-display สำหรับปัญหาที่เกี่ยวข้องกับรหัส
ขอขอบคุณ.