Muka menggunakan bluehost instal ekstensi php

EasyApache 4 (EA4) merupakan software yg berada pada Web Host Manager (WHM) yg membuat pengelolaan PHP Extension lebih mudah. Nah, kali ini gue mau ngasih tau cara, gimana sih cara install PHP Extension dengan EasyApache 4

Sebagai contoh cara install PHP Extension dengan EasyApache 4 ini, gue bakal nginstall extension fileinfo. Dan berikut step by step cara install nya

Instal FileInfo Ekstensi PHP dari EasyApache 4 dari WHM

1. Login ke WHM VPS fear-fear seperti biasanya. Bisa menggunakan IP VPS nya ataupun menggunakan domain yg terinstall di VPS nya

Muka menggunakan bluehost instal ekstensi php
Halaman Masuk WHM

2. Jika sudah login, pilih lah EasyApache 4 di deretan menu software. Fear-fear bisa menuju Easy Apache 4 ini dengan 2 face,


a. Menggunakan Side Menu WHM dan menggunakan fitur pencarian dengan mengetikkan "Easy". Cara ini lebih cepat dan mudah dibandingkan face b

Muka menggunakan bluehost instal ekstensi php


b. Cara kedua adalah pada halaman dashboard WHM, pilih Icon Software, lalu pada halaman software lalu pilih EasyApache 4 dengan icon bulu seperti dibawah ini


Muka menggunakan bluehost instal ekstensi php
Menu Perangkat Lunak Dasbor




Muka menggunakan bluehost instal ekstensi php
Menu EasyApache 4 di Software Dashboard


3. Nah, setelah melewati tahap memasuki EasyApache 4, maka kita akan menuju muka penginstalan PHP Extensionnya. Pertama-tama pada EasyApache 4 tombol pilihan disesuaikan pada baris Paket yang Saat Ini Dipasang. Karena baris ini adalah baris profile Apache yang sedang tersetting di WebServer


Muka menggunakan bluehost instal ekstensi php


4. Setelah masuk ke menu customize packages tadi, kita akan dihadapkan pada menu EasyApache 4, karena sekarang kita fokus untuk menginstall PHP Extension, maka pilihlah menu PHP Extensions



Muka menggunakan bluehost instal ekstensi php


Pada baris disamping yg telah berubah menjadi halaman PHP Extensions, cari nama extension yg ingin kita install, semisal "fileinfo" lalu klik switch dikanannya agar berwarna biru dan dalam posisi install. Pastikan versi PHP yg kita ingin install ya, bila ragu install seluruh versi yg ada


Muka menggunakan bluehost instal ekstensi php


Muka menggunakan bluehost instal ekstensi php


Setelah PHP Extension yg kita inginkan sudah berada di posisi install, lalu pada menu kiri di halaman EasyApache 4 klik menu Review


Muka menggunakan bluehost instal ekstensi php


Setelah Review, maka dashboard EasyApache 4 akan mendapatkan info Review PHP Extension yg akan diinstall. Bila dirasa sudah sesuai dengan penginstalan yg diinginkan, klik Provision untuk memulai proses penginstalan PHP Extension

Dalam proyek ini Anda akan membangun klien ESP32 atau ESP8266 yang membuat permintaan HTTP POST ke skrip PHP untuk memasukkan data (pembacaan sensor) ke dalam database MySQL

Muka menggunakan bluehost instal ekstensi php

Anda juga akan memiliki halaman web yang menampilkan pembacaan sensor, stempel waktu, dan informasi lainnya dari database. Anda dapat memvisualisasikan data Anda dari mana saja di dunia dengan mengakses server Anda sendiri

Sebagai contoh, kami akan menggunakan sensor BME280 yang terhubung ke papan ESP. Anda dapat memodifikasi kode yang diberikan untuk mengirim bacaan dari sensor yang berbeda atau menggunakan beberapa papan

Untuk membuat proyek ini, Anda akan menggunakan teknologi ini

  • ESP32 atau ESP8266 diprogram dengan Arduino IDE
  • Server hosting dan nama domain
  • Script PHP untuk memasukkan data ke MySQL dan menampilkannya di halaman web
  • Database MySQL untuk menyimpan bacaan

1. Hosting Aplikasi PHP Anda dan Database MySQL

Tujuan proyek ini adalah memiliki nama domain dan akun hosting Anda sendiri yang memungkinkan Anda menyimpan pembacaan sensor dari ESP32 atau ESP8266. Anda dapat memvisualisasikan bacaan dari mana saja di dunia dengan mengakses domain server Anda sendiri. Berikut ikhtisar tingkat tinggi

Muka menggunakan bluehost instal ekstensi php

Saya merekomendasikan menggunakan salah satu layanan hosting berikut yang dapat menangani semua persyaratan proyek

  • Bluehost (ramah pengguna dengan cPanel). nama domain gratis saat Anda mendaftar untuk paket 3 tahun. Saya sarankan memilih opsi situs web tidak terbatas;
  • Lautan Digital . Server Linux yang Anda kelola melalui baris perintah. Saya hanya merekomendasikan opsi ini untuk pengguna tingkat lanjut.

Kedua layanan tersebut adalah yang saya gunakan dan saya rekomendasikan secara pribadi, tetapi Anda dapat menggunakan layanan hosting lainnya. Layanan hosting apa pun yang menawarkan PHP dan MySQL akan bekerja dengan tutorial ini. Jika Anda tidak memiliki akun hosting, saya sarankan untuk mendaftar ke Bluehost

Dapatkan Hosting dan Nama Domain dengan Bluehost »

Saat membeli akun hosting, Anda juga harus membeli nama domain. Inilah yang membuat proyek ini menarik. Anda dapat menggunakan nama domain Anda (http. //contoh-domain. com) dan lihat bacaan ESP Anda

Jika Anda menyukai proyek kami, Anda dapat mempertimbangkan untuk mendaftar ke salah satu layanan hosting yang direkomendasikan, karena Anda akan mendukung pekerjaan kami

catatan. Anda juga dapat menjalankan server LAMP (Linux, Apache, MySQL, PHP) di Raspberry Pi untuk mengakses data di jaringan lokal Anda. Namun, tujuan dari tutorial ini adalah untuk menerbitkan bacaan dalam nama domain Anda sendiri yang dapat Anda akses dari mana saja di dunia. Ini memungkinkan Anda mengakses pembacaan ESP dengan mudah tanpa bergantung pada platform IoT pihak ketiga

2. Mempersiapkan Database MySQL Anda

Setelah mendaftar akun hosting dan menyiapkan nama domain, Anda dapat masuk ke cPanel atau dasbor serupa. Setelah itu, ikuti langkah-langkah selanjutnya untuk membuat database, nama pengguna, kata sandi, dan tabel SQL Anda

Membuat database dan pengguna

1. Ketik "database" di bilah pencarian dan pilih "MySQL Database Wizard"

Muka menggunakan bluehost instal ekstensi php

2. Masukkan nama Database yang Anda inginkan. Dalam kasus saya, nama databasenya adalah esp_data . Kemudian, tekan tombol "Langkah Berikutnya".

Muka menggunakan bluehost instal ekstensi php

Catatan. nanti Anda harus menggunakan nama basis data dengan awalan yang diberikan host Anda (awalan basis data saya pada tangkapan layar di atas kabur). Saya akan menyebutnya sebagai example_esp_data mulai sekarang.

3. Ketikkan nama pengguna Database Anda dan atur kata sandi. Anda harus menyimpan semua detail tersebut, karena Anda akan memerlukannya nanti untuk membuat koneksi database dengan kode PHP Anda

Muka menggunakan bluehost instal ekstensi php

Itu dia. Basis data dan pengguna baru Anda berhasil dibuat. Sekarang, simpan semua detail Anda karena Anda akan membutuhkannya nanti

  • Nama basis data. contoh_esp_data
  • nama belakang. example_esp_board
  • Kata sandi. kata sandi Anda

Membuat tabel SQL

Setelah membuat database dan pengguna Anda, kembali ke dasbor cPanel dan cari “phpMyAdmin”

Muka menggunakan bluehost instal ekstensi php

Di sidebar kiri, pilih nama database Anda example_esp_data dan buka tab “SQL”.

Muka menggunakan bluehost instal ekstensi php

Penting. pastikan anda sudah membuka database example_esp_data . Kemudian, klik tab SQL. Jika Anda tidak mengikuti langkah-langkah yang tepat ini dan menjalankan kueri SQL, Anda mungkin membuat tabel di database yang salah.

Salin kueri SQL dalam cuplikan berikut

CREATE TABLE SensorData (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    sensor VARCHAR(30) NOT NULL,
    location VARCHAR(30) NOT NULL,
    value1 VARCHAR(10),
    value2 VARCHAR(10),
    value3 VARCHAR(10),
    reading_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)

Lihat kode mentah

Rekatkan di bidang kueri SQL (disorot dengan kotak merah) dan tekan tombol "Mulai" untuk membuat tabel Anda

Muka menggunakan bluehost instal ekstensi php

Setelah itu, Anda akan melihat tabel yang baru Anda buat bernama SensorData di example_esp_data database seperti yang ditunjukkan pada gambar di bawah ini.

Muka menggunakan bluehost instal ekstensi php

3. PHP Script HTTP POST – Masukkan Data ke dalam Database MySQL

Di bagian ini, kita akan membuat skrip PHP yang bertanggung jawab untuk menerima permintaan masuk dari ESP32 atau ESP8266 dan memasukkan data ke database MySQL.

Jika Anda menggunakan penyedia hosting dengan cPanel, Anda dapat mencari “File Manager”

Muka menggunakan bluehost instal ekstensi php

Kemudian, pilih opsi public_html dan tekan tombol “+ File” untuk membuat yang baru. php-file

Muka menggunakan bluehost instal ekstensi php

catatan. jika Anda mengikuti tutorial ini dan Anda tidak terbiasa dengan PHP atau MySQL, saya sarankan untuk membuat file yang tepat ini. Jika tidak, Anda harus memodifikasi sketsa ESP yang disediakan dengan jalur URL yang berbeda

Buat file baru di /public_html dengan nama dan ekstensi yang tepat ini. post-eng-data. php

Muka menggunakan bluehost instal ekstensi php

Edit file yang baru dibuat (post-eng-data. php) dan salin cuplikan berikut

________satu_______

Lihat kode mentah

Sebelum menyimpan file, Anda perlu mengubah $dbname , $username and $password dengan detail unik Anda.

// Your Database name
$dbname = "example_esp_data";
// Your Database user
$username = "example_esp_board";
// Your Database user password
$password = "YOUR_USER_PASSWORD";

Setelah menambahkan nama database, username dan password, simpan file tersebut dan lanjutkan dengan tutorial ini. Jika Anda mencoba mengakses nama domain Anda di jalur URL berikutnya, Anda akan melihat yang berikut ini

http://example-domain.com/post-esp-data.php

Muka menggunakan bluehost instal ekstensi php

4. Skrip PHP – Menampilkan Konten Basis Data

Buat file PHP lain di direktori /public_html yang akan menampilkan semua konten database di halaman web. Beri nama file baru Anda. esp-data. php

Muka menggunakan bluehost instal ekstensi php

Edit file yang baru dibuat (eng-data. php) dan salin kode berikut

<!DOCTYPE html>
<html><body>
<?php
/*
  Rui Santos
  Complete project details at https://RandomNerdTutorials.com/esp32-esp8266-mysql-database-php/
  
  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files.
  
  The above copyright notice and this permission notice shall be included in all
  copies or substantial portions of the Software.
*/

$servername = "localhost";

// REPLACE with your Database name
$dbname = "REPLACE_WITH_YOUR_DATABASE_NAME";
// REPLACE with Database user
$username = "REPLACE_WITH_YOUR_USERNAME";
// REPLACE with Database user password
$password = "REPLACE_WITH_YOUR_PASSWORD";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT id, sensor, location, value1, value2, value3, reading_time FROM SensorData ORDER BY id DESC";

echo '<table cellspacing="5" cellpadding="5">
      <tr> 
        <td>ID</td> 
        <td>Sensor</td> 
        <td>Location</td> 
        <td>Value 1</td> 
        <td>Value 2</td>
        <td>Value 3</td> 
        <td>Timestamp</td> 
      </tr>';
 
if ($result = $conn->query($sql)) {
    while ($row = $result->fetch_assoc()) {
        $row_id = $row["id"];
        $row_sensor = $row["sensor"];
        $row_location = $row["location"];
        $row_value1 = $row["value1"];
        $row_value2 = $row["value2"]; 
        $row_value3 = $row["value3"]; 
        $row_reading_time = $row["reading_time"];
        // Uncomment to set timezone to - 1 hour (you can change 1 to any number)
        //$row_reading_time = date("Y-m-d H:i:s", strtotime("$row_reading_time - 1 hours"));
      
        // Uncomment to set timezone to + 4 hours (you can change 4 to any number)
        //$row_reading_time = date("Y-m-d H:i:s", strtotime("$row_reading_time + 4 hours"));
      
        echo '<tr> 
                <td>' . $row_id . '</td> 
                <td>' . $row_sensor . '</td> 
                <td>' . $row_location . '</td> 
                <td>' . $row_value1 . '</td> 
                <td>' . $row_value2 . '</td>
                <td>' . $row_value3 . '</td> 
                <td>' . $row_reading_time . '</td> 
              </tr>';
    }
    $result->free();
}

$conn->close();
?> 
</table>
</body>
</html>
_

Lihat kode mentah

Setelah menambahkan $dbname , $username dan $password simpan file dan lanjutkan proyek ini.

// Your Database name
$dbname = "example_esp_data";
// Your Database user
$username = "example_esp_board";
// Your Database user password
$password = "YOUR_USER_PASSWORD";

Jika Anda mencoba mengakses nama domain Anda di jalur URL berikut, Anda akan melihat yang berikut ini

http://example-domain.com/esp-data.php
_

Muka menggunakan bluehost instal ekstensi php

Itu dia. Jika Anda melihat tabel kosong tercetak di browser Anda, itu berarti semuanya sudah siap. Di bagian berikutnya, Anda akan mempelajari cara memasukkan data dari ESP32 atau ESP8266 ke dalam database

5. Mempersiapkan ESP32 atau ESP8266 Anda

Proyek ini kompatibel dengan papan ESP32 dan ESP8266. Anda hanya perlu merakit sirkuit sederhana dan mengunggah sketsa yang disediakan untuk memasukkan suhu, kelembapan, tekanan, dan lainnya ke database Anda setiap 30 detik

Bagian yang Diperlukan

Untuk contoh ini kita akan mendapatkan pembacaan sensor dari sensor BME280. Berikut daftar bagian yang Anda butuhkan untuk membangun sirkuit untuk proyek ini

  • Papan ESP32 (baca papan dev ESP32 Terbaik)
  • Alternatif – papan ESP8266 (baca papan dev ESP8266 Terbaik)
  • sensor BME280
  • Kabel jumper
  • papan tempat memotong roti

Anda dapat menggunakan tautan sebelumnya atau langsung ke MakerAdvisor. com/tools untuk menemukan semua suku cadang untuk proyek Anda dengan harga terbaik

Muka menggunakan bluehost instal ekstensi php

skema

Modul sensor BME280 yang kami gunakan berkomunikasi melalui protokol komunikasi I2C, jadi Anda perlu menghubungkannya ke pin I2C ESP32 atau ESP8266

Pengkabelan BME280 ke ESP32

Pin ESP32 I2C adalah

  • GPIO 22. SCL (SCK)
  • GPIO 21. SDA (SDI)

Jadi, rakit sirkuit Anda seperti yang ditunjukkan pada diagram skematik berikutnya (baca Panduan lengkap untuk ESP32 dengan BME280)

Muka menggunakan bluehost instal ekstensi php

bacaan yang dianjurkan. Panduan Referensi Pinout ESP32

Pengkabelan BME280 ke ESP8266

Pin I2C ESP8266 adalah

  • GPIO 5 (D1). SCL (SCK)
  • GPIO4 (D2). SDA (SDI)

Rakit sirkuit Anda seperti pada diagram skematik berikutnya jika Anda menggunakan papan ESP8266 (baca Panduan lengkap untuk ESP8266 dengan BME280)

Muka menggunakan bluehost instal ekstensi php

bacaan yang dianjurkan. Panduan Referensi Pinout ESP8266

Kode ESP32/ESP8266

Kami akan memprogram ESP32/ESP8266 menggunakan Arduino IDE, jadi Anda harus menginstal add-on ESP32/ESP8266 di Arduino IDE Anda. Ikuti salah satu tutorial berikutnya tergantung pada papan yang Anda gunakan

  • Instal Board ESP32 di Arduino IDE – Anda juga perlu menginstal Library BME280 dan library Adafruit_Sensor
  • Instal Board ESP8266 di Arduino IDE – Anda juga perlu menginstal Library BME280 dan library Adafruit_Sensor

Setelah menginstal add-on board yang diperlukan, salin kode berikut ke Arduino IDE Anda, tetapi jangan mengunggahnya dulu. Anda perlu membuat beberapa perubahan untuk membuatnya bekerja untuk Anda

/*
  Rui Santos
  Complete project details at https://RandomNerdTutorials.com/esp32-esp8266-mysql-database-php/
  
  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files.
  
  The above copyright notice and this permission notice shall be included in all
  copies or substantial portions of the Software.

*/

#ifdef ESP32
  #include <WiFi.h>
  #include <HTTPClient.h>
#else
  #include <ESP8266WiFi.h>
  #include <ESP8266HTTPClient.h>
  #include <WiFiClient.h>
#endif

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

// Replace with your network credentials
const char* ssid     = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";

// REPLACE with your Domain name and URL path or IP address with path
const char* serverName = "http://example.com/post-esp-data.php";

// Keep this API Key value to be compatible with the PHP code provided in the project page. 
// If you change the apiKeyValue value, the PHP file /post-esp-data.php also needs to have the same key 
String apiKeyValue = "tPmAT5Ab3j7F9";

String sensorName = "BME280";
String sensorLocation = "Office";

/*#include <SPI.h>
#define BME_SCK 18
#define BME_MISO 19
#define BME_MOSI 23
#define BME_CS 5*/

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme;  // I2C
//Adafruit_BME280 bme(BME_CS);  // hardware SPI
//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK);  // software SPI

void setup() {
  Serial.begin(115200);
  
  WiFi.begin(ssid, password);
  Serial.println("Connecting");
  while(WiFi.status() != WL_CONNECTED) { 
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to WiFi network with IP Address: ");
  Serial.println(WiFi.localIP());

  // (you can also pass in a Wire library object like &Wire2)
  bool status = bme.begin(0x76);
  if (!status) {
    Serial.println("Could not find a valid BME280 sensor, check wiring or change I2C address!");
    while (1);
  }
}

void loop() {
  //Check WiFi connection status
  if(WiFi.status()== WL_CONNECTED){
    WiFiClient client;
    HTTPClient http;
    
    // Your Domain name with URL path or IP address with path
    http.begin(client, serverName);
    
    // Specify content-type header
    http.addHeader("Content-Type", "application/x-www-form-urlencoded");
    
    // Prepare your HTTP POST request data
    String httpRequestData = "api_key=" + apiKeyValue + "&sensor=" + sensorName
                          + "&location=" + sensorLocation + "&value1=" + String(bme.readTemperature())
                          + "&value2=" + String(bme.readHumidity()) + "&value3=" + String(bme.readPressure()/100.0F) + "";
    Serial.print("httpRequestData: ");
    Serial.println(httpRequestData);
    
    // You can comment the httpRequestData variable above
    // then, use the httpRequestData variable below (for testing purposes without the BME280 sensor)
    //String httpRequestData = "api_key=tPmAT5Ab3j7F9&sensor=BME280&location=Office&value1=24.75&value2=49.54&value3=1005.14";

    // Send HTTP POST request
    int httpResponseCode = http.POST(httpRequestData);
     
    // If you need an HTTP request with a content type: text/plain
    //http.addHeader("Content-Type", "text/plain");
    //int httpResponseCode = http.POST("Hello, World!");
    
    // If you need an HTTP request with a content type: application/json, use the following:
    //http.addHeader("Content-Type", "application/json");
    //int httpResponseCode = http.POST("{\"value1\":\"19\",\"value2\":\"67\",\"value3\":\"78\"}");
        
    if (httpResponseCode>0) {
      Serial.print("HTTP Response code: ");
      Serial.println(httpResponseCode);
    }
    else {
      Serial.print("Error code: ");
      Serial.println(httpResponseCode);
    }
    // Free resources
    http.end();
  }
  else {
    Serial.println("WiFi Disconnected");
  }
  //Send an HTTP POST request every 30 seconds
  delay(30000);  
}

Lihat kode mentah

Mengatur kredensial jaringan Anda

Anda perlu mengubah baris berikut dengan kredensial jaringan Anda. SSID dan kata sandi. Kode ini dikomentari dengan baik di mana Anda harus melakukan perubahan

// Replace with your network credentials
const char* ssid     = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";
_

Mengatur Namaserver Anda

Anda juga perlu mengetikkan nama domain Anda, sehingga ESP menerbitkan bacaan ke server Anda sendiri

const char* serverName = "http://example-domain.com/post-esp-data.php";
_

Sekarang, Anda dapat mengunggah kode ke papan Anda. Seharusnya langsung bekerja baik di papan ESP32 atau ESP8266. Jika Anda ingin mempelajari cara kerja kode, baca bagian selanjutnya

Bagaimana kode bekerja

Proyek ini sudah cukup panjang, jadi kami tidak akan membahas secara detail cara kerja kode, tetapi berikut ringkasan singkatnya

  • Impor semua perpustakaan untuk membuatnya berfungsi (itu akan mengimpor perpustakaan ESP32 atau ESP8266 berdasarkan papan yang dipilih di Arduino IDE Anda)
  • Tetapkan variabel yang mungkin ingin Anda ubah ( apiKeyValue , sensorName , sensorLocation )
  • apiKeyValue hanyalah string acak yang dapat Anda modifikasi. Ini digunakan untuk alasan keamanan, jadi hanya siapa saja yang mengetahui kunci API Anda yang dapat memublikasikan data ke database Anda
  • Inisialisasi komunikasi serial untuk keperluan debugging
  • Buat koneksi Wi-Fi dengan router Anda
  • Inisialisasi BME280 untuk mendapatkan bacaan

Kemudian, di loop() adalah tempat Anda membuat permintaan HTTP POST setiap 30 detik dengan pembacaan BME280 terbaru.

<?php

/*
  Rui Santos
  Complete project details at https://RandomNerdTutorials.com/esp32-esp8266-mysql-database-php/
  
  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files.
  
  The above copyright notice and this permission notice shall be included in all
  copies or substantial portions of the Software.
*/

$servername = "localhost";

// REPLACE with your Database name
$dbname = "REPLACE_WITH_YOUR_DATABASE_NAME";
// REPLACE with Database user
$username = "REPLACE_WITH_YOUR_USERNAME";
// REPLACE with Database user password
$password = "REPLACE_WITH_YOUR_PASSWORD";

// Keep this API Key value to be compatible with the ESP32 code provided in the project page. 
// If you change this value, the ESP32 sketch needs to match
$api_key_value = "tPmAT5Ab3j7F9";

$api_key= $sensor = $location = $value1 = $value2 = $value3 = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $api_key = test_input($_POST["api_key"]);
    if($api_key == $api_key_value) {
        $sensor = test_input($_POST["sensor"]);
        $location = test_input($_POST["location"]);
        $value1 = test_input($_POST["value1"]);
        $value2 = test_input($_POST["value2"]);
        $value3 = test_input($_POST["value3"]);
        
        // Create connection
        $conn = new mysqli($servername, $username, $password, $dbname);
        // Check connection
        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
        } 
        
        $sql = "INSERT INTO SensorData (sensor, location, value1, value2, value3)
        VALUES ('" . $sensor . "', '" . $location . "', '" . $value1 . "', '" . $value2 . "', '" . $value3 . "')";
        
        if ($conn->query($sql) === TRUE) {
            echo "New record created successfully";
        } 
        else {
            echo "Error: " . $sql . "<br>" . $conn->error;
        }
    
        $conn->close();
    }
    else {
        echo "Wrong API Key provided.";
    }

}
else {
    echo "No data posted with HTTP POST.";
}

function test_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}
_0

Anda dapat mengomentari variabel httpRequestData di atas yang menggabungkan semua pembacaan BME280 dan menggunakan httpRequestData< /a> variabel di bawah ini untuk tujuan pengujian.

<?php

/*
  Rui Santos
  Complete project details at https://RandomNerdTutorials.com/esp32-esp8266-mysql-database-php/
  
  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files.
  
  The above copyright notice and this permission notice shall be included in all
  copies or substantial portions of the Software.
*/

$servername = "localhost";

// REPLACE with your Database name
$dbname = "REPLACE_WITH_YOUR_DATABASE_NAME";
// REPLACE with Database user
$username = "REPLACE_WITH_YOUR_USERNAME";
// REPLACE with Database user password
$password = "REPLACE_WITH_YOUR_PASSWORD";

// Keep this API Key value to be compatible with the ESP32 code provided in the project page. 
// If you change this value, the ESP32 sketch needs to match
$api_key_value = "tPmAT5Ab3j7F9";

$api_key= $sensor = $location = $value1 = $value2 = $value3 = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $api_key = test_input($_POST["api_key"]);
    if($api_key == $api_key_value) {
        $sensor = test_input($_POST["sensor"]);
        $location = test_input($_POST["location"]);
        $value1 = test_input($_POST["value1"]);
        $value2 = test_input($_POST["value2"]);
        $value3 = test_input($_POST["value3"]);
        
        // Create connection
        $conn = new mysqli($servername, $username, $password, $dbname);
        // Check connection
        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
        } 
        
        $sql = "INSERT INTO SensorData (sensor, location, value1, value2, value3)
        VALUES ('" . $sensor . "', '" . $location . "', '" . $value1 . "', '" . $value2 . "', '" . $value3 . "')";
        
        if ($conn->query($sql) === TRUE) {
            echo "New record created successfully";
        } 
        else {
            echo "Error: " . $sql . "<br>" . $conn->error;
        }
    
        $conn->close();
    }
    else {
        echo "Wrong API Key provided.";
    }

}
else {
    echo "No data posted with HTTP POST.";
}

function test_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}
_1

Demonstrasi

Setelah menyelesaikan semua langkah, biarkan papan ESP Anda mengumpulkan beberapa bacaan dan menerbitkannya ke server Anda

Muka menggunakan bluehost instal ekstensi php

Jika semuanya benar, inilah yang harus Anda lihat di Arduino IDE Serial Monitor Anda

Muka menggunakan bluehost instal ekstensi php

Jika Anda membuka nama domain Anda di jalur URL ini

http://example-domain.com/esp-data.php
_

Anda harus melihat semua bacaan yang disimpan dalam database Anda. Segarkan halaman web untuk melihat bacaan terbaru

Muka menggunakan bluehost instal ekstensi php

Anda juga dapat membuka phpMyAdmin untuk mengelola data yang disimpan di tabel SensorData Anda. Anda dapat menghapusnya, mengedit, dll…

Muka menggunakan bluehost instal ekstensi php

membungkus

Dalam tutorial ini Anda telah mempelajari cara memublikasikan data sensor ke dalam database di domain server Anda sendiri yang dapat Anda akses dari mana saja di dunia. Ini mengharuskan Anda memiliki server dan nama domain Anda sendiri (Anda dapat menggunakan Raspberry Pi untuk akses lokal)

Contoh yang diberikan dibuat sesederhana mungkin sehingga Anda dapat memahami cara kerja semuanya. Setelah memahami contoh ini, Anda dapat mengubah tampilan tabel, menerbitkan pembacaan sensor yang berbeda, menerbitkan dari beberapa papan ESP, dan banyak lagi.

Anda mungkin juga suka membaca

  • [Kursus] Pelajari ESP32 dengan Arduino IDE
  • ESP32 Publikasikan Pembacaan Sensor ke Google Sheets (Kompatibel dengan ESP8266)
  • ESP32 Bluetooth Classic dengan Arduino IDE – Memulai
  • Server Web ESP32 dengan Arduino IDE

Saya harap Anda menyukai proyek ini. Jika Anda memiliki pertanyaan, kirimkan komentar di bawah ini dan kami akan mencoba menghubungi Anda kembali

Jika Anda menyukai ESP32, Anda dapat mempertimbangkan untuk mendaftar di kursus kami "Pelajari ESP32 dengan Arduino IDE". Anda juga dapat mengakses sumber daya ESP32 gratis kami di sini