การเก็บข้อมูลจาก Arduino ลงใน ฐานข้อมูล Database Mysql (Arduino to database)
การเก็บข้อมูลจาก Arduino ไปเก็บลงใน Database Mysql (Arduino to database)
หลักการทำงานเราจะใช้ Methol Get ของ php ในการฝาก ข้อมูลไปกับ Url ยกตัวอย่างเช่น
http://www.domain.com/index.php?temp=25หรือในรูปแบบ ip
http://192.168.1.1/index.php?temp=25
จากนั้นให้ PHP ในการรับข้อมูลและบันทึกลงใน Database
ตัวอย่างไฟล์
Sql Blackup Database Mysql
CREATE TABLE `temp` (
`id` int(11) NOT NULL auto_increment,
`temp` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
INSERT INTO `temp` VALUES (1, '99.2');
Config.php (ใช้ระบุข้อมูลการเชื่อมต่อเข้า Database)
$host = "localhost";
$user = "root";
$pass = "123456";
$db = "send";
mysql_connect($host, $user, $pass) or die("Could not connect to database");
mysql_select_db($db) or die("Could not connect to database");
mysql_query("SET NAMES utf8")
?>
temp.php (ใช้รับค่าจาก Arduino และบันทึกลงใน Mysql)
require_once("config.php");
$temp = $_GET['Temp'];
$sql = "UPDATE temp SET temp = '$temp' WHERE id =1";
$sql_query = mysql_query($sql);
if ($sql_query) {
echo "Complete";
} else {
echo "Error";
}
?>
Code Arduino (เลือกใช้ Arduino Uno R3 + W5100)
//ที่มา www.9arduino.com#include
#include
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress server(192,168,0,101); // ใช้ในกรณีเป็น IP
//char server[] = "www.google.com"; // ใช้ในกรณีเป็น Domain
IPAddress ip(192, 168, 0, 177); // IP ของ Arduino
EthernetClient client;
void setup() {
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
Ethernet.begin(mac, ip);
}
delay(1000);
Serial.println("connecting...");
}
void loop()
{
if (client.connect(server, 80)) {
Serial.println("connected");
client.println("GET /temp/temp.php?temp=25 HTTP/1.1");
client.println("Host: www.google.com");
client.println("Connection: close");
client.println();
}
else {
Serial.println("connection failed");
}
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น