HomeLập trình Arduino

[Arduino IoT] Arduino + PHP MySQL: Gửi dữ liệu từ Arduino lên MySQL

[Arduino IoT] Arduino + PHP MySQL: Gửi dữ liệu từ Arduino lên MySQL
Like Tweet Pin it Share Share Email

MySQL là dịch vụ cơ sở dữ liệu khá phổ biến (bạn nào là dân IT, làm web… sẽ biết), MySQL giúp chúng ta quản lý dữ liệu một cách chuyên nghiệp, từ đó chúng ta có thể sử dụng cho các dự án IoT tùy theo mục đích như: Viết một website, một ứng dụng di động biến dữ liệu đó thành giao diện đồ họa, thiết bị giám sát,….

Gửi dữ liệu từ Arduino lên MySQL

Chuẩn bị

  • Một máy tính có cài Webserver: Cụ thể các bạn có thể sử dụng XAMPP để tạo Webserver, tham khảo tại đây. (Xem cách cài đặt và cấu hình XAMPP là được).
  • Ethernet Shield + Arduino UNO (Hoặc MEGA).
  • Cảm biến: Dùng để xuất dữ liệu (Ở bài này mình dùng cảm biến nhiệt độ LM35)

Tạo Database

Đầu tiên các bạn mở XAMPP lên và start MySQLApache lên, xem hình bên dưới

Mở trình duyệt, vào địa chỉ 192.168.1.13:8080/phpmyadmin (hoặc localhost:8080/phpmyadmin) và làm theo hình dưới (tại sao phải vào địa chỉ như vậy thì mình có nói khá rõ ở bài hướng dẫn cài đặt XAMPP rồi, nên mình sẽ không giải thích lại).

Tạo Database mới có lên là arduino_sensor, chọn kiểu utf8_unicode_ci và nhấn Create

Tạo bảng nhietdo gồm 3 cột nhấn Go.

Tạo các trường như hình dưới, các bạn lưu ý các tạo các thuộc tính của trường cho chính xác nhé.

Giải thích:

  • id: hiểu nôm nà là thứ tự các dữ liệu được thêm vào, và cột này sẽ tự động tăng lên khi có dữ liệu mới được thêm vào (thuộc tính AUTO_INCREMENT).
  • giatri: là cột sẽ lưu trữ giá trị nhiệt độ từ cảm biến LM35 đưa lên.
  • thoigian: thời gian dữ liệu được thêm vào.

Lập trình PHP

Chúng ta không thể dùng Arduino thêm dữ liệu trực tiếp vào MySQL được, chúng ta sẽ thêm thông qua ngôn ngữ PHP, được đặt trên Server.

Vào đường dẫn C:\xampp\htdocs\LM35 và tạo file send.php tại đây (có thể dùng notepad hoặc notepad++ để code)

Code PHP

Lập trình Arduino

Lắp mạch như sau:

Datasheet LM35

 

LM35 Arduino
OUT(Pin 2) A0
GND(Pin 3) GND
VCC(Pin 1) 5V

Code Arduino

Các thông số như địa chỉ IP, MAC…mình có giải thích ở bài viết này, các bạn có thể xem lại tại đây.

Ở đây các bạn qua tâm tới đoạn code

Hiểu nôm na là đoạn code này sẽ giúp truyền dữ liệu nhiệt độ lên MySQL nhờ vào file send.php theo phương thức GET. Đoạn code trên củng tương tự như bạn mở trình duyệt và gõ 192.168.1.13:8080/lm35/send.php?giatri=35.5(ví dụ temp = 35.5), từ đây dữ liệu sẽ được truyền vào file send.php, và trong send.php mình đã xử lý code để truyền vào MySQL.

Kết quả

Sau khi nạp code và chạy, các bạn mở trình duyệt và vào localhost:8080/phpmyadmin, tiếp theo vào bảng nhietdo trong database arduino_sensor để xem dữ liệu có được thêm vào hay không.

Như hình dưới là thêm thành công, (Các giá trị 0 là do mình cấm dây không dược chắc chắn)

Kết

Lưu ý:

  • Máy tính và Ethernet Shield phải kết nối cùng một Internet.
  • Nếu muốn truy cập ngoài Internet thì phải NAT Port router nơi Ethernet Shield kết nối.
  • XAMPP là phần mềm tạo Webserver miễn phí trên máy tính, chỉ dừng lại ở mục đích học tập, nếu muốn bạn có thể thuê một server hoặc để máy tính chạy 24/24.

Trên là bài viết hướng dẫn thêm dữ liệu từ Arduino vào MySQL, từ đây các bạn có thể xây dựng một dự án IoT, giám sát dữ liệu từ mọi nơi, miễn là có Internet. Hãy share nếu thấy hay.

Chúc các bạn thành công!

Minh Nhựt
Follow me

Minh Nhựt

Quản trị viên at Nhựt Studio
Viết blog part-time trên Nhựt Studio, hiện là sinh viên, thích lập trình, yêu moto.
Blog này đơn giản là nơi chia sẽ những gì mình đang tìm hiểu. Cảm ơn các bạn đã theo dõi trong suốt thời gian qua.
Minh Nhựt
Follow me

Comments (4)

Trả lời

Your email address will not be published.