我想将传感器数据发送到数据库。 我有一个问题,我的数据库无法从传感器中获取数据。 我正在使用Nodemcu ESP8266微控制器和DHT11传感器。 我没有任何错误。所以,我不知道为什么它不起作用。 您能帮我检查一下我的编码吗,为什么传感器数据没有插入XAMPP数据库中?
dht11.ino
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266HTTPClient.h>
#include "DHT.h"
#define DHTPIN D2
#define DHTTYPE DHT11
DHT dht (DHTPIN, DHTTYPE);
const char* ssid = "ice-cream"; // Your wifi Name
const char* password = "15479313249"; // Your wifi Password
const char *host = "192.168.0.0";
void setup() {
delay(1000);
pinMode(BUILTIN_LED, OUTPUT);
digitalWrite(BUILTIN_LED, HIGH); // Initialize the Led_OnBoard pin as an output
Serial.begin(115200);
WiFi.mode(WIFI_OFF); //Prevents reconnection issue (taking too long to connect)
delay(1000);
WiFi.mode(WIFI_STA); //This line hides the viewing of ESP as wifi hotspot
WiFi.begin(ssid, password); //Connect to your WiFi router
Serial.println("");
Serial.print("Connecting");
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
digitalWrite(BUILTIN_LED, LOW);
delay(250);
Serial.print(".");
digitalWrite(BUILTIN_LED, HIGH);
delay(250);
}
digitalWrite(BUILTIN_LED, HIGH);
//If connection successful show IP address in serial monitor
Serial.println("");
Serial.println("Connected to Network/SSID");
Serial.print("IP address: ");
Serial.println(WiFi.localIP()); //IP address assigned to your ESP
}
void loop() {
HTTPClient http; //Declare object of class HTTPClient
float h = dht.readHumidity();
float t = dht.readTemperature();
String humid, temp;
humid = String (h);
temp = String (t);
http.begin("http://localhost/Nodemcu_db_record_view/InsertDB.php");
int httpCode_1 = http.POST(humid);
int httpCode_2 = http.POST(temp);
String payload = http.getString(); //Get the response payload
Serial.println(httpCode_1);
Serial.println(httpCode_2);
Serial.println(payload); //Print request response payload
Serial.println("Humidity=" + humid);
Serial.println("temperature=" + temp);
http.end(); //Close connection
delay(4000);
digitalWrite(BUILTIN_LED, LOW);
delay(6000);
digitalWrite(BUILTIN_LED, HIGH);
}
InsertDB.php
<?php
//Connect to database
$servername = "localhost";
$username = "root";
$password = "";
// Create connection
$conn = mysqli_connect($hostname, $username, $password)or die("Could not connect");
$db = mysqli_select_db( $conn,"temphumidnew")or die("Could not select database");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
//Get current date and time
date_default_timezone_set('Asia/Malaysia');
$date= date("Y-m-d");
$time = date("H:i:s");
$humid = $_POST['humid'];
$temp = $_POST['temp'];
$sql = "INSERT INTO dht11 (humidity, temperature, time, date) VALUES ('$humid', '$temp', '$time', '$date')"; //nodemcu_ldr_table = Youre_table_name
$result = mysqli_query( $conn,$sql) or die("Query failed");
if ($result)
echo " OK";
else
echo "Problem occured !";
mysqli_close($conn);
?>