การเก็บข้อมูลจาก Arduino ลงใน ฐานข้อมูล Database

IOT - Internet of things
ไอโอที (IoT) หมายถึงเครือข่ายของวัตถุ อุปกรณ์ พาหนะ สิ่งปลูกสร้าง และสิ่งของอื่นๆ ที่มีวงจรอิเล็กทรอนิกส์ ซอฟต์แวร์ เซ็นเซอร์ และการเชื่อมต่อกับเครือข่าย ฝังตัวอยู่ และทำให้วัตถุเหล่านั้นสามารถเก็บบันทึกและแลกเปลี่ยนข้อมูลได้

Moderator: mindphp, ผู้ดูแลกระดาน

pataponnew
PHP Hero Member
PHP Hero Member
โพสต์: 152
ลงทะเบียนเมื่อ: 03/05/2021 10:18 am

การเก็บข้อมูลจาก Arduino ลงใน ฐานข้อมูล Database

โพสต์ที่ยังไม่ได้อ่าน โดย pataponnew »

Arduino นั้นสามารถประยุกต์ใช้ได้หลากหลายมาก ในระบบIOT โดยวันนี้ผมจะมาเเนะนำวิธีการเก็บข้อมูลจาก Arduino ลงในฐานข้อมูล Database ครับ
โดยเราจะใช้ภาษาPHPในการรับข้อมูลข้อมูลเเละส่งเข้า Database ครับ

โดยผมจะยกตัวอย่างกับโปรเจคที่เคยทำนะครับ
ขั้นเเรกผมจะใช้PHPในการเชื่อมต่อกับฐานข้อมูลเพื่อเก็บค่าที่รับมาจากArduinoครับ

โค้ด: เลือกทั้งหมด

<?php
$temp = $_GET['temp'];

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "tutor";

// Create connection
$conn = new mysqli($servername, $username,$password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
$val = $_GET['temp'];
$sql = "INSERT INTO esp8266(temp) VALUES ($val);";

if ($conn->query($sql) === TRUE) {
    echo "save OK";
} else {
    echo "Error:" . $sql . "<br>" . $conn->error;
}

$conn->close();
?>
จากโค้ดข้างต้นจะเป็นการใช้PHPในการเชื่อมต่อจากฐานข้อมูลนะครับเเละรับค่าจากArduinoเพื่อส่งข้อมูลไปเก็บไว้ในฐานข้อมูลครับ

ทีนี้จะมาในส่วนของArduinoกันนะครับ
เมื่อทำการเชื่อมต่อWifiให้Arduinoเเล้วโค้ดข้างล่างจะเป็นการใช้ฟังก์ชั่นใน HTTPClient ในการส่งข้อมูลโดยจะใช้ methol Get ของphpในการฝากข้อมูลไปกับ Url
เเละใช้PHPในการรับข้อมูลและบันทึกลงในDatabase

โค้ด: เลือกทั้งหมด

 HTTPClient http;
    float f_data = Com.parseFloat();
    if (Com.read() == '\n')
    {
      delay(1000);
      Serial.println(f_data);
    }
  String url = "http://172.20.10.6/nodemcu/esp8266mysql/add.php?temp="+String(f_data);
  Serial.println(url);
  http.begin(url); //HTTP

  int httpCode = http.GET();
  if (httpCode > 0) {
  Serial.printf("[HTTP] GET... code: %d\n", httpCode);
  if (httpCode == HTTP_CODE_OK) {
  String payload = http.getString();
  Serial.println(payload);
  }
  } else {
  Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
  }
  http.end();
  }
จะสามารถเก็บข้อมูลลงในฐานข้อมูลได้ดังนี้ครับ
ค่าที่เก็บบันทึกลงในDatabase
ค่าที่เก็บบันทึกลงในDatabase
Picture1.jpg (31.61 KiB) Viewed 2791 times
โดยผมได้นำมาประยุกต์ใช้กับโปรเจคIOTการทำเครื่องเเสกนอุณหภูมิอัติโนมัติครับเพื่อเก็บค่าข้อมูลลงในฐานข้อมูลDataBase เพื่อเก็บค่า อุณหภูมิที่ตรวจวัดได้โดยบอกวันเวลาเเละลำดับที่ทำการเเสกนอุณหภูมิ เพื่อใช้ฐานข้อมูลนี้ในการประยุกต์ใช้กับโปรเจคอื่นๆ อย่างเช่น การเเสดงประวัติการตรวจเช็คอุณหภูมิทางเว็ปไซต์ด้วยภาษาPHPครับ
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 34