[IoT] Thực hành #1: Xây dựng hệ thống IoT hoàn chỉnh sử dụng AJAX, Http Request, PHP, MySQL

Xây dựng hệ thống IoT hoàn chỉnh

bài 3 chúng ta đã làm quen với truy vấn http để điều khiển 4 thiết bị, trong phần này, mình sẽ hướng dẫn các bản xây dựng 1 hệ thống IoT hoàn chỉnh để điều khiển + giám sát nhiệt độ và trạng thái ON OFF của các thiết bị. Hệ thống sẽ có cả trang đăng nhập, đăng kí tài khoản cho khách hàng

Tìm hiểu về ngôn ngữ PHP, Ajax và MySQL

PHP là ngôn ngữ để lập trình cho server ( các bạn đã được làm quen ở bài 3 rồi đó) đây là nơi chúng ta sẽ sẽ tiền xử lí giao diện web, xử lí gửi nhận các truy vấn GET POST từ browser ( trình duyệt web) cũng như từ esp8266

Database tức cơ sở dữ liệu, tại sao lại cần cơ sở dữ liệu ? Ở bài 3 chúng ta đã dùng file notepad để lưu dữ liệu trạng thái bật tắt của LED, tuy nhiên ở phần này chúng ta phải lưu trạng thái bật tắt của nhiều LED, lại còn phải lưu tài khoản mật khẩu để đăng nhập … bạn vẫn có thể sử dụng file txt để lưu những thứ đó. Nhưng việc truy xuất dữ liệu trong file txt không tiện chút nào, lại chậm nữa. Do vậy, người ta đã sáng tạo ra cơ sơ dữ liệu để truy xuất dữ liệu dễ dàng hơn

SQL là ngôn ngữ giúp ta truy vấn vào cơ sở dữ liệu (database),

MySQL là 1 hệ thống giúp bạn quản lí cơ sở dữ liệu(database), sử dụng ngôn ngữ SQL

PHPMyadmin nó đơn giản là 1 ứng dụng để bạn quản lí database 1 cách trực quan bằng chuột

Ajax ở bài này, mình chỉ sử dụng ajax cho web browser thôi, hiểu đơn giản Ajax giúp trình duyệt web gửi các http request đến server để lấy dữ liệu nhiệt độ …

Trên đây mình đã giới thiệu qua về các khái niệm cơ bản để các bạn tự tìm hiểu chứ mình không giải thích vì giải thích chắc vài chục bài không hết quá 🙁 nếu hướng dẫn thì blog của mình thành blog lập trình web mất 🙁 trong khi đó tài liệu trên mạng thì nhiều như suối. Các bạn hãy tự tìm hiểu cơ bản sau đó quay lại tus này đọc tiếp nhé !

1 số liên kết để các bạn học

Đăng kí server

Cũng giống như bài 3 chúng ta sử dụng hosting free đó là https://www.000webhost.com
(bạn nào đại gia thì mua hẳn 1 cái hosting xài cho sướng nhé – lúc mua nhớ bảo họ bán cho cái có giao diện quản trị là Cpanel)

Lên ý tưởng mô hình hệ thống web

  • Phải có chức năng đăng nhập
  • Phải đăng kí được tài khoản
  • Phải điều khiển và giám sát được trạng thái của 4 thiết bị
  • Phải có ảnh cho mỗi thiết bị cho sinh động
  • Phải hiển thị được nhiệt độ
  • Vẽ được biểu đồ nhiệt độ
  • Phải thông báo xem mạch có đang online không

Xây dựng cơ sở dữ liệu

Trong trang quản lí của 000webhost.com, chúng ta vào MySQL Database để tạo 1 cái database

Các bạn điền tên database các bạn muốn và tạo tài khoản quản trị database

Sau khi tạo xong thì thằng 000web nó tự nhét thêm cái id vớ vẩn vào tên database, thôi kệ chấp nhận vậy 🙁

Các bạn vào Quản lí và tiến hành vào PhpMyAdmin để thêm các bảng dữ liệu vào database

Giao diện của trình quản lí database

Các bạn click vào database mà mình vừa tạo ( ở đây database của mình tên là
id10455918_iot47)

Do database vừa tạo nên trống trơn chả có cái khỉ khổ gì sất :). Do dữ liệu trong database được lưu dưới dạng bảng nên mỗi hàng dữ liệu sẽ là mỗi tài khoản khác nhau, còn các cột dữ liệu sẽ lưu các giá trị như thông tin đăng nhập, tên của các thiết bị, ảnh thiết bị, nhiệt độ, trạng thái online, offline …

Các bạn ấn vào SQL để thực thi truy vấn tạo bảng cho nhanh. Sau có dán câu truy vấn tạo bảng dữ liệu có tên là “kh”

Sau khi chạy truy vấn sau, chúng ta có 1 bảng rỗng với các cột dữ liệu sau:

Giải thích các cột dữ liệu:

idkhachang : là id độc nhất của mỗi tài khoản ( mỗi khách hàng)
API : chưa xài đến
ten : tên của khách hàn
ngaytao : ngày khách hàng đăng kí tài khoản
email : email của khách hàng
kichhoat : ví dụ hệ thống của bạn cần phí thí thì cột này để xác định tài khoản đã thanh toán tiền chưa
taikhoan: tài khoản đăng nhập
matkhau : mật khẩu đăng nhập
ten1 ten2 ten3 ten4 : tên hiển thị của các thiết bị
image1 image2 image3 image4 : hình ảnh hiển thị của các thiết bị
tt1 tt2 tt3 tt4 : trạng thái bật tắt của các thiết bị
nhietdo : nhiệt độ hiện tại
nhietdo25s nhietdo20s nhietdo 15s nhietdo10s nhietdo5s : lưu nhiệt độ của vài giây trước đó
online trạng thái online ofline của mạch ( 1=on, 0=off)

OK, chúng ta sẽ design xong database, bây giờ sẽ xây dựng chức năng đăng nhập và đăng kí nhé !

Xây dựng chức năng đăng nhập và đăng kí

Quay trở lại Dashboard vào mục Quản lí FIile, click vào Tải file lên để vào trình quản lí file của 000webhost. Toàn bộ file mà bản tải lên sẽ nằm trong thư mục pubblic_html

Viết file PHP đăng nhập

Vào new file , tạo 1 file tên là dangnhap.php

Chuột phải vào file vừa tạo -> Edit và chèn mã code cho trang đăng nhập

Bài này mình sẽ cập nhật dần vì nó rất dài

 

Từ tác giả:

Nếu có bất kì thắc mắc nào trong bài viết, vui lòng để lại comment dưới mỗi bài ! Mình sẽ không trả lời thắc mắc của các bạn ở facebook hay email !

Nếu trong phần code bạn nhìn thấy nhưng thứ kiểu như &amp; thì đó là lỗi hiển thị, cụ thể 3 kí tự < > & bị biến đổi thành như thế
&amp; là &
&lt;  là <
&gt; là >

Giới thiệu Đào Nguyện 80 bài viết
DIY,chế cháo, viết blog chia sẽ kiến thức về lập trình,điện tử - IoT. Rất mong được giao lưu, kết bạn với các bạn cùng đam mê. Địa chỉ Facebook: https://www.facebook.com/nguyendao207

6 bình luận

  1. anh ơi, chắc anh cũng rất bận, hi vọng anh có thể đang bài hướng dẫn tiếp theo ạ. em có đọc hướng dẫn ở các trang khác đều thấy họ coppy lẫn nhau nọi dung khó hiểu , riêng của anh làm rất dễ hiểu, chi tiết! em cám ơn anh !

Đã đóng bình luận.