Store and share experiences about robocon, IoT, Embedded...
  • Home
  • Linux
  • Window
    • Latex
    • Matlab
  • Embedded programming
    • Jetson Tx1
    • Raspberry Pi
    • Raspberry Pico
  • Internet of things
    • HTTP+MySQL cho IoT
    • Websocket+Nodejs
    • ESP32
  • Electronics and robots
    • Robocon
    • Arduino
    • RISCV
    • FPGA
  • Network and devices
    • Basic CCNA
  • IoT Server
  • Q&A (Hỏi đáp)
  • About
No Result
View All Result
  • Home
  • Linux
  • Window
    • Latex
    • Matlab
  • Embedded programming
    • Jetson Tx1
    • Raspberry Pi
    • Raspberry Pico
  • Internet of things
    • HTTP+MySQL cho IoT
    • Websocket+Nodejs
    • ESP32
  • Electronics and robots
    • Robocon
    • Arduino
    • RISCV
    • FPGA
  • Network and devices
    • Basic CCNA
  • IoT Server
  • Q&A (Hỏi đáp)
  • About
No Result
View All Result
Store and share experiences about robocon, IoT, Embedded...
No Result
View All Result
Home Web of things HTTP+MySQL cho IoT

IoT webserver – Giới thiệu về thu thập dữ liệu và điều khiển từ xa với http

Tính đến thời điểm hiện tại, chúng ta đã có rất nhiều các giao thức và nền tảng hỗ trợ cho các ứng dụng IoT như điều khiển từ xa, thu thập dữ liệu cảm biến. Những giao thức phổ biến hiện nay gồm mqtt, websocket,...Tuy nhiên, để sử dụng được đa nền tảng, và dễ dàng thao tác với dữ liệu cũng như hiển thị trực quan, http vẫn là một lựa chọn tốt.

admin by admin
November 7, 2019
in HTTP+MySQL cho IoT, Web of things
0 0
0

Có thể nói để xây dựng được thành công một mini webserver, thu thập dữ liệu cũng như điều khiển các cơ cấu chấp hành từ xa cần làm rất nhiều công việc. Chúng ta sẽ bắt đầu với những vấn đề cơ bản về giao tiếp qua http trước, sau đó bắt tay xây dựng giao diện.

Toàn bộ loạt bài viết này sẽ sử dụng các ngôn ngữ lập trình và board sau:

+ Ngôn ngữ: php, mysql, html, bootstrap cho giao diện và xử lý tại server,  c++ cho client đọc dữ liệu cảm biến và giao tiếp với server.

+ Board: Raspberry Pi làm miniserver, ESP8266 làm client

Cơ chế làm việc của mô hình thu thập dữ liệu, điều khiển qua httpNhìn trên sơ đồ trên, ta thấy việc giao tiếp truyền nhận dữ liệu của esp với server cơ bản dựa trên bản tin request và response của giao thức http.

Vậy giao thức http hoạt động thế nào?

– HTTP là chữ viết tắt từ HyperText Transfer Protocol (giao thức truyền tải siêu văn bản). Đây là giao thức cơ bản mà World Wide Web sử dụng để truyền tải nội dung các trang web. HTTP xác định cách các thông điệp (các file văn bản, hình ảnh đồ hoạ, âm thanh, video, và các file multimedia khác được định dạng và truyền tải ra sao, và hoạt động của Web Server và các trình duyệt Web).

– Trong mô hình của HTTP, Webserver đồng thời cũng là TCP Server, mở sẵn port mặc định dành cho dịch vụ HTTP là TCP 80 (ở chế độ listen), sẵn sàng đợi yêu cầu kết nối từ các Client.

– Các Client sẽ khởi tạo kết nối TCP thông qua port này, sau khi Webserver chấp nhận kết nối, Client sẽ gửi một bản tin HTTP (HTTP message) gọi là HTTP request tới Server trên kết nối TCP vừa thiết lập.

– Server sẽ trả lời lại bằng một bản tin HTTP khác là HTTP response. Bản tin này sẽ chứa nội dung trang Web yêu cầu (được viết bằng ngôn ngữ HTML).

Với các đặc điểm được nói đến ngắn gọn ở trên, công việc để sử dụng webserver cho việc thu thập dữ liệu và điều khiển  có thể dễ dàng nhận thấy bằng việc nhúng các trường dữ liệu cảm biến vào trong các request và response của http.

Ví dụ về nhúng các trường dữ liệu vào bản tin request:

Giả sử chúng ta gõ đường dẫn sau https://luuvachiase.net?LED=1

Khi chúng ta truy cập vào đường dẫn này, nghĩa là đã thực hiện việc gửi đi một request theo phương thức GET đến server, lúc này tại server nếu chúng ta sử dụng hàm để tách giá trị của bản tin GET, ở đây là biến LED có giá trị là 1, có nghĩa, ta đã bước đầu giao tiếp giữa client và server thông qua http. Việc này dễ dàng được thực hiện  trên nền tảng ESP8266.

VD: client.print (String(“POST “) + “/up_load_data.php?temp=20” + “HTTP/1.1\r\n” + “Host: ” + 192.168.1.1+ “\r\n” + “Connection:close\r\n\r\n”);

Trên đây là đoạn code dùng trên nền tảng Arduino cho Esp8266. Đoạn mã này dùng cho việc gửi đi một bản tin request đến một server có địa chỉ 192.168.1.1, bằng phương thức POST. ( với phương thức GET, dữ liệu có thể dễ dàng được quan sát trên đường dẫn, nhưng với POST tất cả sẽ được ẩn đi). Lúc này đường dẫn sẽ gửi tới file up_load_data.php biến temp có giá trị bằng 20.

Và dưới đây là ví dụ về đoạn mã tại server, nhận request và tách trường dữ liệu temp từ request.

if (isset($_POST[‘temp’]))
{
$temp_php = $_POST[“temp”];
}

Đoạn mã trên là một đoạn mã PHP, có ý nghĩa là nếu tồn tại bản tin POST, đi kèm biến temp, thì gán giá trị biến temp và biến của PHP là $temp_php

Công việc sau đó là lưu giá trị biến $temp_php này vào cơ sở dữ liệu để sẳn sàng cho xử lý hiển thị.

$sql=”UPDATE sensor SET values_sensor =’$temp_php’ WHERE user_id = $user_find[user_id]”;

Đoạn mã trên là thực hiện lưu giá trị temp_php vào cột values_sensor trong mysql, nơi mà có user_id= user_id

Trên đây là bài viết tổng quát và bước đầu cho người đọc biết cách thức sử dụng bản tin request và response trong việc upload dữ liệu từ esp8266. Tôi sẽ mô tả từng phần nhỏ một để xây dựng được một server hoàn chỉnh, có chức năng hiển thị dữ liệu cũng như điều khiển esp8266 trog các bài tiếp theo.

Số lượt xem: 1,188
Tags: esp8266httpiotraspberryweb of things

Related Posts

Đăng ký sử dụng và thiết lập ban đầu cho Web based MQTT client

Đăng ký sử dụng và thiết lập ban đầu cho Web based MQTT client

February 27, 2023
46
A MQTT web client over websocket for testing ESP8266, ESP32-CAM, Raspberry Pi, Pico..etc

A MQTT web client over websocket for testing ESP8266, ESP32-CAM, Raspberry Pi, Pico..etc

February 9, 2023
204
How to connect Raspberry Pico W to a wireless network?

How to connect Raspberry Pico W to a wireless network?

January 4, 2023
72

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Bài viết đọc nhiều

IoT Webserver- ESP8266/ESP32 gửi dữ liệu lên Cloud, hiển thị ra trình duyệt web với MySQL và PHP

IoT Webserver- ESP8266/ESP32 gửi dữ liệu lên Cloud, hiển thị ra trình duyệt web với MySQL và PHP

February 9, 2023
17.6k
Điều khiển ESP8266/ESP32 từ xa qua internet, không cần mở Port modem

Điều khiển ESP8266/ESP32 từ xa qua internet, không cần mở Port modem

November 7, 2019
10.7k
ESP32-CAMERA: Cài đặt môi trường Arduino IDE và nạp chương trình

ESP32-CAMERA: Cài đặt môi trường Arduino IDE và nạp chương trình

December 27, 2019
7.3k
IoT webserver- Gửi thông báo bằng email từ ESP8266 không dùng IFTTT

IoT webserver- Gửi thông báo bằng email từ ESP8266 không dùng IFTTT

November 19, 2020
5.7k
Store and share experiences about robocon, IoT, Embedded…

Lưu và chia sẻ những gì đã đọc, đã làm, đã nghiên cứu về vi điều khiển, hệ thống nhúng, internet of things, kiến trúc máy tính và hệ điều hành.

Liên hệ với quản trị viên

Chủ đề

  • Arduino
  • CCNA cơ bản
  • Cisco
  • Điện tử- Robot
  • ESP32
  • FPGA
  • HTTP+MySQL cho IoT
  • IoT Server
  • Jetson Tx1
  • Lập trình nhúng
  • Latex
  • Linux
  • Mạng và thiết bị mạng
  • Raspberry Pi
  • Raspberry Pico
  • RISCV
  • Robocon
  • Web of things
  • Websocket+Nodejs
  • Window
  • WordPress

Quản trị trang

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

© 2019- 2023 luuvachiase.net - Phát triển và quản trị bởi Đỗ Ngọc Tuấn và Nguyễn Văn Tuấn ***Vui lòng ghi rõ nguồn khi trích dẫn bài viết từ Website này. DMCA.com Protection Status

No Result
View All Result
  • Trang chủ
  • Linux
  • Window
  • Lập trình nhúng
    • Jetson Tx1
    • Raspberry Pi
  • Web of things
    • HTTP+MySQL cho IoT
    • Websocket+Nodejs
  • Điện tử- Robot
    • Robocon
    • Arduino
    • RISCV
    • FPGA
  • Mạng và thiết bị mạng
    • CCNA cơ bản
  • IoT Server
  • Giới thiệu
  • Q&A (Hỏi đáp)

© 2019- 2023 luuvachiase.net - Phát triển và quản trị bởi Đỗ Ngọc Tuấn và Nguyễn Văn Tuấn ***Vui lòng ghi rõ nguồn khi trích dẫn bài viết từ Website này. DMCA.com Protection Status

Login to your account below

Forgotten Password?

Fill the forms bellow to register

All fields are required. Log In

Retrieve your password

Please enter your username or email address to reset your password.

Log In