(Phòng chống) Nghệ thuật hắc ám với ESP8266 - Phần 4: Thủ khoa đại học có khó?

Mô tả dự án: 

Trong bài đầu tiên tui đã hướng dẫn các bạn hack kỳ thi quốc gia với module ESP8266. Dĩ nhiên là không ai cho các bạn cầm theo điện thoại vào phòng thi để mà các bạn mở lên tìm beacon đáp án. Tuy nhiên không ai cấm các bạn mang máy tính casio vào phòng thi cả. Bài này tui sẽ hướng dẫn các bạn gắn wifi vào chiếc máy tính casio huyền thoại để nhận phao thi từ bất kỳ nơi nào trên thế giới. Lưu ý là các bạn nên chế cháo có trách nhiệm, chớ nên kinh doanh buôn bán thành quả nếu các bạn không muốn cục tình báo C2 gõ cửa hỏi thăm. 

Nguyên lý

Việc đầu tiên ta cần làm là tháo ốc vít ở mặt sau ra để xem xét bo mạch. Nếu các bạn dùng máy Casio gốc thì bo trông khá là hoành tráng:

Còn tui chỉ dám hi sinh cái máy cùi TQ nên PCB nhìn đơn sơ hơn nhiều:

Điểm chung giữa hàng thật và hàng nhái là cục CPU đã được đổ 1 cục keo epoxy đen thui nên khả năng tiếp cận để viết lại firmware là con số không. Phương án kế là dùng arduino để hiện thị LCD. Việc này cũng không khả thi cho lắm vì LCD có mấy chục chân, mà ta lại không có sơ đồ của LCD này. Vậy chẳng lẽ bó tay? Câu trả lời là "không", ta vẫn dùng arduino (cụ thể là ESP8266) để hiển thị LCD, cùng với 1 trợ thủ đắc lực rất quen thuộc, đó là rơ-le.

Trước tiên, các bạn hãy để ý rằng PCB có rất nhiều điểm thử (test point), được đánh số K01, K02,... K34. Nếu các bạn lấy 1 sợi dây điện nối thử điểm K01 và K33, LCD sẽ hiện lên số 1. Thử hết 1 hồi thì các bạn sẽ thu về 1 bảng tương tự như sau (Nếu dùng casio):

 
K01
K02
K03
K21
/
AC
M+
K22
X
DEL
,
K23
(AC)
9
)
K24
6
(AC)
(
K31
5
8
ENG
K32
4
7
RCL
K33
1
2
3
K34
0
.
EXP

Bước tiếp theo là, thay vì tay cầm sợi dây nối 2 điểm ở hàng và cột lại với nhau để hiện số lên LCD, ta sẽ dùng relay đã quá quen thuộc với cộng đồng chúng ta. Giả sử bây giờ các bạn muốn dùng ESP8266 để hiện số 9 lên LCD, các bạn nối theo sơ đồ sau:

ESP8266 Relay Casio
3.3V +  
GND -  
D1 Signal  
  NO K23
  COM K02

Bây giờ nếu ta kích chân signal D1 lên mức HIGH (dùng lệnh digitalWrite(5, HIGH), relay sẽ đóng tiếp điểm giữa NO và COM, nối K23 và K02 lại với nhau và số 9 sẽ hiện lên LCD.

Việc kế tiếp là dùng ESP8266 để tạo 1 Access Point cùng với server để người nhà quăng phao vào cho bạn.

Code thoai

Các bạn vào git của ESP8266 để tải chương trình flasher về.

Sau đó các bạn vào git của tui để tải tập tin eg5.bin

Mở flasher lên, nhập đường dẫn của tập tin eg5.bin

Sau đó quay trở lại tab Operation, chọn đúng cổng COM và bấm Flash để nạp chương trình.

 

Nhận phao thoai

Sau khi các bạn nạp code xong thì ESP8266 sẽ hiện lên 1 AP có tên là WIFI CALCULATOR.  Pass của nó là 9876543210. Sau khi kết nối thành công, các bạn mở trình duyệt web (Chrome chẳng hạn), vào trang 192.168.4.1, bấm vào số bạn muốn hiện lên casio và bấm "Select".

Các bạn có thể xem clip demo ở đây: 

Xin chúc mừng, bây giờ các bạn đã sở hữu chiếc máy tính Casio Internet của Vạn Vật!

Bình luận

Thời buổi Internet của Vạn Vật nên mọi thứ sẽ được kết nối với Internet, làm cuộc sống của chúng ta thay đổi một cách bất ngờ. Tuy nhiên nó cũng có thể bị lạm dụng, điển hình là trong chuyện thi cử. Cách tốt nhất là bộ giáo dục nên bỏ hẳn việc thi tốt nghiệp (đặc biệt là thi trắc nghiệm), vì việc quản lý máy tính có kết nối internet của hàng trăm ngàn thí sinh là vấn đề hết sức khó khăn.

Như thường lệ, Vechai tui sẽ không đưa lên mã nguồn, và code sẽ tự động hết hạn trong vòng vài phút. Bạn nào thích thì có thể viết code để ESP8266 tự động reset sau vài phút, tuy nhiên coi chừng cháy EEPROM vì tui có lưu vài biến trong đó. wink 

lên
9 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Raspberry Pi Thiên Lý Nhãn (Phần 3): Khóa thông minh nhận dạng khuôn mặt với Raspberry Pi và OpenCV

Trong bài trước tui đã giới thiệu về việc nhận diện khuôn mặt với Raspberry Pi và webcam. Tuy nhiên bài chỉ dừng lại ở việc Raspberry Pi có thể nhận diện được khuôn mặt của bất kỳ ai đứng trước webcam mà thôi. Bài toán đặt ra là làm thế nào để Raspberry Pi nhận được khuôn mặt của chính bạn? Đây là một bài toán khó và thú vị. Khó là vì chúng ta cần thuật toán và khả năng xử lí hình ảnh mạnh. Thú vị là do ta có thể "chế cháo" kết hợp với các hệ thống bảo mật khác như vân tay, mật khẩu để tăng tính an ninh cho đề án của bạn. Vì độ phức tạp của đề án này nên tui sẽ chia ra làm 2 phần.

  • Phần đầu tiên là "phần mềm": chúng ta sẽ ghi lại khoảng 200 tấm hình webcam với khuôn mặt của bạn và huấn luyện máy tính với thuật toán chính diện (eigenfaces) của OpenCV. Do tài nguyên của Pi hạn hẹp nên bạn cần chạy phần này trên máy tính của mình. 
  • Phần tiếp theo là "phần cứng": ta nối Pi với relay và cho webcam chụp ảnh. Nếu Pi nhận diện được chính khuôn mặt của bạn thì sẽ kích relay.

Lưu ý là các bạn phải tải OpenCV về trên cả Pi và máy tính. Các bạn vào đây để download code và các tập tin cần thiết nữa: https://github.com/johnkimdinh/Facial-recognition-Raspberry-Pi-OpenCV

lên
3 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 

Trí thông mình nhân tạo với Watson IBM và Raspberry Pi (Phần 2): Nhận dạng khuôn mặt, giới tính và tuổi

Bài trước tui đã hướng dẫn các bạn làm quen với Watson IBM trên Raspberry Pi. Bây giờ chúng ta sẽ quay trở lại với bài toán nhận diện khuôn mặt. Trong bài khóa "thông minh" với OpenCV, dữ liệu nhận dạng khuôn mặt được đưa ra bởi một thuật toán "tĩnh" OpenCV trên laptop của các bạn và sau đó kết quả được chép thủ công vào Raspberry Pi. Raspberry chỉ việc dựa vào kết quả training và đưa ra kết quả nhận diện khuôn mặt. Đây chưa phải là giải pháp tối ưu vì giả sử bạn muốn thay đổi thuật toán mới hoặc train cho tốt hơn thì không thể thực hiện trên Pi được. Thay vậy, bạn có thể dùng dịch vụ cloud của Watson cho việc training và chỉ việc up hình lên để Watson nhận diện. Kết quả sẽ được trả về qua json với lượng thông tin phong phú hơn nhiều. 

lên
6 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: