จากบทความครั้งที่แล้ว ที่ได้เขียนบทความเกี่ยวกับการส่งค่าจาก Arduino Uno R3 + W5100 ส่งข้อมูลไปเก็บลง Database น้องๆได้เรียกร้องให้เขียนบทความโดยใช้ Nodemcu Esp8266 บ้าง ก็เลยเขียนบทความนี้ขึ้นมาให้น้องๆได้นำไปพัฒนาต่อยอดในอนาคตครับ
จริงๆแล้วเราจะใช้หลักการเดียวกันกับ บทความเก่า โดยใช้หลักการของ Methol get ในการส่งข้อมูลไปยัง Database โดยจะฝาก ตัวแปรที่เราต้องการจะส่ง ไปกับ URL ยกตัวอย่างเช่น
http://www.domain.com/index.php?temp=25หรือในรูปแบบ iphttp://192.168.1.1/index.php?temp=25ค่า 25 คือ ตัวแปรที่เราต้องการจะฝากไปยัง URL เพื่อส่งต่อไปเก็บลงใน 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)
/*
บทความ พัฒนาระบบ Nodemcu ส่งค่าไปเก็บยัง database
*/#include <ESP8266WiFi.h>
const char* ssid = "SSID Wifi";
const char* password = "Pass Wifi";const char* host = "data.sparkfun.com"; //ใส่ IP หรือ Host ของเครื่อง Database ก็ได้
const char* variable = "25"; //ตัวแปรที่ต้องการจะส่งvoid setup() {
Serial.begin(9600);
delay(10);
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}int value = 0;
void loop() {
delay(5000);
++value;Serial.print("connecting to ");
Serial.println(host);WiFiClient client;
const int httpPort = 80;if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
String url = "/temp/temp.php?temp="; //ชุด Directory ที่เก็บไฟล์ และตัวแปรที่ต้องการจะฝาก
url += variable; //ส่งค่าตัวแปรSerial.print("Requesting URL: ");
Serial.println(url);client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
unsigned long timeout = millis();
while (client.available() == 0) {
if (millis() - timeout > 5000) {
Serial.println(">>> Client Timeout !");
client.stop();
return;
}
}// Read all the lines of the reply from server and print them to Serial
while(client.available()){
String line = client.readStringUntil('\r');
Serial.print(line);
}Serial.println();
Serial.println("closing connection");
}
สำหรับลูกค้าของร้าน 9Arduino มี Source Code อธิบายการทำงานต่างๆ
พร้อมกับคำแนะนำขั้นต้น เพื่อให้สามารถนำไปพัฒนาต่อได้เลย
สามารถติดต่อรับไฟล์ได้ที่ Line : 9Arduino
Email : [email protected]
หน้าที่เข้าชม | 4,510,768 ครั้ง |
ผู้ชมทั้งหมด | 2,466,540 ครั้ง |
ร้านค้าอัพเดท | 5 ก.ย. 2568 |