TỔNG QUAN
ĐẶT VẤN ĐỀ
Ngày nay, sự phát triển nhanh chóng của khoa học công nghệ và xu hướng Internet kết nối vạn vật đã tạo ra những giải pháp công nghệ thông minh, giúp kết nối và tương tác hiệu quả giữa con người Những tiến bộ này hứa hẹn sẽ thay đổi cuộc sống, mang đến sự tiện lợi hơn thông qua các kết nối thông minh.
Trong lĩnh vực kinh doanh điện thoại di động hiện nay, việc cung cấp thông tin sản phẩm cho khách hàng là rất quan trọng để họ có thể hiểu rõ và đưa ra quyết định mua hàng Tuy nhiên, nhiều cửa hàng vẫn sử dụng phương pháp truyền thống với thông tin in trên giấy, gây ra sự bất tiện và mất thẩm mỹ Điều này không chỉ làm hạn chế không gian trưng bày mà còn dễ gây nhầm lẫn và tốn thời gian khi cần cập nhật thông tin Do đó, nhóm chúng tôi đã quyết định nghiên cứu và phát triển đề tài “Hệ thống hiển thị báo giá và thông tin sản phẩm” nhằm tìm ra giải pháp hiệu quả hơn.
Hệ thống hiển thị báo giá và thông tin sản phẩm giúp quản lý và cung cấp thông tin cơ bản về điện thoại như tên, giá, thời gian bảo hành và mã IMEI Hệ thống này cho phép các cửa hàng bán điện thoại dễ dàng theo dõi, kiểm tra và cập nhật thông tin nhanh chóng Đồng thời, khách hàng cũng có thể dễ dàng nắm bắt thông tin về các mẫu điện thoại có trong cửa hàng.
MỤC TIÊU
Thiết kế và thi công hệ thống hiển thị báo giá và thông tin sản phẩm chính xác, trực quan, với khả năng cập nhật nhanh chóng trên màn hình của từng sản phẩm Hệ thống bao gồm website quản trị, cho phép cập nhật cơ sở dữ liệu lên database và hiển thị thông tin từ database xuống màn hình LCD qua Internet Đồng thời, đề tài nghiên cứu ứng dụng điều khiển và quản lý thông qua đường truyền Internet, cùng với việc đăng ký tên miền cho website.
NỘi DUNG NGHIÊN CỨU
NỘI DUNG 1: Kết nối mạng với bộ xử lý trung tâm và giao tiếp với khối hiển thị
NỘI DUNG 2: Nghiên cứu ngôn ngữ lập trình web PHP và thiết kế website
NỘI DUNG 3: Nghiên cứu cơ sở dữ liệu MySQL, giao thức truyền nhận dữ liệu từ database và khối hiển thị
NỘI DUNG 4: Thiết kế mô hình, chạy thử nghiệm, cân chỉnh hệ thống
NỘI DUNG 5: Đánh giá kết quả thực hiện
GIỚI HẠN
Mô hình thi công có kích thước 49x14x17
Hệ thống sử dụng 1 biến áp, 1 ESP V12, 3 module I2C, 3 màn hình LCD 20x4
Đề tài này tập trung vào việc xây dựng mô hình với ba màn hình hiển thị, mỗi màn hình sẽ trình bày thông tin về một sản phẩm khác nhau Mỗi sản phẩm sẽ được cung cấp bốn hàng thông tin chi tiết.
Tốc độ truyền nhận dữ liệu phụ thuộc vào tốc tộ đường truyền Internet.
BỐ CỤC
Chương này giới thiệu lý do lựa chọn đề tài, mục tiêu nghiên cứu, nội dung nghiên cứu, các giới hạn về thông số và cấu trúc của đồ án.
Chương 2: Cơ Sở Lý Thuyết
Chương này mô tả quy trình hoạt động và giới thiệu phần cứng, bao gồm việc lựa chọn linh kiện thiết bị Ngoài ra, chương cũng trình bày các chuẩn giao tiếp và các ngôn ngữ lập trình web như HTML, PHP cùng với ngôn ngữ truy vấn SQL.
Chương 3: Thiết Kế và Tính Toán
Chương này trình bày thiết kế sơ đồ khối hệ thống, giải thích rõ chức năng của từng khối, bao gồm tính toán và thiết kế mạch điều khiển, khối nguồn, khối hiển thị, thiết kế website, cùng với sơ đồ kết nối và sơ đồ nguyên lý toàn mạch.
Chương 4: Thi công hệ thống
Chương này giới thiệu lưu đồ giải thuật chính và lưu đồ giải thuật con, kèm theo giải thích chi tiết Nó cũng bao gồm quy trình thi công mạch, sơ đồ layout, lắp ráp, kiểm tra và đóng gói sản phẩm Cuối cùng, chương này đề cập đến thi công mô hình và lập trình code cho hệ thống.
Chương 5: Kết Quả, Nhận Xét và Đánh Giá
Chương này trình bày kết quả mô hình, giao diện điều khiển website từ đó đưa ra đánh giá, nhận xét
Chương 6: Kết Luận và Hướng Phát Triển
Chương này tổng kết những kết quả đã đạt được, đồng thời phân tích ưu và nhược điểm để đề xuất hướng phát triển cho đề tài.
CƠ SỞ LÝ THUYẾT
QUY TRÌNH HOẠT ĐỘNG CỦA HỆ THỐNG
Hệ thống hiển thị báo giá và thông tin sản phẩm sử dụng bộ xử lý trung tâm ESP8266 để kết nối Internet Các quản trị viên nhập dữ liệu sản phẩm trực tiếp từ website, lưu trữ trong cơ sở dữ liệu MySQL Sau đó, dữ liệu từ MySQL được truyền về bộ xử lý trung tâm để xử lý và hiển thị thông tin từng loại sản phẩm trên các màn hình LCD khác nhau.
2.1.1 Mô Tả quy trình chuẩn bị thông tin
Trước khi nhập thông tin sản phẩm lên website, người quản trị cần nghiên cứu kỹ lưỡng các thông tin do nhà sản xuất cung cấp, bao gồm cấu hình, hình ảnh và chức năng Sau đó, dựa vào mục đích kinh doanh và tình hình thị trường hiện tại, họ sẽ tiến hành định giá sản phẩm một cách hợp lý.
2.1.2 Mô Tả quy trình nhập thông tin sản phẩm
Thông tin hiển thị trên màn hình LCD được quản lý bởi hệ thống website và cơ sở dữ liệu, được cập nhật liên tục khi có sản phẩm mới hoặc khi quản trị viên thay đổi thông tin sản phẩm Khi cập nhật thông tin mới, quản trị viên cần chuẩn bị dữ liệu để nhập vào cơ sở dữ liệu, sau đó hệ thống sẽ trích xuất thông tin từ database để hiển thị trên màn hình Nhân viên bán hàng sẽ dựa vào thông tin hiển thị trên LCD để sắp xếp sản phẩm trên tủ bán hàng một cách hợp lý.
GIỚI THIỆU PHẦN CỨNG
Các thiết bị, linh kiện mà đề tài sử dụng được phân loại như sau:
Thiết bị đầu vào: Bàn phím (Máy tính)
Thiết bị đầu ra: Module giao tiếp I2C, LCD 20x4
Thiết bị điều khiển trung tâm: Vi điều khiển ESP8266, máy tính
Các chuẩn dữ liệu truyền nhận: I2C, Internet
Thiết bị giao diện điều khiển: Máy tính
2.2.1 Vi điều khiển a Rasberry pi
Raspberry Pi là một máy tính mini tích hợp đầy đủ các thành phần cần thiết như CPU, GPU, RAM, khe cắm thẻ nhớ microSD, Wi-Fi, Bluetooth và cổng USB, cho phép người dùng sử dụng như một máy vi tính Hình ảnh của Raspberry Pi được thể hiện trong hình 2.1.
Thông số kỹ thuật của Rasberry pi 3 như sau:
1.2GHz 64-bit Quad-Cortex ARM Cortex-A53 CPU (BCM2837)
Video Core IV multimedia/3D graphics core @400MHz/300MHz
Giao tiếp camera CSI), màn hình (DSI)
Khe cắm thẻ nhớ SD card
Raspberry Pi là một máy tính mini mạnh mẽ với nhiều ứng dụng, nhưng chi phí cao đã khiến nhóm em quyết định không lựa chọn vi điều khiển này Thay vào đó, nhóm em đã chọn Arduino Mega 2560.
Arduino Mega 2560 là một board mạch vi điều khiển dựa trên vi điều khiển AVR Atmega 2560, cung cấp 54 chân I/O, trong đó có 15 chân output hỗ trợ chức năng PWM Board này cũng bao gồm 16 chân đầu vào Analog, 4 cổng UART, 1 thạch anh 16MHz, 1 cổng USB, 1 jack nguồn, 1 header và 1 nút nhấn reset Hình ảnh của Arduino Mega 2560 được thể hiện trong hình 2.2.
Arduino Mega 2560 có đầy đủ tính năng xử lý, nhưng khi sử dụng kết nối mạng không dây, cần thêm module Wifi, làm cho hệ thống trở nên phức tạp Do đó, nó không phù hợp cho đề tài Thay vào đó, ESP8266 NodeMCU là lựa chọn tốt hơn.
ESP8266 NodeMCU là một bộ phát triển dựa trên chip Wifi SoC ESP8266, tích hợp bộ thu phát Wifi Nó cho phép người dùng lập trình và nạp mã trực tiếp thông qua trình biên dịch của Arduino, mang lại sự tiện lợi cho các dự án IoT.
ESP8266 NodeMCU có khả năng quét và kết nối đến bất kỳ mạng Wifi nào (Wifi Client), cho phép thực hiện các tác vụ như lưu trữ và truy cập dữ liệu từ Server Nó cũng có thể tạo điểm truy cập Wifi (Wifi Access Point) để các thiết bị khác kết nối và giao tiếp Đồng thời, ESP8266 hoạt động như một Server để xử lý dữ liệu từ các thiết bị sử dụng Internet Với những ưu điểm vượt trội, ứng dụng đa dạng và giá thành hợp lý, ESP8266 là lựa chọn lý tưởng cho các dự án IoT.
NodeMCU là sự lựa chọn hàng đầu cho đề tài mà nhóm chúng em nghiên cứu Hình ảnh ESP8266 NodeMCU như hình 2.3
Các thông số kỹ thuật của ESP8266 NodeMCU như bảng 2.1
Bảng 2.1 Thông số kỹ thuật của ESP8266 NodeMCU
Thông số Giá trị Điện áp hoạt động 9-12V
Số chân ngõ vào ra số 13
Dòng DC trên mỗi I/O 12mA
Tần số hoạt động 80MHz-160MHz
ESP8266: Bộ xử lý trung tâm, tích hợp bộ thu phát Wifi, có bộ nhớ Flash 4MB
Chân I/O của hệ thống bao gồm 13 chân GPIO (D0-D8, RX, TX, SD2, SD3) với chức năng ngõ vào và ngõ ra Người dùng có thể điều khiển các chân này thông qua các hàm pinMode(), digitalWrite() và digitalRead() Ngoài D0, các chân còn lại hỗ trợ các chuẩn giao tiếp I2C và PWM.
Cổng Micro USB trên ESP8266 NodeMCU cho phép người dùng giao tiếp với máy tính thông qua cáp USB Qua cổng này, lập trình viên có thể nạp chương trình cho ESP8266 NodeMCU và cung cấp nguồn điện 5V để thiết bị hoạt động.
Giới thiệu về chip ESP8266 [5]
ESP8266 là một vi điều khiển tích hợp module Wifi, cho phép điều khiển các thiết bị ngoại vi thông qua Internet Sử dụng chip ESP8266 SoC (System on Chip), nó phù hợp cho các ứng dụng cần kết nối, thu thập dữ liệu và điều khiển từ xa.
Sử dụng vi điều khiển 32bit công suất thấp
Hổ trợ Flash ngoài từ 512MB đến 4MB
64KB RAM thực thi lệnh
Hỗ trợ chuẩn Wifi EEE 802.11 b/g/n, tích hợp giao thức TCP/IP
Wifi 2.4 GHz, hỗ trợ WPA/WPA2
Hỗ trợ các chuẩn giao tiếp UART, SPI, I2C, I2S
Chuẩn điện áp hoạt động 3.3V
Có 3 chế độ hoạt động: Client, Access point, Both Client and Access point
Hỗ trợ các chuẩn bảo mật: OPEN, WEP, WPA_PSK, WPA2_PSK
Sơ đồ chân ESP8266 như hình 2.5
Hình 2.5 Sơ đồ chân ESP8266 Bảng 2.2 Chức năng các chân ESP8266
Thứ tự Tên tín hiệu I/O Mô tả
1 VDDA Nguồn Điện áp tương tự từ 2.5 V– 3.6V
2 LNA I/O Cổng giao tiếp RF
Trở kháng đầu ra chip z9 + j6 Ω
3 VDD3P3 Nguồn Điện áp khuếch đại 2.5 V– 3.6V
4 VDD3P3 Nguồn Điện áp khuếch đại 2.5 V– 3.6V
6 TOUT I Chân ADC Chân này được sử dụng để kiểm tra điện áp cung cấp điện của VDD3P3 và điện áp đầu vào của TOUT
7 CHIP_EN I Chân cho phép chip
Mức cao: Bật, chip hoạt động bình thường
Mức thấp: Tắt, dòng điện nhỏ tiêu thụ
11 VDDPST Nguồn Điện áp cũng cấp IO và điện áp số
12 MTCK I/O GPIO13; HSPI_MOSI; UART0_CTS
13 MTDO I/O GPIO15; HSPI_CS; UART0_RTS
14 GPIO2 I/O UART Tx trong quá trình lập trình
17 VDDPST Nguồn Điện áp cũng cấp IO và điện áp số
18 SDIO_DATA_2 I/O Kết nối với chân SD_D2; SPIHD;
19 SDIO_DATA_3 I/O Kết nối với chân SD_D3; HSPIWP;
20 SDIO_CMD I/O Kết nối với chân SD_CMD; SPI_CS0;
21 SDIO_CLK I/O Kết nối với chân SD_CLK; SPI_CLK;
22 SDIO_DATA_0 I/O Kết nối với chân SD_D0; SPI_MISO;
23 SDIO_DATA_1 I/O Kết nối với chân SD_D1; SPI_MOSI;
25 U0RXD I/O UART Rx trong quá trình Flash;
26 U0TXD I/O UART Tx trong quá trình Flash;
27 XTAL_OUT I/O Kết nối với đầu ra thạch anh, có thể sử dụng để cung cấp BT đầu vào xung clock
28 XTAL_IN I/O Kết nối với ngỏ vào thạch anh
29 VDDD Nguồn Điện áp tương tự 2.5V – 3.6V
30 VDDA Nguồn Điện áp tương tự 2.5V – 3.6V
31 RES12K I Kết nối với điện trở 12 KΩ và kết nối với đất
32 EXT_RSTB I Tín hiệu đặt lại bên ngoài (hoạt động ở mức thấp)
2.2.2 Màn hình giao diện LCD
Trên thị trường hiện nay, có nhiều loại màn hình LCD với kích thước đa dạng, từ vài ký tự đến hàng chục ký tự, và từ 1 hàng đến vài chục hàng Một ví dụ điển hình là màn hình LCD 20x4, với 4 hàng và mỗi hàng chứa 20 ký tự Ngoài ra, còn có các loại màn hình LCD cảm ứng như TFT và màn hình LCD của điện thoại Nokia Màn hình TFT – LCD có khả năng cảm ứng, mang lại trải nghiệm sử dụng tốt hơn.
TFT (Transistor Mỏng) là công nghệ màn hình sử dụng bóng bán dẫn mỏng và đèn nền để phát sáng qua các điểm ảnh, tạo ra hình ảnh chất lượng cao.
Hình 2.6 Màn hình TFT – LCD
Màn hình TFT-LCD là màn hình màu cảm ứng, có giá cao hơn so với màn hình LCD thông thường Tuy nhiên, với yêu cầu chỉ hiển thị thông tin sản phẩm, loại màn hình này không phù hợp Màn hình LCD Graphic Nokia 1202 là một lựa chọn tốt hơn cho nhu cầu này.
LCD Graphic Nokia – 1202 là loạt LCD Graphic có thể hiển thị được chữ số, ký tự, text, hình ảnh đen trắng Hình ảnh LCD Graphic Nokia – 1202 như hình 2.7
Hình 2.7 LCD Graphic Nokia – 1202 c Màn hình LCD 20x4 [1]
LCD có nhiều loại với số chân khác nhau, trong đó hai loại phổ biến nhất là 14 chân và 16 chân Sự khác biệt giữa chúng chủ yếu nằm ở các chân nguồn cung cấp, trong khi các chân điều khiển vẫn giữ nguyên Hình ảnh minh họa cho loại LCD 20x4 được thể hiện trong hình 2.8.
TT Tên tín hiệu I/O Mô tả
3 Vo Điện áp Điều khiển ánh sáng nền
Chân LCD được chia làm 4 dạng:
Chân cấp nguồn: Chân số 1 là chân nối mass (0V), chân thứ 2 là VDD nối với nguồn +5V Chân thứ 3 (Vo) dùng để điều chỉnh contrast thường nối với biến trở
Chân điều khiển trong mạch bao gồm chân số 4, được gọi là chân RS, có chức năng lựa chọn thanh ghi; chân R/W dùng để điều khiển quá trình đọc và ghi dữ liệu; và chân E, đóng vai trò là chân cho phép dạng xung chốt.
Các chân dữ liệu D7 – D0: Chân số 7 đến chân số 14 là 8 chân dùng để trao đổi dữ liệu giữa thiết bị điều khiển và LCD
Các chân A, K: Chân số 15 và chân số 16 là 2 chân dùng để cấp nguồn cho đèn nền có thể nhìn thấy vào ban đêm
Bảng 2.4 Các lệnh điều khiển LCD
(2) Clear display 0 0 0 0 0 0 0 0 0 1 Clear display & sets address counter to zero
(3) cursor home 0 0 0 0 0 0 0 0 1 0 Sets address counter to zero, returns shifted display to original position DDRAM contents remain unchanged
S Sets cursor move direction, specifies automatic shift
(5) Display control 0 0 0 0 0 0 1 D C B Turns display (D), cursor on/off (C) or cursor blinking (B)
0 0 Move cursor and shift display DDRAM contents remain unchanged
(DL), number of display lines (N,M) and voltage generator
0 0 1 Display data ram address Sets DDRAM address 39às addr
Address counter Reads buzzy flag & address counter
(11) Read data 1 1 Read data Reads data form CCGRAM or DDRAM
(12) Write data 1 0 Write data Write data to CCGRAM or
Dạng sóng các tín hiệu khi thực hiện đọc dữ liệu LCD như hình 2.9
Hình 2.9 Giản đồ thời gian chu kỳ đọc của LCD
Dựa vào dạng sóng ta có thể thấy được trình tự điều khiển như sau:
Điều khiển tín hiệu RS
Điều khiển tín hiệu R/W lên mức cao
Điều khiển tín hiệu E lên mức cao để cho phép
Xuất dữ liệu từ Bus dữ liệu DB7 – DB0
Điều khiển tín hiệu E về mức thấp
Dạng sóng các tín hiệu khi thực hiện ghi dữ liệu LCD như hình 2.10
Hình 2.10 Giản đồ thời gian chu kỳ ghi của LCD
Dựa vào dạng sóng ta có thể thấy được trình tự điều khiển như sau:
Điều khiển tín hiệu RS
Điều khiển tín hiệu R/W xuống mức thấp
Điều khiển tín hiệu E lên mức cao để cho phép
Xuất dữ liệu từ Bus dữ liệu DB7 – DB0
Điều khiển tín hiệu E về mức thấp
Điều khiển tín hiệu R/W lên mức cao trở lại
Bảng 2.5 Thông số thời gian của LCD
Thông số Ký hiệu Min Max Đơn vị Tên tín hiệu
Chu kỳ cho phép tc 500 ns E
Thời gian tín hiệu E lên mức cao tw 200 ns E
Thời gian chuyển trạng thái của tín hiệu E tf, tr 25 ns E
Thời gian thiết lập RS, R/W tsu 40 RS, R/W
Thời gian giữ RS, R/W th 10 ns RS, R/W
Thời gian đọc dữ liệu ngõ ra tD 60 120 ns DB0 – DB7
Thời gian đọc dữ liệu trong thời gian giữ tDH 20 ns DB0 – DB7
Thời gian thiết lập ghi dữ liệu tsu1 40 ns DB0 – DB7
Thời gian chờ ghi dữ liệu th1 10 ns DB0 – DB7
LCD sử dụng mã ASCII để hiển thị các ký tự, các sô, các ký hiệu…có tổng cộng
256 ký tự Mã ASCII như ở bảng 2.4
Sơ đồ khối bên trong LCD như hình 2.11
Hình 2.11 Sơ đồ khối của bộ điều khiển LCD
Sơ đồ khối gồm 4 phần: Bộ điều khiển LCD, bảng kí tự LCD, bộ thúc tín hiệu các đoạn và đèn nền
Bộ điều khiển LCD được trang bị 3 vùng nhớ nội, mỗi vùng đảm nhiệm một chức năng riêng biệt Để truy cập vào bất kỳ vùng nhớ nào, bộ điều khiển cần được khởi động trước.
TỔNG QUAN VỀ TRUYỀN DỮ LIỆU CHUẨN I 2 C [2]
I2C, viết tắt của Inter-Integrated Circuit, là một chuẩn truyền thông được phát triển bởi Philips Semiconductor và chính thức ra mắt vào năm 1990 Phiên bản mới nhất của I2C, V3.0, đã được phát hành vào năm 2007.
I2C là một giao thức truyền thông nối tiếp đa chip chủ, cho phép nhiều thiết bị hoạt động như Master trên cùng một bus Trong hệ thống này, một thiết bị Slave có thể trở thành Master nếu có khả năng Giao thức I2C sử dụng hai đường truyền là SDA (Serial DATA) cho việc truyền nhận dữ liệu và SCL (Serial Clock) để đồng bộ hóa xung nhịp Theo tiêu chuẩn I2C, các đường SDA và SCL được cấu hình trên các thiết bị để đảm bảo sự giao tiếp hiệu quả.
"Cực góp mở" yêu cầu sử dụng các "điện trở kéo lên" (pull-up resistor) cho các đường SDA và SCL Trong trạng thái nghỉ (Idle), hai chân SDA và SCL duy trì ở mức cao Hình 2.13 minh họa một mô hình mạng I2C cơ bản.
Thiết bị 1 Thiết bị 2 Thiết bị 3 Thiết bị n R1 R2
Hình 2.13 Mạng I 2 C với nhiều thiết bị và 2 điện trở kéo lên cho SDA, SCL
Master: Là chip khởi động quá trình truyền nhận, phát đi địa chỉ của thiết bị cần giao tiếp và tạo xung giữ nhịp trên đường SCL
Slave: Là chip có một địa chỉ cố định, được gọi bởi Master và phục vụ yêu cầu từ Master
SDA – Dữ liệu nối tiếp: Là đường truyền dữ liệu nơi tất cả thông tin về địa chỉ và dữ liệu được truyền theo thứ tự từng bit một.
I2C, bit có trọng số lớn nhất (MSB) được truyền trước nhất, đặc điểm này ngược lại với chuẩn UART
SCL (Serial Clock) là đường giữ nhịp trong giao thức I2C, một chuẩn truyền thông nối tiếp đồng bộ Đường SCL tạo ra các xung nhịp cần thiết cho quá trình truyền và nhận dữ liệu Mỗi xung trên SCL cho phép một bit dữ liệu trên đường SDA được lấy mẫu, nhưng chỉ khi SCL ở mức cao Do đó, trạng thái của SDA không được thay đổi khi SCL ở mức cao, ngoại trừ trong các điều kiện START và STOP Tuy nhiên, chân SDA có thể thay đổi trạng thái khi SCL ở mức thấp.
Hình 2.14 Giản đồ xung của SCL và SDA
Điều kiện bắt đầu (START Condition) xảy ra khi cả SDA và SCL đều ở mức cao Khi Master muốn thực hiện một "cuộc gọi", nó sẽ kéo chân SDA xuống thấp trong khi SCL vẫn giữ ở mức cao Trạng thái này được gọi tắt là S.
Điều kiện STOP là tín hiệu kết thúc quá trình truyền hoặc nhận dữ liệu trong giao thức I2C Khi Master muốn kết thúc quá trình, nó sẽ tạo ra một điều kiện STOP bằng cách kéo chân SDA lên cao trong khi chân SCL đang ở mức cao Điều kiện STOP chỉ được thực hiện sau khi địa chỉ hoặc dữ liệu đã được truyền hoặc nhận thành công.
REPEAT START là một tín hiệu được sử dụng trong giao thức truyền thông, nằm giữa tín hiệu START và STOP Trong khoảng thời gian này, các Master khác không thể tác động vào đường truyền Nếu sau khi hoàn tất quá trình truyền/nhận mà Master không gửi tín hiệu STOP mà lại gửi thêm tín hiệu START, thì đó được gọi là REPEAT START Tính năng này thường được áp dụng khi Master cần thu thập dữ liệu liên tục từ các Slaves.
Hình 2.15 Giản đồ xung khi có REPEAT START
Định dạng gói địa chỉ trên mạng I2C cho phép tất cả các thiết bị có thể đóng vai trò là Master hoặc Slave Mỗi thiết bị có một địa chỉ cố định gọi là Device address Khi Master muốn giao tiếp với một Slave, nó tạo ra một START condition và gửi địa chỉ Device address của Slave, tạo thành gói địa chỉ (Address Packet) có định dạng 9 bits Trong đó, 7 bit đầu tiên (SLA) chứa địa chỉ Slave, tiếp theo là bit READ/WRITE và bit ACK Mặc dù lý thuyết cho phép tối đa 2^78 thiết bị, nhưng một số địa chỉ không được sử dụng, như 1111xxx, và địa chỉ 0 được dùng cho “cuộc gọi chung” Bit READ/WRITE cho biết Master muốn “đọc” hay “ghi” vào Slave; nếu là 0 (W), Master yêu cầu ghi dữ liệu, còn 1 (R) là yêu cầu đọc dữ liệu Sau khi Master gửi 8 bits (SLA+R/W), nếu Slave nhận diện đúng địa chỉ, nó sẽ phản hồi bằng tín hiệu ACK Nếu không có Slave nào phản hồi, sẽ có tín hiệu NOT ACK, và Master cần xử lý tùy theo tình huống, như gửi STOP condition và thử lại với địa chỉ Slave khác Khi Master muốn đọc dữ liệu từ Slave có địa chỉ 43, nó sẽ dịch số 43 sang trái 1 vị trí và cộng thêm 1 để yêu cầu quá trình đọc.
Hình 2.16 Giản đồ xung khi có Address Packet Format
Cuộc gọi chung (General call) là khi Master gửi gói địa chỉ 0 (thực chất là 0+W) để thực hiện cuộc gọi đến tất cả các Slave Quyết định cho phép hay không cuộc gọi chung thuộc về các Slave Nếu được cài đặt cho phép, các Slave sẽ phản hồi lại Master bằng ACK Cuộc gọi chung thường được sử dụng khi Master muốn gửi dữ liệu đến các Slave Lưu ý rằng cuộc gọi chung với dạng 0+R là vô nghĩa vì Master không thể nhận dữ liệu từ tất cả các Slave cùng một lúc.
Định dạng gói dữ liệu trong giao thức I2C bao gồm 9 bits, trong đó 8 bits đầu tiên là dữ liệu và 1 bit cuối là bit ACK Sau khi Master phát địa chỉ và nhận được phản hồi ACK từ Slave, quá trình truyền dữ liệu bắt đầu Dữ liệu có thể được truyền từ Master đến Slave hoặc ngược lại, tùy thuộc vào bit R/W trong gói địa chỉ Khi Master gửi dữ liệu, nó sẽ phát 8 bits và Slave sẽ phản hồi bằng cách kéo SDA xuống 0 ở xung thứ 9 để xác nhận (ACK) Nếu Slave không phản hồi (NOT ACK), Master sẽ kết thúc quá trình truyền bằng cách phát STOP condition Hình ảnh minh họa dưới đây mô tả rõ hơn về định dạng gói dữ liệu trong I2C.
Hình 2.17 Giản đồ xung định dạng gói dữ liệu trong I 2 C
Quá trình truyền/nhận I2C bắt đầu từ Master, với việc phát đi một START condition và gửi gói địa chỉ SLA+R/W trên đường truyền Nếu có một Slave phản hồi, dữ liệu có thể được truyền hoặc nhận liên tiếp, với khả năng chuyển đổi từ 1 đến nhiều byte Khung truyền thông này thường được mô tả bằng hình ảnh minh họa.
Hình 2.18 Khung truyền dữ liệu trong I 2 C
TÍNH TOÁN VÀ THIẾT KẾ
GIỚI THIỆU
Thiết kế và thi công hệ thống hiển thị báo giá và thông tin sản phẩm chính xác và trực quan, cho phép cập nhật nhanh chóng trên màn hình LCD Hệ thống có khả năng kết nối nhiều màn hình LCD, hiển thị thông tin riêng biệt cho từng sản phẩm Đồng thời, xây dựng website quản trị giúp điều khiển, giám sát và cập nhật cơ sở dữ liệu lên Database, hiển thị thông tin từ Database xuống màn hình LCD qua Internet Đề tài nghiên cứu tập trung vào ứng dụng điều khiển và quản lý thông qua đường truyền Internet, với các nội dung thiết kế sẽ được trình bày chi tiết.
Thiết kế sơ đồ khối
Thiết kế giao diện hiển thị.
TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG
3.2.1 Thiết kế sơ đồ khối hệ thống
Hệ thống được cấu trúc thành ba khối chính: khối bàn phím, khối xử lý trung tâm và khối hiển thị Sơ đồ khối này được thiết kế dựa trên các yêu cầu của đề tài, như thể hiện trong hình 3.1.
KHỐI XỬ LÝ TRUNG TÂM
Hình 3.1 Sơ đồ khối hệ thống hiển thị báo giá và thông tin sản phẩm
KHỐI XỬ LÝ TRUNG TÂM
Khối xử lý trung tâm đóng vai trò quan trọng trong việc kết nối mạng Internet, thu thập dữ liệu từ webserver và xử lý thông tin trước khi gửi đến khối hiển thị màn hình LCD.
Khối hiển thị đóng vai trò quan trọng trong việc trình bày thông tin dưới dạng văn bản sau khi được khối trung tâm xử lý, giúp người dùng dễ dàng nắm bắt những thông tin cần thiết về sản phẩm.
Khối nguồn: Có chức năng tạo ra nguồn điện 5VDC từ lưới điện
220VAC cung cấp điện áp cho toàn mạch hoạt động
Khối bàn phím: Có chức năng nhập thông tin trên giao diện website
Web Server là một thành phần quan trọng, có chức năng lưu trữ cơ sở dữ liệu và giao diện điều khiển Nó cho phép người quản trị dễ dàng quản lý và cập nhật thông tin trên website.
3.2.2 Tính toán và thiết kế mạch a Khối hiển thị
Khối hiển thị có vai trò quan trọng trong việc trình bày thông tin thu thập từ khối xử lý trung tâm Để hiện thị thông tin dưới dạng văn bản, nhóm đã chọn sử dụng màn hình LCD 20x4 Màn hình LCD được kết nối với ESP8266 qua giao thức I2C, giúp tiết kiệm số lượng chân kết nối Bên cạnh việc hiển thị trên LCD, các số liệu cũng được cập nhật và trình bày trên giao diện web điều khiển.
Khối hiển thị gồm 3 màn hình LCD kết nối với nhau thông qua module I2C, sơ đồ nguyên lý khối hiển thị như hình 3.3
D1(SCL) SCL b Khối xử lý trung tâm
Khối xử lý trung tâm, được điều khiển bởi Module ESP8266 V12, có nhiệm vụ giao tiếp với web server để nhận thông tin từ cơ sở dữ liệu, sau đó xử lý chuỗi thông tin và truyền tải đến khối hiển thị Sơ đồ nguyên lý của khối xử lý trung tâm được thể hiện trong hình 3.4.
Hình 3.4 Sơ đồ nguyên lý khối xứ lý trung tâm
Chân RST của ESP8266 có chức năng reset ở mức thấp, do đó cần được kết nối với một nút nhấn cùng với điện trở kéo xuống mass Khi nhấn nút, chân RST sẽ tạo ra tín hiệu reset cho module.
0 để reset vi điều khiển về trạng thái ban đầu
Chân D1 của ESP8266 nối với chân SCL của module I2C để tạo xung clock
Chân D2 nối của ESP8266 nối với chân SDA của module I2C để truyền dữ liệu
Chân VCC và chân GND nối với nguồn cung cấp
Khi tính toán lựa chọn điện trở kéo xuống cho ESP8266, cần lưu ý rằng dòng tối đa cho phép trên mỗi chân I/O là 12mA Để đảm bảo MCU hoạt động an toàn và tiết kiệm năng lượng, ta chọn dòng điện tiêu thụ khi nhấn nút là 10mA với Vcc là 5V Áp dụng định luật Ohm, ta có thể tính toán giá trị điện trở cần thiết.
0.01= 500 Ω Vậy như kết quả tính toán ta chọn điện trở kéo xuống là 470 Ω c Thiết kế khối nguồn
Từ các thông số thiết kế của từng khối ta xác định được cái thông số của các linh kiện như sau:
Bảng 3.2 Thông số của các linh kiện
STT Tên linh kiện Điện áp Dòng điện
Tụ điện có vai trò quan trọng trong việc tích trữ năng lượng điện và làm mịn điện áp một chiều Để ổn định điện áp một chiều, ta thường mắc thêm tụ điện sau cầu diode Khi điện áp đỉnh của ngõ ra thứ cấp đạt 12V, điện áp đỉnh trên hai đầu dây của tụ điện cũng sẽ tương ứng với giá trị này.
Khi chọn tụ lọc nguồn, cần chọn tụ có điện áp định mức lớn hơn điện áp đỉnh trên hai đầu ngõ ra thứ cấp của biến áp, với trị số điện dung càng lớn càng tốt cho việc lọc nguồn Tụ lọc phù hợp là 2200µF/25V với áp vào 12V và dòng 1A IC ổn áp LM7805 cho phép nguồn vào tối đa 25V và dòng vào 1,5A, cung cấp nguồn ra ổn định từ 4,8V đến 5,2V, với điện áp ra ổn định là 5V, do đó LM7805 là lựa chọn lý tưởng cho ứng dụng này.
Sơ đồ nguyên lý khối nguồn như hình 3.5
Hình 3.5 Sơ đồ nguyên lý khối nguồn
Hình 3.6 Sơ đồ nguyên lý toàn mạch
3.2.4 Sơ đồ kết nối toàn mạch
THIẾT KẾ TRANG WEB QUẢN TRỊ
Trang web quản trị có chức năng cập nhật và lưu trữ thông tin sản phẩm Người quản trị cần tạo tài khoản để đăng nhập vào hệ thống, nơi có các menu như “trang chủ”, “quản lý sản phẩm”, “quản lý chi tiết sản phẩm” và “đăng xuất” Để quản lý sản phẩm, người quản trị chọn menu quản lý chi tiết sản phẩm, nơi hiển thị bảng thông tin sản phẩm Tại đây, họ có thể thêm mới, chỉnh sửa hoặc xóa thông tin bằng cách nhấn vào các nút tương ứng trên giao diện website.
Trang đăng nhập đảm bảo tính bảo mật cho hệ thống, cho phép chỉ các thành viên quản trị truy cập Tài khoản và mật khẩu được thiết lập và lưu trữ an toàn trong cơ sở dữ liệu.
Hình ảnh bố cục trang đăng nhập như hình 3.8
Hình 3.8 Bố cục trang đăng nhập hệ thống b Trang chủ
Trang chủ là giao diện chính của website, là trang mặc định mà người quản lý truy cập đầu tiên Từ trang này, quản trị viên có thể dễ dàng truy cập các trang khác như quản lý sản phẩm và chi tiết sản phẩm, cũng như thực hiện việc đăng xuất khỏi hệ thống Hình ảnh bố cục của trang chủ được thể hiện trong hình 3.9.
Hình 3.9 Bố cục trang chủ của hệ thống c Trang quản lý sản phẩm
Trang quản lý sản phẩm cung cấp thông tin cơ bản như tên sản phẩm, giá cả và chế độ bảo hành Những thông tin này sẽ được truyền đến khối xử lý trung tâm để xử lý và hiển thị trên màn hình.
Hình ảnh bố cục trang quản lý sản phẩm như hình 3.10 ĐẦU TRANG
Hình 3.10 Bố cục trang quản lý sản phẩm d Trang quản lý chi tiết sản phẩm
Trang quản lý chi tiết sản phẩm cung cấp thông tin đầy đủ như tên, giá, thời gian bảo hành, hình ảnh, mã IMEI và thông số cấu hình Người quản trị có khả năng thêm, sửa hoặc xóa thông tin sản phẩm dễ dàng Mọi thay đổi sẽ được cập nhật lên cơ sở dữ liệu và truyền tải xuống màn hình hiển thị qua Internet.
Hình ảnh bố cục trang quản lý chi tiết sản phẩm như hình 3.11 ĐẦU TRANG
Hình 3.11 Bố cục trang quản lý chi tiết sản phẩm
THI CÔNG HỆ THỐNG
GIỚI THIỆU
Hệ thống thi công bao gồm các bước quan trọng như trình bày kết quả thi công phần cứng của mô hình, lắp ráp mô hình và vẽ mạch layout Ngoài ra, quá trình này còn bao gồm lắp ráp và kiểm tra các linh kiện trong mạch, thiết kế vỏ thiết bị và giải thích lưu đồ giải thuật.
THI CÔNG HỆ THỐNG
Sơ đồ layout của mạch in như hình 4.1
Hình 4.1 Sơ đồ layout mạch hiển thị báo giá và thông tin sản phẩm
Việc bố trí linh kiện trong mạch điện rất quan trọng, cần sắp xếp sao cho thuận tiện cho việc sử dụng Ngoài ra, việc bố trí hợp lý các linh kiện cũng góp phần nâng cao tính thẩm mỹ của board mạch, đồng thời giúp phần mềm dễ dàng đi dây và giảm thiểu lỗi do quá nhiều dây.
Hình ảnh sơ đồ bố trí linh kiện như hình 4.2
Hình 4.2 Sơ đồ bố trí linh kiện của hệ thống báo giá và thông tin sản phẩm
Sơ đồ thiết kế một lớp với các linh kiện như ESP8266 và LCD được lắp đặt dưới dạng module, cho phép gắn chân trực tiếp lên board mạch thông qua các hàng rào bố trí Các hàng rào kết nối được đo đạc chính xác, đảm bảo các chân cắm được kết nối một cách chính xác.
Hình ảnh của mạch in như hình 4.3
Hình 4.3 Hình ảnh mạch in của hệ thống báo giá và thông tin sản phẩm
Bảng 4.1 Danh sách các linh kiện
STT Tên linh kiện Giá trị Số lượng
4.2.2 Lắp ráp và kiểm tra a Lắp ráp và thi công mạch
Sau khi đã có mạch in, nhóm tiến hành làm mạch in và gắn các linh kiện lên board đồng Mọi thao táo được trình bày các bước sau:
Để thực hiện mạch in thi công, bước đầu tiên là chuẩn bị đầy đủ dụng cụ cần thiết Bạn cần in các mạch in ra giấy (hay còn gọi là giấy in mạch), chuẩn bị bản đồng với kích thước phù hợp, sử dụng bàn là, bột sắt, bộ khoan mạch, cùng với các linh kiện có trong mạch.
Để thực hiện bước 2, bạn cần dùng bàn là để ủi mạch in lên mặt phải của các bản đồng, nơi có lớp đồng Hãy ủi đều tay cho đến khi mực trên mạch in bám hoàn toàn lên bản đồng, thời gian ủi khoảng từ 5 đến 10 phút.
Bước 3: Tháo bỏ lớp giấy in; nếu mực in không bám đều, bị đứt nét hoặc chạm nét, cần khắc phục bằng cách dùng bút mực để vẽ lại Sau đó, ngâm bản đồng trong dung dịch bột sắt và rửa cho đến khi dung dịch phản ứng và ăn mòn hết những chỗ không có mạch in Cuối cùng, rửa sạch mạch và lau khô.
Bước 4: Tiến hành khoan lỗ chân các linh kiện như hình 4.4
Hình 4.4 Khoan lỗ chân linh kiện
Khi hàn linh kiện vào mạch, cần chú ý đảm bảo chân linh kiện được hàn đúng chiều bằng cách tham khảo sơ đồ mạch và bố trí linh kiện trong phần mềm thiết kế Quá trình hàn yêu cầu sự khéo léo và tỉ mỉ, tránh sử dụng quá nhiều chì, không để mỏ hàn chạm vào các đường dây lân cận, và hạn chế thời gian tiếp xúc của mỏ hàn với linh kiện để tránh quá nhiệt và hỏng hóc.
Hình 4.5 Hàn linh kiện vào mạch
Bước 6: Kiểm tra độ chắc chắn các linh kiện, đảm bảo mối hàn tiếp xúc tốt, cắt phần chân dư của các linh kiện như hình 4.6
Hình 4.6 Cắt chân linh kiện b Kiểm tra lỗi và cân chỉnh mạch
Sau khi kiểm tra, mạch chạy ổn định, không có hiện tượng bị chập mạch
Sản phẩm hoàn tất như nhình 4.7.
ĐÓNG GÓI VÀ THI CÔNG MÔ HÌNH
4.3.1 Đóng gói bộ điều khiển
Bộ điều khiển được đóng gói bằng hộp nhựa tránh sự va đập hay bụi bẩn trong quá trình sử dụng Bên trong bộ điều khiển như hình 4.8
Hình 4.8 Bên trong bộ điều khiển
Biến áp được thiết kế đồng bộ với bộ điều khiển, được bảo vệ bởi lớp vỏ nhựa để đảm bảo an toàn điện Nó được cố định bằng ốc siết nhằm ngăn ngừa rung lắc, giảm nguy cơ chạm mạch và kéo dài tuổi thọ cho bộ điều khiển.
Bộ điều khiển sau khi được đóng gói như hình 4.9
Hình 4.9 Đóng gói bộ điều khiển
Mô hình có kích thước 49x14x17 được thiết kế với 3 màn hình hiển thị LCD, cho phép trưng bày các sản phẩm một cách rõ ràng Các sản phẩm sẽ được đặt trên mô hình tại vị trí có giá đỡ, tạo sự thu hút và dễ dàng cho người xem.
Bộ điều khiển được thiết kế gọn gàng và được bọc bằng nhựa, đặt bên trong mô hình, không chỉ giúp tiết kiệm không gian mà còn đảm bảo an toàn cho người sử dụng.
Mô hình sản phẩm sau khi thi công như hình 4.10
Hình 4.10 Mô hình sản phẩm
LẬP TRÌNH HỆ THỐNG
4.4.1 Lưu đồ giải thuật a Lưu đồ chính
Begin Khai báo thư viện Khai báo biến
Khởi tạo các thông số: địa chỉ máy chủ, I2C LCD,
Gửi lệnh lên Server để lấy dữ liệu về từ Server
Hình 4.11 Lưu đồ giải thuật chính
Chương trình bắt đầu bằng việc khai báo thư viện, biến và thông số IP của máy chủ cũng như địa chỉ I2C của LCD Sau khi hoàn tất khai báo, hệ thống sẽ kiểm tra kết nối Wifi của ESP8266 Khi kết nối thành công, hệ thống gửi lệnh đến Server để nhận dữ liệu Sau khi nhận được dữ liệu, hệ thống sẽ tách từng phần và chuyển tiếp dữ liệu xuống khối hiển thị LCD.
Lưu đồ kết nối Wifi
Khởi tạo các thông số, SSIG, Password
Cấu hình ESP chế độ Station/Client
Kết nối SSIG và Pasword
Kiểm tra có kết nối Wifi không?
Cài giá trị port 80, truy cập Server
S Xuất ra LCD “Ket noi Wifi that bai”
Hình 4.12 Lưu đồ giải thuật kết nối wifi Giải thích Lưu Đồ:
Khởi tạo các thông số ban đầu như tên cổng Wifi (SSID) và mật khẩu, sau đó mở chế độ kết nối Wifi cho ESP Hệ thống sẽ kết nối đến SSID và mật khẩu của mạng nhà, kiểm tra kết nối Wifi Nếu kết nối thành công, hệ thống sẽ được kết nối Wifi, cài đặt cấu hình của port, truy cập vào Server và kết thúc Ngược lại, nếu kiểm tra không thành công, hệ thống sẽ thông báo “Kết nối Wifi thất bại” và kết thúc chương trình.
Lưu đồ xử lý tách chuỗi
Khởi tạo thông số ban đầu
Nhận chuỗi dữ liệu (line)
Tách dữ liệu từng sản phẩm
Tách ra 3 dữ liệu hiển thị 3 LCD
Xử lý thay đổi LCD
Xử lý tách từng thành phần 3 chuỗi LCD1,
Hình 4.13 Lưu đồ xử lý tách chuỗi
Sau khi kết nối Wifi và truy cập máy chủ, hệ thống nhận một chuỗi dữ liệu từ máy chủ Tuy nhiên, chuỗi này chưa được xử lý, do đó không thể hiển thị sản phẩm đúng Hệ thống sẽ gán dữ liệu vào ba màn hình LCD và tiếp tục tách từng thành phần của sản phẩm để gửi đến khối hiển thị.
Lưu đồ tách dữ liệu từng sản phẩm
Tách dữ liệu từng sản phẩm
Khởi tạo các giá trị, j = chiều dài chuỗi
Cắt chuỗi từ thứ tự dòng Đ Đ
Hình 4.14 Lưu đồ tách từng dữ liệu sản phẩm Giải thích Lưu Đồ:
Khi hệ thống đã nhận được dữ liệu, những đó là một chuỗi dài rất nhiều sản phẩm, ví dụ: lcd 1&0&IPhone 6+&122340029536&7000000&12 Thang&mo*lcd 2&0&Samsung S7 &111122333435&12990000&6 Thang&mo
Để tách từng sản phẩm, chúng ta cần xác định ký hiệu ‘*’ trước mỗi sản phẩm Bằng cách đếm đến ký tự ‘*’, chúng ta có thể lấy ra chuỗi tương ứng với từng sản phẩm.
Lưu đồ tách 3 sản phẩm hiển thị trên LCD
Tách ra 3 sản phẩm hiển thị 3 LCD
Hình 4.15 Lưu đồ xử lý tách 3 sản phẩm hiển thị trên LCD
Hệ thống chỉ hiển thị thông tin của 3 sản phẩm đã chọn từ nhiều sản phẩm có sẵn Mỗi chuỗi thông tin sản phẩm sẽ được gán một mã số nhất định Hệ thống sẽ kiểm tra mã số của từng chuỗi sản phẩm để xác định tính hợp lệ, nếu trùng khớp, sản phẩm sẽ được đưa vào dữ liệu hiển thị và tiếp tục xử lý.
Lưu đồ xử lý thay đổi LCD
Xử lý thay đổi LCD
Dữ liệu LCD mới khác tạm Đổi dữ liệu LCD Gán tạm = dữ liệu LCD mới
Hình 4.16 Lưu đồ xử lý thay đổi dữ liệu LCD
Trước khi hiển thị, hệ thống sẽ kiểm tra xem dữ liệu nhận từ Server có thay đổi hay không Nếu không có sự thay đổi, dữ liệu sẽ được hiển thị ngay lập tức; ngược lại, nếu có sự thay đổi, dữ liệu mới sẽ được thay thế.
Lưu đồ xử lý tách từng thành phần thông tin của 1 sản phẩm
Xử lý tách từng thành phần 3 chuỗi
Khởi tạo giá trị j = chiều dài chuỗi
Phần tử thứ i= & Địa chỉ từng thành phần = i+1 i=j
Cắt từng thành phần theo địa chỉ
Hình 4.17 Lưu đồ xử lý tách từng thông tin sản phẩm
Giai đoạn tách cuối cùng là cung cấp thông tin cần thiết của sản phẩm hiển thị trên LCD, với mỗi thông tin được bắt đầu bằng ký tự đặc biệt '&' Ví dụ: lcd 1&0&IPhone 6+&122340029536&7000000&12 Thang&mo.
Để tách chuỗi, chúng ta cần xác định vị trí của ký tự ‘&’ Tại mỗi vị trí này, ta sẽ tách từng phần tử và gán chúng vào chuỗi tương ứng, sau đó hiển thị kết quả.
Công việc cuối cùng là kiểm tra chế độ của thông tin phần tử mới cắt để xác định xem dữ liệu có phải là “dong” hay không Nếu dữ liệu là “dong”, màn hình nền của LCD sẽ được tắt, ngược lại, nếu dữ liệu khác, màn hình nền sẽ được bật.
4.4.2 Phần mềm lập trình cho vi điều khiển a Giới thiệu phần mềm lập trình
Arduino IDE là phần mềm lập trình cho Arduino, với môi trường đơn giản và ngôn ngữ Wiring dễ hiểu, dựa trên C/C++ Phần mềm này tương thích với Windows, Macintosh OS X và Linux, và hoàn toàn miễn phí nhờ tính chất mã nguồn mở.
To download the Arduino software, visit [Arduino's official website](https://www.arduino.cc/en/Main/Software) and select the "Windows ZIP file for non admin install" option Then, click on "JUST DOWNLOAD" to start the download process.
Bước 2: Sau khi đã tải được phần mềm, tiến hành cài đặt phần mềm Cài đặt xong chúng ta có giao diện hiển thị như 4.19
Hình 4.19 Giao diện phần mềm c Hướng dẫn sử dụng
Hình 4.20 Hướng dẫn sử dụng phần mềm
1: Biên dịch và kiểm tra lỗi lập trình
4: Mở chương trình đã được lưu trước
5: Lưu chương trình đang soạn thảo
6: Mở cửa sổ Serial Monitor để gửi và nhận giữ liệu giữa máy tính và Board Arduino
7: Tên của chương trình đang soạn thảo
9: Gửi báo lỗi hoặc chương trình upload thành công
11: Hiển thị trông tin của Arduino đang kết nối
Môi trường lập trình sử dụng ngôn ngữ C giúp người dùng dễ dàng thao tác lập trình, đặc biệt là khi đã có kiến thức nền tảng về ngôn ngữ này Bài viết sẽ giới thiệu phần mềm lập trình cho ESP8266 ESP-12E NodeMCU, một công cụ hữu ích cho các dự án IoT.
ESP8266 ESP-12E NodeMCU có môi trường lập trình tương tự như Arduino và sử dụng phần mềm Arduino IDE Để bắt đầu, người dùng cần tải Driver cho Module ESP8266 ESP-12E NodeMCU trên máy tính.
Bước 1: Truy cập vào địa chỉ để tải Driver về https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp- drivers
Bước 2: Vào chương trình Arduino IDE, Vào File→ Preferences, vào textbox
Additional Board Manager URLs thêm đường link sau vào http://arduino.esp8266.com/stable/package_esp8266com_index.json
Click OK để chấp nhận
Hình 4.21 Thêm đường link để tải driver
Tiếp theo Tool→Board→Boards Manager, đợi một lát để chương trình tìm kiếm
Ta kéo xuống và click vào ESP8266 by ESP8266 Community, click vào Install Chờ phần mềm tự động download và cài đặt
Kết nối Module vào máy tính Vào Tool→Board→ NodeMCU 0.9 (ESP -12 Module)
Sau khi chọn đúng tên Module, và cổng COM giao tiếp, chúng ta đã có thể lập trình cho ESP8266 ESP-12E NodeMCU e Chương trình hệ thống
Đoạn mã trên khai báo các biến cần thiết để kết nối WiFi, bao gồm SSID và mật khẩu Nó sử dụng mảng hai chiều để lưu trữ dữ liệu cho ba màn hình LCD và các biến riêng biệt để lưu tên sản phẩm, IMEI, giá, bảo hành và chế độ cho ba sản phẩm khác nhau Ngoài ra, mã cũng định nghĩa các biến số nguyên để theo dõi các chỉ số và trạng thái khác nhau trong quá trình xử lý Cuối cùng, địa chỉ IP của máy chủ được xác định bằng một mảng byte.
LiquidCrystal_I2C lcd3(0x27, 20, 4); void setup() { lcd1.init(); lcd2.init(); lcd3.init(); lcd1.backlight(); lcd2.backlight(); lcd3.backlight();
WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(100); lcd1.setCursor(0,0); lcd1.print("Connected wifi"); lcd2.setCursor(0,0); lcd2.print("Connected wifi"); lcd3.setCursor(0,0); lcd3.print("Connected wifi");
} delay(500); lcd1.clear(); lcd2.clear(); lcd3.clear();
The code establishes a connection and sends a POST request to "nhan_lcd.php" with the product name as a parameter It specifies the host as "localhost" and sets the connection to close after the request The response is read into a string variable, which is then converted into a character array The code extracts the substring starting from "lcd 1" and measures its length, followed by processing the string with the function "xu_ly_chuoi()".
{ lcd1.setCursor(0,0); lcd1.print("Connected fail"); lcd2.setCursor(0,0); lcd2.print("Connected fail"); lcd3.setCursor(0,0); lcd3.print("Connected fail"); client.stop();
4.4.3 Phần mềm lập trình Web Server a Giới thiệu phần mềm lập trình Web
VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC
4.5.1 Viết tài liệu hướng dẫn sử dụng
Mô hình đã được lắp đặt sẳn, để sử dụng ta làm theo trình tự các bước sau:
Bước 1: Cấp nguồn cho hệ thống, hệ thống sử dụng nguồn là 220V AC, khi cấp nguồn và mở công tắc nguồn thì đèn báo hiệu có điện sáng lên
Để truy cập vào hệ thống, bạn cần vào trang http://quanlydt.tk, sau đó sẽ xuất hiện cửa sổ đăng nhập Tại đây, hãy nhập tên đăng nhập "nhilam" và mật khẩu "2006" để vào trang chủ.
Bước 3: Khi truy cập vào trang chủ của hệ thống, trên thanh Menu ta có 2 trang là:
Trang thứ 1: Quản lý sản phẩm để chúng ta xem sơ bộ các sản phẩm cẩn hiển thị
Trang thứ 2 cung cấp chức năng quản lý chi tiết sản phẩm, cho phép người dùng thay đổi thông tin sản phẩm Tại đây, một bảng thông tin sẽ hiển thị với ba mục chính: Thêm, sửa và xóa.
Thêm LCD: Nếu muốn thêm thông tin sản phẩm mới ta điền những thông tin vào bảng sau đó click vào nút “Thêm LCD”
Sửa LCD: Nếu muốn thay đổi thông tin sản phẩm đã có, ta click vào
Khi chọn "Sửa", bảng thông tin sản phẩm sẽ xuất hiện, cho phép chúng ta điều chỉnh thứ tự hiển thị LCD Ví dụ, nếu thay đổi thành số 2, thông tin sản phẩm sẽ hiện trên LCD thứ 2 Ngoài việc thay đổi sản phẩm hiển thị, chúng ta cũng có thể tắt LCD ngay trong mục này bằng cách chuyển chế độ thành “mở” để bật hoặc “đóng” để tắt Sau khi hoàn tất chỉnh sửa, hãy nhấn “Sửa LCD” để lưu thay đổi.
Nếu muốn xóa thông tin của bất kỳ sản phẩm nào ta click vào “Xóa”
Lưu đồ quy trình thao tác như hình 4.34
Cấp nguồn cho hệ thống Đăng nhập vào hệ thống Điền thông tin vào bảng thông tin
Có nhấn Sửa Có nhấn Xóa
Hình 4.34 Lưu đồ quy trình thao tác
Cấp nguồn cho hệ thống: Hệ thống sử dụng nguồn 220V AC từ lưới điện
Vào địa chỉ trang web http://quanlydt.tk sẽ hiện ra một cửa sổ đăng nhập, tiến hành điền thông tin đăng nhập vào
Khi vào được trang chủ hệ thống sẽ có những thanh menu tùy chọn như “Quản lý sản phẩm”, “Quản lý chi tiết sản phẩm”, “Đăng xuất”
Để thêm sản phẩm mới, bạn cần nhấn vào thanh “Quản lý chi tiết sản phẩm”, sau đó một bảng thông tin sẽ xuất hiện, yêu cầu bạn điền các thông tin như tên, giá, hình ảnh, mã Imei, cấu hình, thời gian bảo hành và thứ tự hiển thị sản phẩm Sau khi hoàn tất, hãy nhấn “Thêm LCD” để sản phẩm mới được thêm vào cơ sở dữ liệu và hiển thị trên LCD.
Để thay đổi thông tin sản phẩm đã có, bạn chỉ cần nhấn vào nút “Sửa” Một bảng thông tin sẽ xuất hiện, cho phép bạn điền các thông tin cần thay đổi Sau khi hoàn tất, hãy nhấn “Sửa LCD” để lưu lại thay đổi.
Nếu muốn xóa thông tin của bất kỳ sản phẩm nào ta nhấn “Xóa” ngay lập tức sản phẩm đó sẽ được xóa khỏi cơ sở dữ liệu.