สารบัญ:

บันทึกข้อมูลและพล็อตกราฟออนไลน์โดยใช้ NodeMCU, MySQL, PHP และ Chartjs.org: 4 ขั้นตอน
บันทึกข้อมูลและพล็อตกราฟออนไลน์โดยใช้ NodeMCU, MySQL, PHP และ Chartjs.org: 4 ขั้นตอน

วีดีโอ: บันทึกข้อมูลและพล็อตกราฟออนไลน์โดยใช้ NodeMCU, MySQL, PHP และ Chartjs.org: 4 ขั้นตอน

วีดีโอ: บันทึกข้อมูลและพล็อตกราฟออนไลน์โดยใช้ NodeMCU, MySQL, PHP และ Chartjs.org: 4 ขั้นตอน
วีดีโอ: วิธีสร้างกราฟและแผนภูมิง่ายๆบนเว็บไซต์ 2024, พฤศจิกายน
Anonim
บันทึกข้อมูลและพล็อตกราฟออนไลน์โดยใช้ NodeMCU, MySQL, PHP และ Chartjs.org
บันทึกข้อมูลและพล็อตกราฟออนไลน์โดยใช้ NodeMCU, MySQL, PHP และ Chartjs.org
บันทึกข้อมูลและพล็อตกราฟออนไลน์โดยใช้ NodeMCU, MySQL, PHP และ Chartjs.org
บันทึกข้อมูลและพล็อตกราฟออนไลน์โดยใช้ NodeMCU, MySQL, PHP และ Chartjs.org

คำแนะนำนี้อธิบายวิธีที่เราสามารถใช้บอร์ด Node MCU เพื่อรวบรวมข้อมูลจากเซ็นเซอร์หลายตัว ส่งข้อมูลนี้ไปยังไฟล์ PHP ที่โฮสต์ ซึ่งจะเพิ่มข้อมูลลงในฐานข้อมูล MySQL ข้อมูลสามารถดูออนไลน์เป็นกราฟได้โดยใช้ chart.js

จำเป็นต้องมีความรู้พื้นฐานเกี่ยวกับ PHP และ MySQL สำหรับโครงการนี้ และคุณจะต้องเข้าถึงเว็บโฮสติ้งด้วยการตั้งค่าเหล่านี้จึงจะสามารถสร้างและดูกราฟของคุณเองได้ ฉันยังถือว่าคุณมีความรู้พื้นฐานเกี่ยวกับการใช้บอร์ด Node MCU และการอัปโหลดภาพร่าง (ฉันใช้ Arduino IDE สำหรับสิ่งนี้)

ขั้นตอนที่ 1: สร้างวงจร

การสร้างวงจร
การสร้างวงจร
การสร้างวงจร
การสร้างวงจร
การสร้างวงจร
การสร้างวงจร

เนื่องจาก Node MCU มีพินอะนาล็อกเพียงพินเดียว เราจะใช้มัลติเพล็กซ์เพื่อให้สามารถอ่านข้อมูลจากเซ็นเซอร์หลายตัวได้ (คำแนะนำจำนวนมากครอบคลุมแนวคิดนี้ในรายละเอียดมากขึ้น ดังนั้นฉันจะไม่พูดถึงที่นี่) ในตัวอย่างนี้ ฉันใช้เซ็นเซอร์สองตัว (สำหรับแสงและอุณหภูมิ) แต่คุณสามารถเปลี่ยนเป็นอะไรก็ได้ที่คุณต้องการ และเพิ่มเซ็นเซอร์เพิ่มเติมได้หากต้องการ ฉันใช้ตัวต้านทานที่ไวต่อแสง เทอร์มิสเตอร์ ไดโอดเรียงกระแสสองตัว ตัวต้านทาน 330 โอห์ม และตัวต้านทาน 10K และสายจัมเปอร์สองสามตัว แผนภาพ Fritzing ที่แนบมาแสดงให้เห็นว่าสิ่งเหล่านี้เชื่อมต่อกันอย่างไรบนเขียงหั่นขนม

ขั้นตอนที่ 2: แก้ไขและอัปโหลด Sketch ไปยัง Node MCU

ใช้ไฟล์.ino ที่แนบมานี้ คุณจะต้องแก้ไขสิ่งนี้ด้วยชื่อเครือข่าย WiFi และรหัสผ่านของคุณเอง เพื่อให้ Node MCU สามารถเชื่อมต่อกับเครือข่ายของคุณเองได้

ที่ด้านล่างของร่างนี้ บรรทัด 'delay(60000);' ให้การหน่วงเวลาเป็นนาทีระหว่างการอ่านเซ็นเซอร์ แต่สามารถปรับให้เหมาะกับความต้องการของคุณได้ ฉันขอแนะนำให้ปล่อยทิ้งไว้อย่างน้อย 10 วินาทีเพื่อให้สามารถเชื่อมต่อกับไฟล์ 'updater.php' ได้ในแต่ละครั้ง

คุณจะต้องแก้ไขพาธไปยังตำแหน่งที่คุณจะโฮสต์ไฟล์.php สองไฟล์ และไฟล์จาวาสคริปต์สองไฟล์ที่จำเป็น คุณสามารถดาวน์โหลดได้ในขั้นตอนถัดไป

ขั้นตอนที่ 3: ฐานข้อมูลและไฟล์เว็บ

สร้างฐานข้อมูล MySql ของคุณ สร้างตารางชื่อ 'temp_light' (คุณสามารถเปลี่ยนได้ แต่จะต้องแก้ไขไฟล์ php สองไฟล์เพื่อให้สอดคล้องกับการเปลี่ยนแปลงใดๆ ที่คุณทำ) ให้ตารางสี่เขตข้อมูล ฟิลด์การเพิ่มอัตโนมัติหลัก ฟิลด์จำนวนเต็มชื่อ 'temp' ฟิลด์จำนวนเต็มชื่อ 'light' และฟิลด์ชื่อ 'date_time' ซึ่งจะเป็นการประทับเวลาและค่าเริ่มต้น 'CURRENT_TIMESTAMP'

ตอนนี้ดาวน์โหลดไฟล์.zip ที่แนบมาแล้วแตกไฟล์ออก สิ่งนี้จะให้ไฟล์ php สองไฟล์และโฟลเดอร์ชื่อ 'scripts' ซึ่งมีไฟล์.js ที่ฉันได้รับจาก chartjs.org ไฟล์.js ทั้งสองไฟล์ไม่จำเป็นต้องแก้ไข และโฟลเดอร์ 'scripts' ควรโฮสต์อยู่ในตำแหน่งเดียวกับไฟล์ php สองไฟล์ของคุณ ไฟล์ php ทั้งสองไฟล์จะต้องแก้ไขด้วยชื่อ databse รหัสผ่านและโฮสต์ IP ของคุณเอง ที่อยู่.

ในไฟล์ index.php คุณจะเห็นบรรทัดที่ 50: $adjusted_temp=($temp*0.0623);

การคำนวณนี้คือการแปลงค่าที่อ่านได้สำหรับอุณหภูมิให้ใกล้ที่สุดเท่าที่ฉันจะได้องศาเซนติเกรด และได้มาจากการลองผิดลองถูก และเกือบจะแน่นอนว่าจะต้องมีการเปลี่ยนแปลงเพื่อให้เหมาะกับเซ็นเซอร์อุณหภูมิของคุณเอง

ตอนนี้โฮสต์ทั้งไฟล์ php และโฟลเดอร์ 'scripts' ที่มีไฟล์.js สองไฟล์รวมกันในไดเร็กทอรีเดียวกัน เรียกดูไดเร็กทอรีนั้นและคุณควรเห็นกราฟของคุณเองพร้อมข้อมูลที่ส่งจากบอร์ด Node MCU ของคุณ

ขั้นตอนที่ 4: ผลลัพธ์ที่เสร็จสิ้น

เดิมทีฉันทำโครงการนี้เมื่อประมาณสองปีที่แล้ว แต่ยังไม่เคยเขียนคำสั่งสอนมาจนถึงตอนนี้ คุณสามารถดูกราฟที่สร้างโดยการทดสอบของฉันได้ที่นี่:

หนามแหลมขนาดใหญ่ในกราฟคือจุดที่ดวงอาทิตย์ส่องผ่านหน้าต่างไปยังเซ็นเซอร์สองตัว และการลดลงอย่างช้าๆ อีกครั้งคือเมื่อดวงอาทิตย์ค่อยๆ ลับตาไป

แนะนำ: