Mục lục:

Máy rút mã thông báo Coin-O-Matic: 11 bước
Máy rút mã thông báo Coin-O-Matic: 11 bước

Video: Máy rút mã thông báo Coin-O-Matic: 11 bước

Video: Máy rút mã thông báo Coin-O-Matic: 11 bước
Video: Đào Tiền Ảo là gì? - Giải thích cực dễ hiểu trong 5 phút 2024, Tháng bảy
Anonim
Image
Image

Tại văn phòng của chúng tôi, chúng tôi có một máy bán hàng tự động có thể lấy tiền thật hoặc mã thông báo. Ban quản lý quyết định rằng chúng tôi có thể nhận được một số đồ ngọt miễn phí (trong giới hạn) để giúp chúng tôi vui vẻ và hài lòng với mức lương thấp mà chúng tôi kiếm được. Vấn đề là, bạn sẽ kiểm soát điều đó như thế nào? Máy bán hàng tự động thuộc về một công ty bên ngoài, vì vậy việc sửa đổi máy bán hàng tự động là điều không cần thiết.

Nhập Frankenstein Coin-O-Matic, một sáng tạo của trí óc bệnh hoạn của tôi. Quyết định cách thực hiện điều này, tôi nghĩ rằng thẻ RFID sẽ là tốt nhất, cấp cho mỗi nhân viên một thẻ RFID và ghi lại thời gian thẻ RFID được vuốt. Khi thẻ được vuốt, mã thông báo sẽ được phân phát để sử dụng với máy bán hàng tự động (một lỗ thông hơi miễn phí). Mỗi lần quẹt thẻ TAG, hãy ghi lại thông tin trên thẻ SD. Số TAG cũng được tải lên "đám mây" bằng cách sử dụng LoraWAN. Tôi đã chơi với LoRaWAN và thethingsnetwork (TTN) với một số cảm biến nhiệt độ và độ ẩm, vì vậy chúng tôi có Cổng TTN. Cổng TTN là Raspberry PI 3 với bộ tập trung IMST được kết nối với TTN.

Bước 1: Hóa đơn nguyên vật liệu

  1. Một số Perspex 3mm
  2. Một số Perspex 1mm
  3. Arduino Mega
  4. Arduino Pro Mini
  5. Đài RFM95 Lora
  6. Mô-đun I2C đồng hồ thời gian thực RTC DS1307 tí hon
  7. Màu đồ họa TFT LCD 2,2 "240x320 ILI9341
  8. Bộ chuyển đổi mức hai chiều kênh 2 x 4
  9. NeoPixel Ring 24 - LED RGB WS2812
  10. Bộ khởi động RFID 13,56MHz
  11. Mô-đun WiFi của Bảng kiểm tra ESP8266 ESP12
  12. Mô-đun thẻ SD
  13. 5 x nút nhấn
  14. 2 x LED ba màu
  15. Rất nhiều và rất nhiều mối quan hệ cáp
  16. Rất nhiều jumper breadboard
  17. Gỗ 40mm x 40mm
  18. Mô-đun chuyển tiếp 2 kênh 5V 10 AMP
  19. Mô-đun cảm biến quang điện chùm tia hồng ngoại 5VDC

Bước 2: Bắt đầu xây dựng cơ sở từ gỗ và Perpex

Bắt đầu xây dựng cơ sở từ gỗ và Perpex
Bắt đầu xây dựng cơ sở từ gỗ và Perpex

Bắt đầu bằng việc xây dựng một chiếc hộp để chứa tất cả các thiết bị điện tử từ Perspex 3mm, Perspex và logo được cắt bằng máy CNC. Nắp trước của hộp chứa màn hình, các nút và một số đèn LED nhấp nháy. Đèn LED là đèn LED ba màu bình thường xoay vòng theo các màu, xem BOM

Sau đó, tôi đã sử dụng một số khối gỗ 40mm x40mm để xây dựng một nơi cho máy rút tiền xu và một máng cho mã thông báo vào. Bộ phân phối mã thông báo bao gồm 3 tấm tròn Perspex, tấm trên cùng và dưới cùng là Perspex 3mm và tấm ở giữa mang mã thông báo là Perspex 1mm. Cách thức hoạt động là đĩa ở giữa quay và lấy mã thông báo từ ngăn xếp và kéo nó xuống lỗ ở đĩa dưới cùng và mã thông báo rơi vào máng đựng mã thông báo vào bàn tay chờ đợi cáu kỉnh của một nhân viên đói khát nào đó.

Bộ xếp mã thông báo là một ống phun nước cũ mà tôi đã đặt xung quanh và đường kính hoàn toàn giống với các mã thông báo. Tôi đã khoan một số lỗ trên ống phun nước để bạn có thể xem có bao nhiêu mã thông báo được xếp chồng lên nhau để nạp thêm nếu cần. Ống phun nước được dán chặt vào tấm Perspex trên cùng.

Bước 3: Bộ phân phối mã thông báo

Bộ phân phối mã thông báo
Bộ phân phối mã thông báo
Bộ phân phối mã thông báo
Bộ phân phối mã thông báo
Bộ phân phối mã thông báo
Bộ phân phối mã thông báo

Động cơ dẫn động tấm giữa là động cơ đồng bộ xoay chiều 220V từ…. Tôi không biết, tìm thấy nó trong hộp phụ tùng của tôi, miễn là nó chậm và mạnh. Trục được dán vào tấm giữa bằng một ít keo epoxy gọi là Pratex. Mô-đun rơ-le được kích hoạt và dây điện được kết nối để làm cho động cơ chạy. Tôi đã khoan một số lỗ trên tấm đáy để chống ma sát, nếu nó tạo ra sự khác biệt, tôi không biết. 2 lỗ đã được khoét ở hai bên của tấm giữa để "lấy" các thẻ. Đường kính của các lỗ chỉ lớn hơn một chút so với đường kính của các mã thông báo, do đó sẽ có một số sai sót khi lấy các mã thông báo.

Bước 4: Phát hiện xem mã thông báo đã được phân phát hay chưa

Phát hiện xem mã thông báo đã được phân phát hay chưa
Phát hiện xem mã thông báo đã được phân phát hay chưa
Phát hiện nếu một mã thông báo đã được phân phối
Phát hiện nếu một mã thông báo đã được phân phối

Tôi đã sử dụng Mô-đun cảm biến quang điện cho việc này, chúng tôi không muốn tẩy chay một nhân viên nếu họ không nhận được mã thông báo sau khi quét thẻ. bây giờ chúng ta sẽ ?. Bản ghi chỉ được ghi vào thẻ SD, khi quá trình phát hiện mã thông báo thành công, nếu không có mã thông báo nào được phát hiện, màn hình sẽ chuyển sang trạng thái giận dữ, đổ lỗi cho dịch vụ trong công ty và dịch vụ đó thật tệ … Không có bản ghi nào được ghi vào trường hợp không có mã thông báo để phân phối. Tôi dán bóng bán dẫn hình ảnh vào đáy máng để mã thông báo sẽ phá vỡ chùm tia khi nó đi qua chùm tia

Bước 5: Điện tử

Thiết bị điện tử
Thiết bị điện tử

Arduino Mega - Đây là bộ não của Coin-o-Matic, tất cả các cảm biến, v.v. đều được kết nối với Mega

Arduino Pro Mini và RFM95 Lora Radio - Arduino Pro Mini và Arduino Mega được kết nối với nhau thông qua bus nối tiếp, khi một thẻ được quét, số thẻ sẽ được gửi trên bus nối tiếp từ Mega đến Pro Mini. Pro Mini luôn ở trong một vòng lặp, ngay khi nhận được thứ gì đó trên bus nối tiếp của Pro Mini, số thẻ được tải lên thethingsnetwork (TTN) bằng cách sử dụng LoraWan. Tôi chưa thực hiện bất kỳ tích hợp nào trên đó, nhưng kế hoạch sẽ là có một phiên bản AWS để lưu trữ và sắp xếp thông tin. Xem bước tiếp theo để biết thêm thông tin.

Mô-đun I2C đồng hồ thời gian thực RTC DS1307 tí hon - Khi Coin-O-Matic khởi động, nó sẽ đăng nhập vào mạng WiFi và lấy thời gian từ máy chủ NTP thông qua Mô-đun WiFi của Bảng kiểm tra ESP8266 ESP12 và sau đó đặt thời gian RTC cho phù hợp

Màu đồ họa 2.2 TFT LCD 240x320 ILI93412 - Màn hình chính, nó thường hiển thị đồng hồ và sẽ cung cấp một số từ suy nghĩ cho người dùng

Bộ chuyển đổi mức hai chiều 4 kênh - Vì chân kỹ thuật số của Mega là 5V, tôi cần bộ chuyển đổi giao tiếp ở mức an toàn với một số mô-đun

NeoPixel Ring 24 LED RGB WS2812 - Tạo ra một số ánh sáng làm người dùng choáng váng và nhầm lẫn

Bộ khởi động RFID 13,56MHz - Đầu đọc RFID

Mô-đun thẻ SD - Viết số thẻ, ngày và giờ cho mỗi lần quẹt thẻ

Các nút nhấn - Quản trị viên có thẻ chính, sẽ tải các thẻ mới và tôi sử dụng một trong các nút để tạm dừng hiển thị cho đến khi họ có thể sao chép số thẻ và ghi lại ai có thẻ. 4 nút còn lại có dây nhưng không được sử dụng tại thời điểm này

Đèn LED ba màu - Nhiều ánh sáng hơn để gây chói mắt và nhầm lẫn cho người dùng

Rất nhiều và rất nhiều mối quan hệ cáp - Hãy thử và nhận một số thứ tự cho tất cả các dây

Rất nhiều jumper breadboard - Lên dây cót

Mô-đun chuyển tiếp 2 kênh 5V 10 AMP 5VDC - Một rơle được sử dụng để cấp nguồn cho động cơ phân phối tiền xu và một rơle còn lại để cấp nguồn cho mô-đun ESP8266, chương trình mô-đun ESP8266 cũng ở trong một vòng lặp, ngay khi có nguồn, nó sẽ đăng nhập vào mạng WiFi và thực hiện cuộc gọi theo thời gian NTP. Để giảm thiểu các cuộc gọi thời gian NTP, tôi quyết định cấp nguồn cho nó bằng rơ le, IE kích hoạt rơ le, kích hoạt mô-đun ESP, mô-đun ESP lấy thời gian và chuyển tiếp nguồn cho mô-đun lại xuống… Và nó cũng tạo ra âm thanh nhấp chuột rất hay

Mô-đun cảm biến quang điện chùm tia hồng ngoại - Để phát hiện xem mã thông báo đã được phân phát hay chưa

Bước 6: Bảng cảm biến LoRaWAN

Bảng cảm biến LoRaWAN
Bảng cảm biến LoRaWAN

Các tập tin thiết kế Eagle được đính kèm, bảng do tôi làm, nhưng tôi sử dụng một công ty để tự sản xuất bảng. Bo mạch này cũng có thể được sử dụng như một bo mạch cảm biến LoRAWAN, nó cực kỳ nhỏ, ~ 37mm x 54mm, nó phục vụ cho Cảm biến nhiệt độ và độ ẩm DHT 22 hoặc DHT 11.

Bước 7: TTN - Mạng lưới vạn vật

TTN - Mạng lưới vạn vật
TTN - Mạng lưới vạn vật

Có rất nhiều thông tin về điều này tại

www.thethingsnetwork.org/

Về cơ bản, Coin-O-Matic nói chuyện qua LoraWAN (Arduino Pro Mini với đài RFM95) đến một cổng (Raspberry Pi với bộ tập trung IMST) được kết nối với TTN thông qua internet, từ TTN, bạn có thể thực hiện rất nhiều tích hợp, IE Swagger, AWS, http, v.v., hình trên cho thấy một số thao tác vuốt thẻ trong văn phòng

Bước 8: Phần mềm

Phần mềm được chia thành 3 phần

getNTPtime_instructables - Chương trình ESP8266, bạn phải thay đổi ssid, mật khẩu và ntpServerName trước khi tải lên. Tôi sử dụng một lập trình viên cơ bản FTDI, kết nối mặt đất, TX và RX. Hãy nhớ chọn mô-đun ESP trong Arduino IDE và sắp xếp các chân trên ESP để đưa nó vào chế độ lập trình

Coin-O-Matic_instructables - Chương trình Coin-O-Matic. Điều này được tải trên Arduino Mega, các thay đổi cần thiết ở đây là số Thẻ chính -

byte masterCard [cardSize] = {121, 178, 151, 26};

pro_mini_instructables - Chương trình LoRaWAN. Điều này được tải trên Pro Mini, hãy xem sơ đồ để biết thêm chi tiết về cách nối dây radio và mã PIN nào để sử dụng. Địa chỉ thiết bị, Khóa phiên mạng và Khóa phiên ứng dụng phải được thay đổi sau khi đăng ký thiết bị trên TTN, nếu bạn sẽ sử dụng ABP

static const PROGMEM u1_t NWKSKEY [16] = {}; s]

static const u1_t PROGMEM APPSKEY [16] = {};

static const u4_t DEVADDR = 0x; // <- Thay đổi địa chỉ này cho mọi nút!

Bước 9: Khởi động

Video cho thấy rơ le đang được kích hoạt (rơ le 1), mô-đun ESP8266 đăng nhập vào Mạng WiFi, gửi tín hiệu thời gian getNTP và nhận thời gian từ máy chủ NTP, sau khi thời gian được cập nhật thành công, rơ le sẽ tắt và loại bỏ nguồn điện cho ESP8266. Nếu có sự cố xảy ra và không có bản cập nhật thời gian thành công, Arduino Mega sẽ khởi động lại và thử lại. Mô-đun ESP8266 và Arduino Mega được kết nối với nhau qua các cổng nối tiếp (Serial2 trên Mega), Arduino Mega lắng nghe câu trả lời từ ESP8266, thông báo có dạng như sau "UNX [và dấu thời gian kỷ nguyên]", Tôi đang ở GMT + 2, vì vậy trong mã Arduino Mega, tôi thêm GMT + 2 như sau

time_t gmtTimeVar = newTimeVar + 7200;

rtc.adjust (DateTime (gmtTimeVar));

Bước 10: Thêm / xóa thẻ

Image
Image

Thẻ Master được quét và màn hình hiển thị cho biết đây là thẻ chính. Thẻ mới được quét và số thẻ được hiển thị trên màn hình và nó cho người dùng thời gian để gỡ xuống số và ghi lại ai có thẻ mới. Số thẻ sẽ được ghi vào cơ sở dữ liệu ngay sau khi người dùng nhấn nút bên trái. Quy trình tương tự được thực hiện để xóa thẻ khỏi cơ sở dữ liệu

Bước 11: Một số video cho thấy hoạt động của Coin-O-Matic

Tôi đã sử dụng node-red để tích hợp với Telegram, node-red có một mô-đun tích hợp với TTN, vậy điều gì sẽ xảy ra khi bạn quét một thẻ?

  • Thẻ được quét
  • tệp txt trên thẻ SD được đọc để xem nó có phải là thẻ hợp lệ không
  • Nếu thẻ hợp lệ, dấu thời gian có số thẻ sẽ được ghi vào tệp txt trên thẻ SD
  • Số thẻ được gửi qua LoRaWAN và Cổng Raspberry PI tới mạng TTN
  • Node-red đăng ký các tin nhắn MQTT tại mạng TTN
  • Node-Red gửi số thẻ HEX sang DEC đã giải mã tới tệp tập lệnh bash chạy trên máy chủ cục bộ
  • Tập lệnh bash quét tệp txt với SỐ THẺ và TÊN
  • Tệp kịch bản bash tải tin nhắn lên Telegram BOT với cuộn tròn chứa SỐ THẺ và tên của người đó

Đẹp và phức tạp, tôi thích cách một nhiệm vụ đơn giản như vậy trở nên phức tạp quá

Hãy cho tôi biết suy nghĩ của bạn trong phần bình luận bên dưới

Đề xuất: