|
|
|
ใครเก่งภาษา C++ ใน Arduino IDE กับ PHP , SQL ช่วยหน่อยครับพอดีผมได้ลองทำเครื่องวัดฝุ่น PM2.5 ใช้เอง ตามบทความบนเว็บบทความหนึ่ง แต่ติดปัญหา!! |
|
|
|
|
|
|
|
เริ่มจากผมได้ทำตามบทความการทำเครื่องวัดฝุ่น PM2.5 ใช้เองจากเว็บไซตหนึ่ง แต่ติดตรงส่งค่าฝั่ง code Arduino IDE ไป PHP เพื่อบันทึกค่าลง SQL ไม่ได้ ไม่รู้ว่ามันมีบัคหรือผิดอะไรตรงไหนไหม
จากเว็บนี้ครับ www.medium.com/@modcumram/การทำเครื่องวัดฝุ่น-pm2-5-15321bcf5e08
Code Arduino IDE
#include "PMS.h"
#include <ESP8266WiFi.h>
#include "ThingSpeak.h"
#include <ESP8266HTTPClient.h>
#include <pm25senses.h>
PMS pms(Serial);
PMS::DATA data;
unsigned long myChannelNumber = 970998; // thingspeak channel id จาก thingspeak
const char * myWriteAPIKey = "3M85RLHM9KE3GGCA"; // ได้มาจาก thingspeak
String pm25_;
String pm10_;
String response;
pm25senses mydevice;
const char* ssid = "admin"; //Set Wifi SSID
const char* password = "rootroot";//Set Wifi password
WiFiClient client;
void setup()
{
Serial.begin(9600);
pms.passiveMode(); // Switch to passive mode
WiFi.begin(ssid, password);
//Set WiFi mode
//You can choose between WIFI_AP, WIFI_STA, WIFI_AP_STA or WIFI_OFF
WiFi.mode(WIFI_STA);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
ThingSpeak.begin(client);
}
void loop()
{
pms.wakeUp();
delay(30000);
pms.requestRead();
Serial.println("Wait max. 1 second for read…");
if (pms.readUntil(data))
{
Serial.print("PM 1.0 (ug/m3): ");
Serial.println(data.PM_AE_UG_1_0);
Serial.print("PM 2.5 (ug/m3): ");
Serial.println(data.PM_AE_UG_2_5);
Serial.print("PM 10.0 (ug/m3): ");
Serial.println(data.PM_AE_UG_10_0);
}
else
{
Serial.println("No data.");
}
ThingSpeak.writeField(myChannelNumber, 1,data.PM_AE_UG_2_5, myWriteAPIKey);
delay(10000);
ThingSpeak.writeField(myChannelNumber, 2,data.PM_AE_UG_10_0, myWriteAPIKey);
pm25_ = String(data.PM_AE_UG_2_5*0.66); //จากการเทียบค่า Sensirion
pm10_ = String(data.PM_AE_UG_10_0*0.66); //จากการเทียบค่า Sensirion
HTTPClient http;
http.begin("http://test-pm25.epizy.com/pm25.php");
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
int httpCode = http.POST("pm25="+ pm25_+"&pm10=" + pm10_);
//Serial.println(httpCode);
if(httpCode == HTTP_CODE_OK)
{
Serial.println("Insert to database success !!!");
}
else
{
Serial.println("Error in HTTP request");
}
http.end();
delay(300000);
}
pm25.php
<?php
date_default_timezone_set('Asia/Bangkok');
$servername = "sql112.epizy.com";
$username = "epiz_25085212";
$password = "qsnyBAwvussC0id";
$dbname = "epiz_25085212_pm25";
$now = new DateTime();
$pm25 = $_REQUEST['pm25'];
$pm10 = $_REQUEST['pm10'];
$conn = mysql_connect($servername, $username, $password); //ต้องใส่$dbnamด้วยไหม? แต่ลองแล้วไม่ได้!!
if (!$conn)
{
die('Could not connect: ' . mysql_error());
}
$con_result = mysql_select_db($dbname, $conn);
if(!$con_result)
{
die('Could not connect to specific database: ' . mysql_error());
}
$datenow = $now->format("Y-m-d H:i:s");
$hvalue = $value;
if(!empty($pm25) && !empty($pm10)){
$sql ="insert into pm25(id,pm25,pm10,date) values ( null,$pm25,$pm10,'$datenow')";
//echo $sql;
$result = mysql_query($sql);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
echo "<h1 align=center>THE DATA HAS BEEN SENT!!</h1>";
mysql_close($conn);
} else{
//
}
?>
Tag : PHP, MySQL, C
|
|
|
|
|
|
Date :
2020-03-22 20:29:57 |
By :
nuithestd |
View :
621 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"แต่ติดตรงส่งค่าฝั่ง code Arduino IDE ไป PHP เพื่อบันทึกค่าลง SQL ไม่ได้"
ลองเช็คทีละขั้นตอนว่า ส่งไม่ได้ หรือ บันทึกไม่ได้
ปัญหาอยู่ที่โค้ดหรือ server
การ connect ราบรื่นหรือไม่
มีข้อความ error/warning แจ้งตอนไหน คำสั่งใด ว่าอะไร (ลอง debug ดูทีละส่วน)
|
|
|
|
|
Date :
2020-03-23 12:32:23 |
By :
PhrayaDev |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|