NTM Solutions

Bài đăng nổi bật

🚀 Laravel 12 (2026) — Từ PHP Core đến Full Stack📘

Nếu cập nhật theo Laravel 12 LTS (2026) thì mình sẽ chia thành các phần như sau để người học đi từ PHP Core → Laravel → Triển khai dự án th...

Thứ Hai, 10 tháng 8, 2026

🥤 Bài 7 — Thiết kế giao diện cảm ứng cho máy bán nước

Ở bài 6, chúng ta đã xây dựng State Machine cho bộ não của máy.

Bây giờ đến phần mà khách hàng nhìn thấy đầu tiên:

Giao diện người dùng (UI/UX).

Một máy bán nước có phần cơ khí rất tốt nhưng giao diện khó sử dụng thì trải nghiệm vẫn rất tệ.

Mục tiêu của chúng ta là tạo một giao diện hiện đại, đơn giản, dễ bấm, lấy cảm hứng từ phong cách giao diện Windows/Material nhưng không sao chép logo hay nhận diện thương hiệu.


1. Màn hình của máy

Phiên bản mini có thể bắt đầu với:

  • Màn hình cảm ứng 3.5–4.3 inch.

  • ESP32.

  • Độ phân giải khoảng 480×272 hoặc 800×480.

  • Giao tiếp SPI hoặc RGB tùy loại màn hình.

Nếu muốn làm giao diện đẹp hơn, có thể chọn:

ESP32 + màn hình cảm ứng 4.3 inch + LVGL

LVGL là thư viện giao diện rất phù hợp cho các thiết bị nhúng.

Chủ Nhật, 9 tháng 8, 2026

🚀Laravel 12 (2026) — Viết hàm riêng trong Laravel và chạy autoload để dùng

Laravel không có một thư mục helpers mặc định. Nếu bạn muốn tự viết sanitizeHtml() thì nên tự tạo một helper riêng.

Với project của bạn, mình khuyên:

app/
└── Helpers/
    └── helpers.php

1. Tạo file

app/Helpers/helpers.php

Ví dụ:

<?php

if (! function_exists('sanitizeHtml')) {

    function sanitizeHtml(string $html): string
    {
        // code sanitize của bạn

        return $html;
    }
}

🥤 Bài 6 — Thiết kế phần mềm điều khiển bằng State Machine

Ở bài trước, chúng ta đã có:

  • ESP32

  • Động cơ

  • Driver

  • Encoder

  • Cảm biến rơi sản phẩm

Nếu tiếp tục viết chương trình theo kiểu:

if(...)
{
    ...
}

if(...)
{
    ...
}

if(...)
{
    ...
}

Thì chỉ sau vài ngày, chương trình sẽ trở nên rất khó đọc và khó bảo trì.

Các máy bán hàng thương mại không lập trình như vậy.

Họ sử dụng một mô hình gọi là State Machine (Máy trạng thái).


Mục tiêu

Sau bài này bạn sẽ:

  • Hiểu State Machine là gì.

  • Biết cách chia chương trình thành từng trạng thái.

  • Thiết kế phần mềm giống máy bán hàng thương mại.

  • Viết bộ khung chương trình đầu tiên.

Thứ Bảy, 8 tháng 8, 2026

🚀 Laravel 12 (2026) — Bài 27 — CRUD Posts

Sau khi hoàn thành module Categories, chúng ta sẽ xây dựng chức năng quan trọng nhất của Blog CMS: quản lý bài viết (Posts).

Khác với Category chỉ có vài trường dữ liệu, Post sẽ liên kết với nhiều bảng khác nhau như Category, User, đồng thời hỗ trợ upload hình ảnh, kiểm tra dữ liệu đầu vào và hiển thị danh sách bài viết chuyên nghiệp.

Đây cũng là module có số lượng kiến thức nhiều nhất trong toàn bộ dự án.


Mục tiêu bài học

Sau bài này bạn sẽ thực hiện được:

  • CRUD bài viết

  • Upload ảnh đại diện

  • Chọn Category

  • Gán tác giả (User)

  • Validation dữ liệu

  • Hiển thị Relationship

  • Tự động tạo slug

  • Phân trang dữ liệu

🥤 Bài 5 — Điều khiển chính xác: Cảm biến và Encoder

Ở bài trước, chúng ta điều khiển động cơ bằng cách:

Quay 1 giây

↓

Dừng

Cách này hoạt động khá tốt để thử nghiệm.

Nhưng nếu muốn máy hoạt động liên tục ngoài thực tế thì không đủ chính xác.


Mục tiêu

Sau bài này bạn sẽ:

  • Hiểu vì sao không nên điều khiển bằng delay().

  • Biết Encoder là gì.

  • Biết Hall Sensor hoạt động như thế nào.

  • Chọn loại cảm biến phù hợp.

  • Điều khiển động cơ quay đúng một vòng.

Facebook Youtube RSS