본문 바로가기

라즈베리파이 5

ESP32/ESP8266에서 Raspberry Pi LAMP 서버로 데이터 전송

반응형

ESP32/ESP8266에서 Raspberry Pi LAMP 서버로 데이터 전송

 

이 프로젝트에서는 ESP32 또는 ESP8266 클라이언트를 제작하여 라즈베리 파이 LAMP 서버 ( 리눅스 , 아파치 , MySQL , PHP ) 에 HTTP POST 요청을 보냅니다 . 라즈베리 파이에는 센서 측정값을 MySQL 데이터베이스에 삽입하는 PHP 스크립트가 실행됩니다.

 

데이터베이스에 저장된 센서 측정값, 타임스탬프 및 기타 정보를 표시하는 웹 페이지도 제공됩니다. 네트워크 내 모든 브라우저에서 로컬로 데이터를 시각화할 수 있습니다.

 

참고: 이 프로젝트는 전 세계 어디에서든 접근 가능합니다 . 이 프로젝트를 팔로우하세요.

 

 

ESP32/ESP8266에서 Raspberry Pi LAMP 서버로 데이터 전송

 

예시로 ESP 보드에 연결된 BME280 센서를 사용하겠습니다 . 제공된 코드를 수정하여 다른 센서의 값을 전송하거나 여러 개의 보드를 사용할 수도 있습니다.

 

이 프로젝트를 구축하기 위해 다음과 같은 기술을 사용하게 됩니다.

  • 라즈베리 파이 에서 LAMP 서버 실행하기
  • ESP32 또는 ESP8266을 Arduino IDE 로 프로그래밍합니다.
  • MySQL에 데이터를 삽입하고 웹 페이지에 표시하는 PHP 스크립트입니다.
  • 측정값을 저장할 MySQL 데이터베이스

 

0. 필수 조건

 

이 튜토리얼을 계속 진행하기 전에:

 

  • 라즈베리 파이 보드 에 익숙해져야 합니다 . 라즈베리 파이 시작하기를 읽어보세요 .
  • Raspbian 또는 Raspbian Lite 운영 체제가 설치되어 있어야 합니다. 자세한 내용 은 Raspbian Lite 설치, SSH 활성화 및 연결하기를 참조하십시오 .

 

다음과 같은 하드웨어도 필요합니다.

  • 라즈베리 파이 보드 – 최고의 라즈베리 파이 스타터 키트를 읽어보세요
  • MicroSD 카드 – 16GB Class10
  • 라즈베리 파이 전원 공급 장치 (5V 2.5A)

 

  • 라즈베리 파이 에 LAMP 서버를 준비하려면 다음 단계를 따르세요. Apache + MySQL + PHP (LAMP 서버) 설치
  • 라즈베리 파이 보드 에 Raspbian OS와 LAMP 서버를 설치한 후에는 이 튜토리얼을 계속 진행할 수 있습니다.

 

1. PHP 애플리케이션 및 MySQL 데이터베이스 호스팅 - 라즈베리 파이

 

이 프로젝트의 목표는 라즈베리 파이 에서 ESP32 또는 ESP8266 의 센서 데이터를 저장할 수 있는 LAMP 서버를 실행하는 것입니다 . 로컬 네트워크 내의 모든 웹 브라우저에서 저장된 데이터를 시각화할 수 있습니다.

 

간략한 개요는 다음과 같습니다.

 

 

 

라즈베리 파이에 PHP 애플리케이션과 MySQL 데이터베이스를 호스팅하여 ESP32 또는 ESP8266 센서의 측정값을 전송합니다.

 

2. MySQL 데이터베이스 준비하기

 

라즈베리 파이에 LAMP 서버와 phpMyAdmin을 설치한 후 phpMyAdmin에 로그인할 수 있습니다. 그 후, 다음 단계에 따라 데이터베이스와 SQL 테이블을 생성하세요.

 

브라우저를 열고 http://Your-Raspberry-Pi-IP-Address/phpmyadmin 을 입력하세요 . 그러면 phpMyAdmin 웹 인터페이스의 로그인 페이지가 나타날 것입니다.

 

 

라즈베리 파이 phpMyAdmin 로그인 페이지 열기

 

로그인 후에는 다음과 유사한 페이지가 표시될 것입니다.

 

 

Raspberry Pi phpMyAdmin 로컬 데이터베이스 MySQL

 

데이터베이스 생성

 

1. 상단의 " 데이터베이스 " 메뉴를 선택하고 " 데이터베이스 생성 " 필드를 작성하세요.

  • esp_data
  • utf8mb4_general_ci

 

그런 다음, 만들기 버튼을 누르세요.

 

 

Raspberry Pi phpMyAdmin을 사용하여 새 데이터베이스 생성

 

자, 이제 끝입니다! 새 데이터베이스가 성공적으로 생성되었습니다. 나중에 필요하니 데이터베이스 이름을 저장해 두세요.

 

  • 데이터베이스 이름 : esp_data

 

SQL 테이블 생성

 

데이터베이스를 생성한 후 왼쪽 사이드바에서 데이터베이스 이름을 선택하세요 esp_data.

 

 

Raspberry Pi phpMyAdmin에서 새 데이터베이스 열기

 

중요: 데이터베이스를 열었는지 확인하십시오 esp_data . 그런 다음 SQL 탭을 클릭하십시오. 이 단계를 정확히 따르지 않고 SQL 쿼리를 실행하면 잘못된 데이터베이스에 테이블이 생성될 수 있습니다.

 

다음 코드 조각에 있는 SQL 쿼리를 복사하세요.

 

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
)

 

"SQL" 탭을 열고 SQL 쿼리 필드(빨간색 사각형으로 강조 표시됨)에 붙여넣은 다음 " 실행" 버튼을 눌러 테이블을 생성하세요.

 

 

Raspberry Pi phpMyAdmin에서 SQL 쿼리 실행

 

테이블이 성공적으로 생성되었다면 다음과 같은 내용이 표시됩니다.

 

 

Raspberry Pi phpMyAdmin에서 SQL 테이블이 생성되었습니다.

 

그 후, 아래 그림과 같이 데이터베이스 SensorData 에 새로 생성된 테이블이 표시될 것입니다 .esp_data

 

 

Raspberry Pi의 phpMyAdmin 테이블이 비어있는 상태로 생성되었습니다.

 

3. PHP 스크립트를 이용한 HTTP POST 요청 - MySQL 데이터베이스에 데이터 삽입

 

이 섹션에서는 ESP32 또는 ESP8266 에서 들어오는 요청을 수신 하고 해당 데이터를 MySQL 데이터베이스에 삽입하는 PHP 스크립트를 작성할 것입니다 .

 

다음 명령은 데스크톱 컴퓨터로 설정된 라즈베리 파이 에서 실행하거나 SSH 연결을 사용하여 실행할 수 있습니다 .

 

SSH 연결을 통해 라즈베리 파이 에 접속했다면 다음 명령어를 입력하여 해당 /var/www/html 디렉터리에 파일을 생성하세요.

 

pi@raspberrypi:~ $ nano /var/www/html/post-esp-data.php

 

pi@raspberrypi:~ $ nano /var/www/html/post-esp-data.php

 

 

라즈베리 파이 게시물 저장 esp 데이터 PHP 파일

 

참고: 이 튜토리얼을 따라하는 동안 PHP나 MySQL에 익숙하지 않다면, 제공된 파일을 그대로 생성하는 것을 권장합니다. 그렇지 않으면, 제공된 ESP 스케치를 수정하여 다른 URL 경로를 사용해야 합니다.

 

다음 PHP 스크립트를 새로 생성된 파일( post-esp-data.php )에 복사하십시오.

 

<?php

/*
  Ebokify
  Complete project details at https://ebokify.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;
}

 

 

파일을 저장하기 전에 $dbname, $username, $password 변수를 고유한 정보로 수정해야 합니다.

 

// Your Database name
$dbname = "esp_data";
// Your Database user
$username = "root";
// Your Database user password
$password = "YOUR_USER_PASSWORD";

 

 

데이터베이스 이름, 사용자 이름, 비밀번호를 입력한 후 파일을 저장( Ctrl+X , y , Enter 키)하고 이 튜토리얼을 계속 진행하세요.

 

 

Raspberry Pi 저장된 파일 게시물 esp 데이터 PHP

 

다음 URL 경로에서 라즈베리 파이의 IP 주소에 접속하려고 하면 다음과 같은 화면이 나타납니다.

 

http://You-Raspberry-Pi-IP-Address/post-esp-data.php

 

 

ESP32 ESP8266 PHP 페이지에서 측정값을 라즈베리 파이 MySQL 데이터베이스에 저장

 

4. PHP 스크립트 - 데이터베이스 내용 표시

 

/var/www/html 데이터베이스 내용을 웹 페이지에 표시할 PHP 파일을 해당 디렉터리에 새로 생성하세요 . 새 파일의 이름은 esp-data.php 로 지정하세요.

 

pi@raspberrypi:~ $ nano /var/www/html/esp-data.php

 

 

라즈베리 파이 ESP 데이터 PHP 파일 저장

 

새로 생성된 파일( esp-data.php )을 편집하고 다음 PHP 스크립트를 복사하세요.

 

<!DOCTYPE html>
<html><body>
<?php
/*
  Ebokify
  Complete project details at https://ebokify.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>

 

 

$dbname, $username 및 $password를 추가하세요.

 

// Your Database name
$dbname = "esp_data";
// Your Database user
$username = "root";
// Your Database user password
$password = "YOUR_USER_PASSWORD";

 

파일을 저장하고( Ctrl+X , y , Enter 키) 이 프로젝트를 계속 진행하세요.

 

 

Raspberry Pi 저장 파일 esp 데이터 PHP

 

다음 URL 경로를 통해 라즈베리 파이의 IP 주소에 접속하려고 하면 다음과 같은 화면이 나타납니다.

 

http://Your-Raspberry-Pi-IP-Address/esp-data.php

 

 

ESP32 ESP8266 PHP 페이지 보기 측정값 온도 습도 압력 BME280

 

끝입니다! 브라우저에 빈 표가 출력되면 모든 준비가 완료된 것입니다. 다음 섹션에서는 ESP32 또는 ESP8266 에서 데이터베이스로 데이터를 삽입하는 방법을 배우게 됩니다.

 

5. ESP32 또는 ESP8266 준비하기

 

이 프로젝트는 ESP32 및 ESP8266 보드 모두와 호환됩니다 . 간단한 회로를 조립하고 제공된 스케치를 업로드하기만 하면 온도, 습도, 압력 등의 데이터를 30초마다 데이터베이스에 입력할 수 있습니다.

 

필요한 부품

 

이 예제에서는 BME280 센서 에서 센서 판독값을 얻습니다 . 이 프로젝트의 회로를 구성하는 데 필요한 부품 목록은 다음과 같습니다.

  • ESP32 보드 ( 최고의 ESP32 개발 보드 참조 )
  • 대안 – ESP8266 보드 (최고의 ESP8266 개발 보드 참조)
  • BME280 센서
  • 점퍼선
  • 브레드보드

 

회로도

 

저희가 사용하는 BME280 센서 모듈은 I2C 통신 프로토콜을 통해 통신하므로 ESP32 또는 ESP8266 의 I2C 핀 에 연결해야 합니다 .

 

BME280을 ESP32에 연결하는 배선

 

ESP32 의 I2C 핀은 다음과 같습니다.

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

 

BME280을 ESP32에 연결하는 배선

 

BME280을 ESP8266에 연결하는 배선

 

ESP8266 의 I2C 핀은 다음과 같습니다.

  • GPIO 5 (D1): SCL (SCK)
  • GPIO 4 (D2): SDA (SDI)

 

 

BME280을 ESP8266에 연결하는 배선

 

필요한 보드 애드온을 설치한 후, 다음 코드를 아두이노 IDE에 복사하세요. 하지만 아직 업로드하지 마세요. 제대로 작동하도록 몇 가지 수정이 필요합니다.

 

/*
  Ebokify
  Complete project details at https://ebokify.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);  
}

 

 

네트워크 자격 증명 설정

 

네트워크 자격 증명(SSID 및 비밀번호)을 사용하여 다음 줄을 수정해야 합니다. 코드는 수정해야 할 부분을 잘 설명하는 주석으로 되어 있습니다.

 

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

 

서버 이름 설정

 

ESP가 측정값을 LAMP 서버로 전송하려면 라즈베리 파이의 IP 주소 도 입력해야 합니다 .

 

const char* serverName = "http://Your-Raspberry-Pi-IP-Address/post-esp-data.php";

 

예를 들어:

 

const char* serverName = "http://192.168.1.86/post-esp-data.php";

 

이제 코드를 보드에 업로드할 수 있습니다. ESP32 및 ESP8266 보드 모두에서 바로 작동해야 합니다 . 코드 작동 방식을 알고 싶다면 다음 섹션을 읽어보세요.

 

코드 작동 방식

 

이 프로젝트는 이미 상당히 길기 때문에 코드 작동 방식에 대한 자세한 설명은 생략하고 간단히 요약해 드리겠습니다.

 

  • 작동에 필요한 모든 라이브러리를 가져와야 합니다( Arduino IDE 에서 선택한 보드에 따라 ESP32 또는 ESP8266 라이브러리가 자동으로 가져와집니다).
  • 변경할 가능성이 있는 변수들을 설정하세요 ( apiKeyValue, sensorName, sensorLocation)
  • 이는 apiKeyValue 수정 가능한 임의의 문자열입니다. 보안상의 이유로 사용되며, API 키를 아는 사람만 데이터베이스에 데이터를 게시할 수 있도록 합니다.
  • 디버깅 목적으로 직렬 통신을 초기화합니다.
  • 라우터와 Wi-Fi 연결을 설정하세요.
  • BME280을 초기화하여 측정값을 얻습니다.

 

그다음에는 loop() 30초마다 최신 BME280 측정값을 사용하여 HTTP POST 요청을 실제로 보내는 부분입니다.

 

 

// Your Domain name with URL path or IP address with path
http.begin(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) + "";

int httpResponseCode = http.POST(httpRequestData);

 

 

httpRequestData 위의 변수는 모든 BME280 측정값을 연결하고 httpRequestData 아래 변수를 테스트 목적으로 사용하므로 주석 처리할 수 있습니다 .

 

String httpRequestData = "api_key=tPmAT5Ab3j7F9&sensor=BME280&location=Office&value1=24.75&value2=49.54&value3=1005.14";

 

 

데모

 

모든 단계를 완료한 후 ESP 보드가 측정값을 수집하고 서버로 전송하도록 하십시오.

 

 

ESP32 BME280 아두이노 IDE MySQL

 

모든 것이 올바르게 설정되었다면 아두이노 IDE 시리얼 모니터에 다음과 같은 내용이 표시될 것입니다.

 

 

ESP32 ESP8266에서 측정값을 라즈베리 파이 MySQL 데이터베이스에 게시

 

만약 라즈베리 파이 의 IP 주소를 /esp-data.php 라는 URL 경로에 입력한다면 :

 

http://Your-Raspberry-Pi-IP-Address/esp-data.php

 

데이터베이스에 저장된 모든 측정값을 확인할 수 있습니다. 최신 측정값을 보려면 웹페이지를 새로고침하세요.

 

 

Raspberry Pi PHP MySQL 보기 ESP32 ESP8266 판독값

 

phpMyAdmin에 접속하여 테이블에 저장된 데이터를 관리할 수도 있습니다 SensorData . 데이터를 삭제하거나 편집하는 등의 작업을 할 수 있습니다.

 

 

Raspberry Pi phpMyAdmin 테이블에 ESP32 ESP8266 측정값 게시

 

마무리

 

이 튜토리얼에서는 센서 데이터를 로컬 라즈베리 파이 LAMP 서버의 데이터베이스에 게시하는 방법을 배웠습니다.

 

제공된 예시는 모든 작동 방식을 쉽게 이해할 수 있도록 최대한 간단하게 구성되어 있습니다. 이 예시를 이해한 후에는 표의 모양을 변경하거나, 다양한 센서 값을 게시하거나, 여러 ESP 보드에서 데이터를 게시하는 등 다양한 작업을 수행할 수 있습니다.

 

이 프로젝트가 마음에 드셨기를 바랍니다. 궁금한 점이 있으면 아래에 댓글을 남겨주세요. 최대한 답변드리겠습니다.

 

튜토리얼의 원문 출처를 참고하세요. 

 

 

반응형

캐어랩 고객 지원

취업, 창업의 막막함, 외주 관리, 제품 부재!

당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약, 아이디어는 있지만 구현할 기술이 없는 막막함.

우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.

이제 고민을 멈추고, 캐어랩을 만나세요!

코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.

제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!

귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.

지난 30년 여정, 캐어랩이 얻은 모든 것을 함께 나누고 싶습니다.

카카오 채널 추가하기

카톡 채팅방에서 무엇이든 물어보세요

당신의 성공을 위해 캐어랩과 함께 하세요.

캐어랩 온라인 채널 바로가기

캐어랩