NodeMCU PHP
NodeMCU PHP
Scrip diatas inputkan ke dalam SQL seperti pada gambar lalu klik tombol
kirik
Hasil
Pembuatan API
Selanjutnya membuat program PHP API. Untuk lokasi file yang akan
dibuat dapat menyesuaikan dan bauat folder arducoding_tutorial di
htdocs
Selanjutnya
Dimulai dari file database.php (create dalam notepad+++)simpan di
directory C:\xampp\htdocs\arducoding_tutorial\nodemcu_log\webapi\
config
Scriptnya :
<?php
class Database {
private $host = "localhost";
private $database_name = "nodemcu_log";
private $username = "root";
private $password = "";
public $conn;
// Connection
private $conn;
// Table
private $db_table = "station1";
// Columns
public $id;
public $suhu;
public $kelembaban;
public $created_at;
// Db connection
public function __construct($db){
$this->conn = $db;
}
// CREATE
public function createLogData(){
$sqlQuery = "INSERT INTO
". $this->db_table ."
SET
suhu = :suhu,
kelembaban = :kelembaban";
$stmt = $this->conn->prepare($sqlQuery);
// sanitize
$this->suhu=htmlspecialchars(strip_tags($this->suhu));
Next
Terakhir buat file create.php di directory
C:\xampp\htdocs\arducoding_tutorial\nodemcu_log\webapi\api
<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
include_once '../config/database.php';
include_once '../class/nodemcu_log.php';
if($item->createLogData()){
echo 'Data created successfully.';
} else{
echo 'Data could not be created.';
}
Next
• service rest API udah siap di gunakan. Untuk menyimpan data ke
database mysql, kita dapat menggunakan metode POST atau GET,
tinggal disesuaikan dengan kebutuhan. Untuk format requestnya
sebagai berikut (pada program nodemcu ganti localhost dengan ip
address pc kamu):
GET - http://localhost/arducoding_tutorial/nodemcu_log/webapi/api/create.php?
suhu=20.82&kelembaban=88.99
POST http://localhost/arducoding_tutorial/nodemcu_log/webapi/api/create.php
Bisa langsung di ketikan dalam addres pada website, perhatikan perubahan pada tabel di database
tersebut
Kita dapat juga melakukan test apakah API
dapat berfungsi melalui aplikasi postman
Percobaan dengan Node MCu
Add Library
Menyimpan data nodeMCU ke database MySQL dengan
metode GET
// NodeMCU esp8266 save data to mysql database with GET methode
// www.arducoding.com
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include "DHT.h"
#define DHTPIN 4
void setup() {
Serial.begin(9600);
//Serial.println(F("DHTxx test!"));
dht.begin();
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
int i=0;
while(WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(1000);
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
Serial.println();
delay(2000);
}
void loop() {
double kelembaban = dht.readHumidity();
// Read temperature as Celsius (the default)
double suhu = dht.readTemperature();
// Check if any reads failed and exit early (to try again).
if (isnan(kelembaban) || isnan(suhu)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
Serial.print(F("Temperature:"));
Serial.print(suhu);
Serial.print(F("°C Humidity:"));
Serial.print(kelembaban);
Serial.println(F("%"));
if ((WiFi.status() == WL_CONNECTED)) {
WiFiClient client;
HTTPClient http;
String address;
//equate with your computer's IP address and your directory application
// C:\xampp\htdocs\arducoding_tutorial\nodemcu_log\webapi\api\create.php
address ="http://192.168.0.8/arducoding_tutorial/nodemcu_log/webapi/api/create.php?suhu=";
address += String(suhu);
address += "&kelembaban=";
address += String(kelembaban) ;
#define DHTPIN 4
void setup() {
Serial.begin(9600);
//Serial.println(F("DHTxx test!"));
dht.begin();
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
int i=0;
while(WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(1000);
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
Serial.println();
delay(2000);
}
void loop() {
double kelembaban = dht.readHumidity();
// Read temperature as Celsius (the default)
double suhu = dht.readTemperature();
// Check if any reads failed and exit early (to try again).
if (isnan(kelembaban) || isnan(suhu)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
Serial.print(F("Temperature:"));
Serial.print(suhu);
Serial.print(F("°C Humidity:"));
Serial.print(kelembaban);
Serial.println(F("%"));
if ((WiFi.status() == WL_CONNECTED)) {
WiFiClient client;
HTTPClient http;
StaticJsonDocument<200> doc;
String url, nodemcuData;
doc["suhu"] = String(suhu);
doc["kelembaban"] = String(kelembaban);
http.begin(client,url);
http.addHeader("Content-Type", "application/json");
serializeJson(doc, nodemcuData);
Serial.print("POST data >> ");
Serial.println(nodemcuData);