Tôi không sử dụng Arduino-IDE mà sử dụng arduino-cli để tạo project ($ arduino-cli sketch new i2c_address_finder).
Sau khi tạo xong project, hãy thay đổi nội dung của file .ino giống như dưới đây, trước khi copy-paste, hay để tôi giải thích về quy trình:
Thư viện Wire dành cho giao thức với I2C. Method Wire.begin() dùng để xác lập board arduino chúng
ta đang sử dụng sẽ đóng vai trò là MAIN. Các linh kiện sensor, màn hình bên ngoài sẽ đóng vai trò là SUB.
Chúng ta muốn là arduino khi tìm được address I2C sẽ in ra trên màn hình monitor cho chúng ta xem. Giai đoạn này sẽ phụ thuộc vào Serial
Serial.begin(__baudrate__): Xác định truyền tín hiệu với giao thức Serial cùng baudrate. Trong code là 9600 (Liên quan đến bước )
Serial.print("__text__"): In text trên màn hình monitor
Địa chỉ I2C được miêu tả bởi 7 bit, có số lượng tối đa là 128 giá trị. Theo như tài liệu, trong số 128 giá trị khả dĩ, sẽ có các địa chỉ đặc
biệt, không được sử dụng cho thiết bị SUB. Trong code dưới đây, chúng ta vẫn sẽ quét qua. Và sử dụng hai method sau:
Wire.beginTransmission(__byte_address__): Khởi tạo kết nối đến SUB với địa chỉ __byte_address__
Wire.endTransmission(): Đóng kết nối, nếu giá trị trả về bằng 0 thì nghĩa là đã kết nối và đóng thành công. Ta tìm được địa chỉ I2C hợp lệ.
Serial.println(i, HEX): In giá trị address ở dạng hexadecimal
#include<Wire.h>voidsetup(){Wire.begin();Serial.begin(9600);delay(1000);Serial.println("Hexalink.xyz");Serial.println("Scanning...");}voidloop(){for(bytei=0;i<128;i++){Wire.beginTransmission(i);if(Wire.endTransmission()==0){Serial.print("Found at 0x");Serial.println(i,HEX);}}delay(2000);}
Bước 1: Find board & port
$ arduino-cli board list
Port Protocol Type Board Name FQBN Core
/dev/ttyACM0 serial Serial Port (USB) Arduino UNO arduino:avr:uno arduino:avr
Fully Qualified Board Name (FQBN): arduino:avr:uno
Port: /dev/ttyACM0
Bước 2: Compile
$ arduino-cli compile --fqbn arduino:avr:uno
Sketch uses 3704 bytes (11%) of program storage space. Maximum is 32256 bytes.
Global variables use 428 bytes (20%) of dynamic memory, leaving 1620 bytes for local variables. Maximum is 2048 bytes.
$ arduino-cli monitor -p /dev/ttyACM0 --config 9600
Monitor port settings:
baudrate=9600
bits=8
dtr=on
parity=none
rts=on
stop_bits=1
Connecting to /dev/ttyACM0. Press CTRL-C to exit.
Scat 0x27
Scanning...
Found at 0x27
Found at 0x27
Xem trên monitor, địa chỉ I2C 0x27 đã tìm được.
Credit
Kiến thức này là tôi lấy được từ nhiều nguồn, bao gồm cả ChatGPT để hiểu I2C và Serial trong bài viết này. Cảm ơn ChatGPT.
Hôm nay là 18/3/2026, tôi vừa update toàn bộ dependencies lên version mới nhất. Dự án chính thức chuyển sang trạng thái bảo trì.
Với các dự án tôi làm, tôi luôn cố gắng update library định kỳ (khoảng mỗi tháng một lần). Tin tôi đi, không ai muốn bảo trì một codebase cũ kỹ, lâu không update.
Ví dụ đơn giản: năm 2026 mà phải maintain Phoenix 1.0.0 trong khi hiện tại là 1.8.x — cảm giác không dễ chịu chút nào đâu.
Quay lại dự án này, nó sinh ra nhằm giải quyết các câu hỏi sau:
Làm sau để biết món hàng X đang ở đâu trong 30,000m2, 20 khu trưng bày?
Lịch sử giá bán, số lượng ra sao, ai là người thay đổi?
Mỗi khách hàng lại cho giá khác nhau, làm sao để điều chỉnh giá cho từng người?
Từ khi hàng trong kho cho đến tay khách hàng, trải qua những bước gì, ai giảm sát?
Khách hàng không hài lòng, muốn trả hàng, quy trình ra sao, ai giảm sát?
Trong số hàng hóa trả lại, có bao nhiêu cái có thể đưa lên kệ và bán tiếp?
Hàng hóa bao nhiêu lâu rồi chưa có người đến kiểm tra, đối soát?
Dự án này tôi làm một mình từ giai đoạn phân tích nghiệp vụ, viết phần mềm, triển khai.
Tôi đặc biệt không thích lạm dụng cloud, hay thêm nhiều technical stacks. Mỗi technical stack lại làm
cho người bảo trì đến sau mệt mỏi hơn một chút. Bên cạnh đó, phần cứng hiện tại đã quá rẻ, lượng data
cũng không lớn đến mức mà cần phải tối ưu hóa database, khách hàng cũng không cần hệ thống hoạt động
24/7 uptime 99%.
Càng đơn giản thì càng tốt. Tôi muốn như vậy.
Từ commit đầu tiên ngày 4/7/2025, đến hôm nay là 18/3/2026:
Khoảng 9 tháng phát triển phần mềm
Chính xác 777 commits - số đẹp 😇
Nhìn chung, tôi rất hài lòng với kết quả của dự án này, nó thực sự mang lại giá trị cho người dùng.
Hey, quên mất một cái rất quan trọng là tôi không chỉ viết phần mềm, tôi còn đến tận nơi, thu thập và nhập
dữ liệu vào hệ thống. Bằng cách thực làm và quan sát, tôi hiểu nỗi đau và tối ưu hóa nghiệp vụ tốt hơn ai
hết.
Có ba thứ mà tôi cực kỳ tâm đắc khi làm dự án này.
1. Luôn luôn cho phép con người sửa lỗi cho dù họ có làm điều ngu ngốc như thế nào chăng nữa
Việc lưu lại lịch sử thay đổi, có giá trị cũ và mới giúp người dùng sửa sai nếu có nhầm lẫn.
Tuyên ngôn là sai thì sửa, chửa thì đẻ.
Ngoại trừ việc sinh tử, tất cả thứ khác là chuyện nhỏ.
2. Không phải lúc nào cũng cần message queue.
Nếu dữ liệu chỉ được update bởi một hành động tại một thời điểm, không cần thêm queue.
Thay vào đó, mình dùng một cơ chế đơn giản gọi là Totem(tín vật):
Muốn update đơn hàng -> phải có Totem
Không có -> không được update
Update xong -> trả lại Totem
Nếu lỗi -> hệ thống tự thu hồi sau 15s
Nó giống như tín hiệu đường sắt: Chỉ một tàu được chiếm dụng đường ray tại một thời điểm.
Với hệ thống nhỏ, cách này đủ dùng, đơn giản.
❌ Tôi đã từng debug system sử dụng Kafka rồi, cảm ơn, quá đủ rồi ❌
3. Không nên lạm dụng AI trong quá trình nhập dữ liệu.
Dữ liệu đúng ngay từ đầu tốt hơn là phải xử lý hậu kỳ. Khi dữ liệu đến tay mình đã đúng, hệ thống phía sau nhẹ đi rất nhiều.
Tôi sẽ nói sơ qua một chút về khó khăn
Mỗi sản phẩm đều cần:
Dán tem (QR code + mã định danh)
Chụp ảnh
Nhập dữ liệu
Yêu cầu phải quét QR Code làm tăng đáng kể thời gian nhập liệu.
Giải pháp sau nhiều lần tối ưu đó là:
Phát triển app Android khác có tên là Batch Shot, nhằm mục tiêu chụp ảnh sản phẩm và chia ảnh vào folder riêng.
Trong quá trình chụp ảnh, quét luôn mã QR Code, bỏ vào file data.json trong từng folder. Khai thác tối đa dữ liệu
lúc chụp ảnh, không đợi phải xử lý hậu kỳ cho QR Code.
Sau một ngày chụp ảnh sản phẩm, zip toàn bộ thư mục ảnh, gửi lên server.
Server sau đó giải nén, có giao diện để nhập dữ liệu
Các field có tính lặp lại đều có cache, không cần chọn lại khi nhập dữ liệu mới.
Kết quả là tôi giảm cực kỳ nhiều số thao tác khi nhập dữ liệu, tốc độ tăng nhanh đáng kể.
Viết đến đây cũng đã rất dài rồi, tôi sẽ share một vài hình ảnh không quá riêng tư. 😇
[1] Phòng trưng bày tư nhân[2] Danh sách di sản[3] Chi tiết di sản[4] Lịch sử thay đổi
Có những người sinh ra để làm vừa lòng tất cả.
Có những người sinh ra để ẩn mình, đi nhẹ qua đời người khác.
…
Còn Quý Dậu 1993 thì không như vậy.
Bạn sinh ra mang trong mình một thứ khí chất rất khó nhầm lẫn:
Quý Thủy: mềm mại, sâu lắng, lãng mạn, tưởng tượng phong phú, thích làm mát lòng người khác;
Dậu Kim: rõ ràng, mạnh mẽ, trọng danh dự, trọng kỷ luật, không ưa lưng chừng;
Và nạp âm Kiếm Phong Kim: thanh kiếm sắc nhất trong hành Kim, chỉ thật sự thành hình khi đã trải qua lửa đỏ và búa nện rất đau.
Bạn vừa là nước, vừa là trang sức quý giá.
Vừa là sự dịu dàng biết lắng nghe, vừa là đường gươm thẳng đến mức dễ làm người khác và chính mình… bị thương. Chà! 🤨
Bên ngoài, người khác thấy một Quý Dậu năng động, lễ nghĩa, vui vẻ, có trách nhiệm, làm việc ra việc, nói chuyện đâu ra đó, không thích vòng vo, không chịu được sự giả tạo. Bạn dễ được tin cậy, dễ được giao việc, dễ bị gọi tên mỗi khi có rắc rối cần người đứng mũi chịu sào.
Nhưng bên trong, là một Quý Thủy rất sâu lắng: dễ nghĩ nhiều, dễ tổn thương vì gia đình, dễ lo lắng vì những điều người khác xem là nhỏ nhặt. Bạn sống sâu hơn vẻ ngoài của mình rất nhiều, nhưng lại ít khi nói ra, nên không mấy ai hiểu được hết.
Quý Dậu vì thế thường có đường đời không hề phẳng lặng.
Trong sự nghiệp, nhìn chung thì tuổi này hợp những việc cần trí tuệ, kỷ luật, tư duy logic, phân tích; từ tài chính, pháp luật, kiểm toán, nhân sự, quản lý đến kỹ thuật. Bạn có thể bước lên vai trò lãnh đạo nếu đủ kiên định, vì bản chất bạn là người công minh, rõ ràng, biết chịu trách nhiệm.
Trong tình cảm, bạn không dễ mở lòng, nhưng một khi đã chọn, bạn nghiêm túc và hết mình. Thứ bạn cần không phải là một người để “cho vui”, mà là một người đủ sâu để hiểu mình.
Nhưng thanh kiếm này cũng có nhược điểm:
Nếu không đủ kiên trì, bạn dễ “cả thèm chóng chán”, bỏ dở những thứ đáng lẽ làm đến cùng.
Nếu quá cứng, bạn dễ bị hiểu lầm là lạnh lùng, khó gần, khó chịu.
Nếu quá tự lập, bạn dễ kéo mọi chuyện về một mình gánh vác, rồi mệt mà không ai hay.
🔥 Trước khi bước vào năm Bính Ngọ 2026, hãy thử nhìn lại ba năm vừa rồi.
2023 Quý Mão: trong ngoài đều là cạnh tranh, áp lực, so kè. Mão Dậu tương xung, đánh thẳng vào các mối quan hệ và đời sống xã hội. Đây là năm nhiều Quý Dậu phải học bài học về cái tôi: nếu quá sắc, lời nói dễ làm người khác tổn thương; nếu quá thẳng, nhiều mối quan hệ sẽ rơi rụng. Nhưng chính trong sự xung khắc đó, bạn bắt đầu phân loại được đâu là người thật lòng, đâu là “cỏ dại”.
2024 Giáp Thìn: Hỏa khắc Kim, lại thêm việc Quý Thủy phải đi sinh cho Giáp Mộc, bạn như vừa bị đốt, vừa bị hút nước. Năm này không nhẹ nhàng - từ sức khỏe, tinh thần đến tài chính đều có những thử thách riêng. Đổi lại, Thìn Thổ sinh hợp Dậu Kim, vẫn có người giúp, vẫn có cơ hội mở, vẫn có những mối quan hệ đẹp xuất hiện. Nhưng mà tuổi này có cái đặc biệt, là đôi khi nội tâm lại tự cách ly khỏi nhân duyên, duyên tốt tới cũng chẳng chịu nhận lấy. Khổ tâm thiệt chứ!
2025 Ất Tỵ: Hỏa vẫn khắc Kim, ngũ hành vẫn đòi bạn trả bài về sức chịu đựng. Ất Mộc tiếp tục tiết khí Quý Thủy, làm gì cũng tốn thêm sức, thêm lo, thêm suy nghĩ. Tỵ Hỏa vừa là nơi trường sinh của Dậu Kim, vừa là nơi dễ kéo theo thị phi, tranh chấp, lẫn lộn giữa “cơ hội” và “cạm bẫy”. Đây là năm bạn bắt đầu thấy rõ: mình đã vững vàng đến đâu, mình còn yếu ở chỗ nào, mình đang chọn gì vì sợ hãi, và chọn gì vì thật lòng muốn.
🔥 Tất cả những điều đó dẫn bạn đến ngưỡng cửa 2026 Bính Ngọ:
Về mệnh, Kim của bạn phải đi sinh Thủy, mệnh tiết khí: năm của nhiều trăn trở, lo nghĩ, bận rộn, làm không hẳn ít, nhưng để có thành tựu rõ ràng thì phải trả giá bằng sức lực và sự đổi thay nội tâm.
Về can, Quý Thủy khắc Bính Hỏa: về lý, bạn có khả năng kiểm soát phần nào thế cuộc, xoay sở được trong một năm nóng, nhanh, áp lực nhiều. Nhưng Quý là Thủy âm, Bính là Hỏa dương - nước ít mà lửa nhiều, nếu không biết giữ sức, lửa vẫn có thể làm nước bốc hơi.
Về chi, Ngọ Hỏa khắc Dậu Kim, năm đối diện với Kị Thần: áp lực từ người khác, từ tập thể, từ hoàn cảnh bên ngoài. Nhưng Ngọ với Dậu không dữ dằn như Ngọ với Thân. Nghĩa là: bị khắc nhưng không bị “đập nát”, vẫn có chỗ nương nếu bạn biết sử dụng sự linh hoạt, mềm mại của Quý Thủy, thay vì chỉ dùng sự cứng của Dậu Kim.
🔥 Ở tầng Dịch lý, quẻ dành cho Quý Dậu năm 2026 là một bức tranh rất rõ: Trạch Thủy Khốn.
“Quẻ không nói điều chắc chắn sẽ xảy ra.
Quẻ nói điều đang vận động trong tâm bạn.”
Khốn là bị bủa vây bởi hoàn cảnh, trách nhiệm, cảm xúc, kỳ vọng. Thượng Đoài, hạ Khảm: bên trên là miệng cười, vẻ đẹp, sự duyên dáng, sự dễ chịu; bên dưới là nước sâu, là lo toan, là những xoáy ngầm. Người quân tử ở thời Khốn là người vẫn giữ được nụ cười, vẫn làm tròn bổn phận, vẫn không oán thán, dù hoàn cảnh chẳng dễ chịu chút nào.
Với Quý Dậu, Khốn của 2026 giống như một thử thách kép: bên ngoài, bạn phải giữ hình ảnh, giữ vai, giữ trách nhiệm, giữ “chuẩn mực” của mình; bên trong, bạn đối diện với nỗi cô đơn, với cảm giác không ai thật sự hiểu được những gì mình đang gánh.
Hào 2 động là người đang đứng giữa cảnh khốn. Không phải ở trên cao, cũng không ở tận đáy; là người đang bị kẹp giữa nghĩa vụ với người khác và nhu cầu của chính mình. Hào 2 trong Khốn dạy: biết tìm đúng người mà nương, biết chọn đúng điều mà giữ, chịu khó “cô lập” tạm thời để rèn tâm - thì sau này cảnh khốn này sẽ trở thành gốc rễ của khí chất.
Nội Khảm động trong họ Đoài khiến năm 2026 của bạn rất dễ gặp thị phi, hiểu lầm, lời ra tiếng vào. Thêm bản tính thẳng, lạnh lùng, đôi khi bất cần của Dậu, năm 2026 là năm bạn cần đặc biệt cẩn trọng với lời nói, với cách thể hiện cảm xúc. Đôi khi một câu nói “cho xong chuyện” lại là mũi dao cứa vào người mình thương. Đôi khi một cách nói “thật lòng quá” lại làm người đối diện không còn đủ sức ở lại.
Quẻ hỗ Phong Hỏa Gia Nhân nhắc đến chuyện bên trong “nhà”: không chỉ nhà vật lý, mà là gia đình, tổ ấm, nội tâm, những người rất gần bạn. Gia Nhân là đạo chỉnh lại bên trong trước khi nói chuyện bên ngoài. Giữa năm, rất có thể đời sống của bạn xoay nhiều hơn về chuyện gia đình, hôn nhân, con cái, người thân, hoặc bên trong chính mình: học cách quản trị cảm xúc, dọn lại những niềm tin cũ, hàn gắn những vết thương nhỏ nhưng kéo dài nhiều năm.
Quẻ biến Trạch Địa Tụy - tụ lại, hội tụ, gom về, nâng đỡ. Tụy là cảnh mọi người tụ lại lo cho việc lớn, là sự lắng xuống, chín lại sau một thời gian khốn khó. Cuối năm 2026, nếu bạn đi qua được Khốn bằng cách không phản ứng cực đoan, không đập vỡ mọi thứ khi mệt, mà biết nương dựa, biết chia sẻ, biết chọn người để cùng đứng, bạn sẽ bước sang khí Tụy: mối quan hệ ổn hơn, tài chính tụ lại hơn, niềm tin với người và với chính mình sâu sắc hơn.
🔥 Bóng tối (shadow):
Bóng tối của Quý Dậu trong năm nay mang hình bóng của “người bảo vệ kiệt sức” - một archetype thường gặp trong tính cách Kim: khi không biết cách dựa vào ai, người bảo vệ bắt đầu bảo vệ cả những người không cần, bảo vệ cả những thứ không thuộc trách nhiệm của mình, rồi tự trách mình vì không làm tròn mọi thứ.
Năm 2026 của Quý Dậu là thời điểm bạn phải học cách:
nhìn vào phần yếu mềm của mình mà không chê trách nó,
chạm vào nỗi sợ bên trong mà không hoảng loạn,
cho phép mình mềm yếu mà không cảm thấy xấu hổ.
Chỉ khi bạn dám đặt thanh kiếm xuống một chút, bạn mới thấy:
phần bóng tối ấy, thật ra… chính là nơi chứa nhiều ánh sáng chưa khai mở nhất của bạn!
🔥 Nếu bạn cảm thấy mình đang ngày càng khó tin tưởng ai, hãy nhìn lại xem bạn có đang đòi hỏi ở người khác thứ mà chính bạn cũng chưa từng cho bản thân: cơ hội được sai, được yếu, được mệt.
Nếu bạn cảm thấy mọi thứ đều đang “khó hơn bình thường”, hãy nhớ rằng cuộc đời đâu chỉ có giai đoạn thuận. Mùa thu vàng của Dậu phải đi qua mùa gặt - mà gặt thì luôn mỏi.
Nếu những tháng đầu năm và mùa Hè khiến bạn thấy luẩn quẩn, làm nhiều mà việc chậm, xin đừng vội nghĩ “mình vô dụng”. Quẻ Khốn đang dạy bạn bài học của sự kiên nhẫn, của “làm đúng” trước khi “làm nhanh”.
🔥 Tài vận năm 2026 với Quý Dậu.
Đầu năm và giữa năm, tiền dễ vào dễ ra, dễ tốn vì gia đình, vì người thân, vì những việc không lường trước.
Cuối năm, Tụy mở: cơ hội đầu tư, nhất là với đất cát, tích lũy lâu dài, có thể hiện ra cho những ai đã giữ được mình trong suốt giai đoạn khốn khó trước đó. Nhưng dẫu là cơ hội, quẻ vẫn dặn: kiểm soát lòng tham, tránh bị lừa vì quá tin, hoặc vì muốn “đổi đời nhanh”.
🔥 Quý Dậu là nữ, năm này điều quan trọng nhất là: “Hãy sống vì bản thân hơn một chút.”
Đừng yêu đến mức gánh hết mọi phần nặng về mình, rồi nhận phần thiệt như chuyện hiển nhiên. Người khác không đọc được trái tim bạn sâu đến thế đâu. (điều quan trọng đọc lại 3 lần cho tôi!)
🔥 Quý Dậu là nam, hãy học cách quản lý tiền bạc và cảm xúc.
Đừng xả stress bằng cách tiêu tiền bốc đồng. Đừng chứng minh bản lĩnh bằng vài lần “vung tay” rồi lại lặng lẽ lo âu một mình nhé!
“Khốn cảnh không làm khó bạn. Nó chỉ hỏi bạn: giữa tất cả những được mất này, bạn còn giữ được trái tim của mình hay không.”
Bạn thân mến,
Những gì tôi viết phản ánh khí vận chung của người tuổi Quý Dậu trong năm Bính Ngọ này. Số phận riêng của từng người chắc chắn sẽ có những khác biệt - bạn có thể khám phá thêm qua việc xem quẻ Kinh Dịch cho năm 2026 (nếu bạn cần có thể nh-ắ-n tôi)🙏
Nếu trong những dòng chữ này, bạn thấy bóng mình thấp thoáng đâu đó, bạn có thể gửi bài viết này cho những người bạn cùng tuổi Quý Dậu - để họ cũng bước vào năm Bính Ngọ 2026 với một chút chuẩn bị, một chút bình tâm, và một chút dịu dàng hơn với chính mình.