สารบัญ:

เครื่องจ่ายโทเค็น Coin-O-Matic: 11 ขั้นตอน
เครื่องจ่ายโทเค็น Coin-O-Matic: 11 ขั้นตอน

วีดีโอ: เครื่องจ่ายโทเค็น Coin-O-Matic: 11 ขั้นตอน

วีดีโอ: เครื่องจ่ายโทเค็น Coin-O-Matic: 11 ขั้นตอน
วีดีโอ: วิธีขุด ETH ในพูล Ethermine ตัดจ่ายผ่าน Polygon Matic เอาให้จ่าย 0.005 ETH ทุกวัน ตั้งแต่ต้นจนจบ 2024, กรกฎาคม
Anonim
Image
Image

ที่สำนักงานของเรา เรามีตู้จำหน่ายสินค้าอัตโนมัติที่สามารถรับเงินจริงหรือโทเค็นได้ ผู้บริหารตัดสินใจว่าเราจะได้รับขนมฟรี (ภายในขอบเขต) เพื่อให้เรามีความสุขและพอใจกับเงินเดือนที่ต่ำที่เราได้รับ ปัญหาคือ คุณจะควบคุมมันอย่างไร? ตู้จำหน่ายสินค้าอัตโนมัติเป็นของ บริษัท ภายนอก ดังนั้นการดัดแปลงเครื่องจำหน่ายสินค้าอัตโนมัติจึงไม่เป็นปัญหา

ป้อน Frankenstein Coin-O-Matic การสร้างจิตใจที่ป่วยของฉัน เมื่อตัดสินใจว่าจะทำอย่างไร ฉันคิดว่าแท็ก RFID จะดีที่สุด ให้แท็ก RFID แก่พนักงานแต่ละคน และบันทึกว่าแท็ก RFID ถูกรูดกี่ครั้ง เมื่อแท็กถูกรูด จะมีการจ่ายโทเค็นสำหรับใช้กับเครื่องจำหน่ายสินค้าอัตโนมัติ (ช่องระบายอากาศฟรีหนึ่งช่อง) ทุกครั้งที่ TAG ถูกปัด ให้บันทึกข้อมูลลงในการ์ด SD หมายเลข TAG ยังอัปโหลดไปยัง "คลาวด์" โดยใช้ LoraWAN ฉันเคยเล่นกับ LoRaWAN และเครือข่ายของสิ่งต่างๆ (TTN) กับเซ็นเซอร์อุณหภูมิและความชื้น ดังนั้นเราจึงมีเกตเวย์ TTN TTN Gateway คือ Raspberry PI 3 ที่มีหัว IMST เชื่อมต่อกับ TTN

ขั้นตอนที่ 1: รายการวัสดุ

  1. Perspex 3mm บางตัว
  2. Perspex บาง 1 มม
  3. Arduino Mega
  4. Arduino Pro Mini
  5. RFM95 Lora Radio
  6. Tiny RTC DS1307 โมดูลนาฬิกาแบบเรียลไทม์ I2C
  7. สีกราฟิก 2.2" TFT LCD 240x320 ILI9341
  8. ตัวแปลงระดับสองทิศทาง 2 x 4 ช่อง
  9. แหวน NeoPixel 24 - RGB LED WS2812
  10. ชุดเริ่มต้น RFID 13.56MHz
  11. ESP8266 ESP12 บอร์ดทดสอบ WiFi โมดูล
  12. โมดูลการ์ด SD
  13. 5 x ปุ่มกด
  14. 2 x LED สามสี
  15. เคเบิ้ลไทร์มากมาย
  16. จัมเปอร์เขียงหั่นขนมจำนวนมาก
  17. ไม้ 40 มม. x 40 มม.
  18. โมดูลรีเลย์ 2 ช่อง 5V 10 AMP
  19. โมดูลโฟโตอิเล็กทริคเซนเซอร์ลำแสงอินฟราเรด 5VDC

ขั้นตอนที่ 2: เริ่มสร้างฐานจากไม้และ Perpex

เริ่มสร้างฐานจากไม้และ Perpex
เริ่มสร้างฐานจากไม้และ Perpex

เริ่มต้นด้วยการสร้างกล่องใส่อุปกรณ์อิเล็กทรอนิกส์ทั้งหมดจาก Perspex 3mm, Perspex และโลโก้ถูกตัดโดยใช้เครื่อง CNC ฝาครอบด้านหน้าของกล่องบรรจุหน้าจอ ปุ่ม และไฟ LED กะพริบบางดวง ไฟ LED เป็นไฟ LED สามสีปกติที่หมุนเวียนไปตามสีต่างๆ ดู BOM

จากนั้นฉันก็ใช้บล็อกไม้ขนาด 40 มม. x 40 มม. เพื่อสร้างที่สำหรับตู้หยอดเหรียญและรางสำหรับวางโทเค็น เครื่องจ่ายโทเค็นประกอบด้วยแผ่นกลม Perspex 3 แผ่น แผ่นด้านบนและด้านล่างเป็น Perspex 3 มม. และแผ่นตรงกลางที่บรรจุโทเค็นคือ Perspex 1 มม. วิธีการทำงานคือจานกลางหมุนและคว้าโทเค็นจากกองแล้วลากไปที่รูในเพลตด้านล่าง และโทเค็นจะหยดลงในรางโทเค็นลงในมือที่สกปรกรอพนักงานที่หิวโหย

โทเค็น stacker เป็นท่อสปริงเกอร์เก่าที่ฉันวางไว้และเส้นผ่านศูนย์กลางก็เหมือนกันทุกประการกับโทเค็น ฉันเจาะรูในท่อสปริงเกอร์เพื่อให้คุณเห็นจำนวนโทเค็นที่ซ้อนกันเพื่อเติมหากจำเป็น ท่อสปริงเกอร์ถูกติด superglued ไปที่แผ่น Perspex ด้านบน

ขั้นตอนที่ 3: เครื่องจ่ายโทเค็น

เครื่องจ่ายโทเค็น
เครื่องจ่ายโทเค็น
เครื่องจ่ายโทเค็น
เครื่องจ่ายโทเค็น
เครื่องจ่ายโทเค็น
เครื่องจ่ายโทเค็น

มอเตอร์ที่ขับเพลทตรงกลางเป็นมอเตอร์ซิงโครนัส 220V AC จาก …. ฉันไม่มีความคิด พบมันในกล่องอะไหล่ของฉัน ตราบใดที่มันช้าและแข็งแรง เพลาถูกติดกาวที่แผ่นตรงกลางด้วยกาวอีพ็อกซี่ที่เรียกว่าแพรเท็กซ์ โมดูลรีเลย์ถูกทริกเกอร์และต่อสายไฟเพื่อให้มอเตอร์ทำงาน ฉันเจาะรูที่แผ่นด้านล่างเพื่อตอบโต้การเสียดสี ถ้ามันสร้างความแตกต่าง ฉันไม่รู้ 2 รูถูกตัดที่ด้านใดด้านหนึ่งของแผ่นตรงกลางเพื่อ "คว้า" โทเค็น เส้นผ่านศูนย์กลางของรูนั้นใหญ่กว่าเส้นผ่านศูนย์กลางของโทเค็นเพียงเล็กน้อย ดังนั้นจึงมีข้อผิดพลาดบางประการในการจับโทเค็น

ขั้นตอนที่ 4: ตรวจสอบว่ามีการจ่ายโทเค็นหรือไม่

การตรวจจับว่ามีการจ่ายโทเค็นหรือไม่
การตรวจจับว่ามีการจ่ายโทเค็นหรือไม่
การตรวจจับว่ามีการจ่ายโทเค็นหรือไม่
การตรวจจับว่ามีการจ่ายโทเค็นหรือไม่

ฉันใช้โฟโตอิเล็กทริคเซนเซอร์โมดูลสำหรับสิ่งนี้ เราไม่ต้องการกีดกันพนักงาน หากเขา/เธอไม่ได้รับโทเค็นหลังจากสแกนแท็ก ตอนนี้เราจะ? บันทึกจะถูกเขียนลงในการ์ด SD เท่านั้น เมื่อการตรวจจับโทเค็นสำเร็จ หากตรวจไม่พบโทเค็น การแสดงผลจะเดือดดาล โทษบริการในบริษัทและบริการห่วย.. ไม่มีการบันทึกใดๆ กรณีที่ไม่มีการแจกเหรียญ ฉันติดโฟโต้ทรานซิสเตอร์ที่ด้านล่างของรางเพื่อให้โทเค็นแตกลำแสงเมื่อผ่านลำแสง

ขั้นตอนที่ 5: อุปกรณ์อิเล็กทรอนิกส์

อิเล็กทรอนิกส์
อิเล็กทรอนิกส์

Arduino Mega - นี่คือสมองของ Coin-o-Matic เซ็นเซอร์ทั้งหมดและอื่น ๆ เชื่อมต่อกับ Mega

Arduino Pro Mini และ RFM95 Lora Radio - Arduino Pro Mini และ Arduino Mega เชื่อมต่อกันผ่าน Serial Bus เมื่อแท็กถูกสแกน หมายเลขแท็กจะถูกส่งบน Serial Bus จาก Mega ไปยัง Pro Mini Pro Mini นั้นวนเวียนอยู่ตลอดเวลา ทันทีที่ได้รับบางสิ่งบน Serial Bus ของ Pro Mini หมายเลขแท็กจะถูกอัปโหลดไปยัง thethingsnetwork (TTN) โดยใช้ LoraWan ฉันไม่ได้ทำการบูรณาการกับสิ่งนั้น แต่แผนจะต้องมีอินสแตนซ์ AWS เพื่อจัดเก็บและจัดเรียงข้อมูล ดูขั้นตอนถัดไปสำหรับข้อมูลเพิ่มเติม

Tiny RTC DS1307 Real Time Clock I2C Module - เมื่อ Coin-O-Matic บูทขึ้น มันจะเข้าสู่เครือข่าย WiFi และรับเวลาจากเซิร์ฟเวอร์ NTP ผ่านโมดูล WiFi ของบอร์ดทดสอบ ESP8266 ESP12 แล้วตั้งเวลา RTC ตามนั้น

Graphical Color 2.2 TFT LCD 240x320 ILI93412 - หน้าจอหลัก ปกติจะแสดงนาฬิกาและจะให้ข้อคิดแก่ผู้ใช้

ตัวแปลงระดับสองทิศทาง 4 แชนเนล - เนื่องจากพินดิจิตอลของ Mega เป็น 5V ฉันจึงต้องการตัวแปลงเพื่อสื่อสารกับโมดูลบางตัวในระดับที่ปลอดภัย

NeoPixel Ring 24 RGB LED WS2812 - สร้างแสงเพื่อทำให้ผู้ใช้งุนงงและทำให้สับสน

ชุดเริ่มต้น RFID 13.56MHz - เครื่องอ่าน RFID

โมดูลการ์ด SD - เขียนหมายเลขแท็ก วันที่และเวลาสำหรับการปัดแท็กแต่ละครั้ง

ปุ่มกด - ผู้ดูแลระบบที่มีมาสเตอร์แท็ก จะโหลดแท็กใหม่ และฉันใช้ปุ่มใดปุ่มหนึ่งเพื่อหยุดการแสดงผลชั่วคราว จนกว่าพวกเขาจะสามารถคัดลอกหมายเลขแท็กและบันทึกผู้ที่มีแท็ก อีก 4 ปุ่มเป็นแบบมีสายแต่ไม่ได้ใช้งานในขณะนี้

ไฟ LED สามสี - แสงมากขึ้นเพื่อทำให้ผู้ใช้งุนงงและสับสน

เคเบิ้ลไทร์จำนวนมาก - ลองสั่งซื้อสายไฟทั้งหมดดูสิ

จัมเปอร์เขียงหั่นขนมจำนวนมาก - วางสาย

โมดูลรีเลย์ 2 ช่องสัญญาณ 5V 10 AMP 5VDC - รีเลย์ตัวหนึ่งใช้สำหรับจ่ายไฟให้กับมอเตอร์เครื่องจ่ายเหรียญและอีกตัวหนึ่งเพื่อจ่ายไฟให้กับโมดูล ESP8266 โปรแกรมโมดูล ESP8266 จะวนเป็นวงเช่นกัน ทันทีที่ได้รับพลังงาน มันจะทำงาน เข้าสู่ระบบเครือข่าย WiFi และรับการโทรตามเวลา NTP เพื่อลดการเรียกเวลา NTP ฉันตัดสินใจเปิดเครื่องด้วยรีเลย์, IE เปิดใช้งานรีเลย์, เปิดใช้งานโมดูล ESP, โมดูล ESP รับเวลาและรีเลย์กำลังไฟโมดูลอีกครั้ง… และมันก็ทำให้เสียงคลิกที่ดีเช่นกัน

โมดูลโฟโตอิเล็กทริคเซนเซอร์ลำแสงอินฟราเรด - เพื่อตรวจสอบว่ามีการจ่ายโทเค็นหรือไม่

ขั้นตอนที่ 6: บอร์ดเซนเซอร์ LoRaWAN

บอร์ดเซนเซอร์ LoRaWAN
บอร์ดเซนเซอร์ LoRaWAN

ไฟล์การออกแบบของ Eagle แนบมากับบอร์ดแล้ว บอร์ดเป็นของผม แต่ผมใช้บริษัทเพื่อผลิตบอร์ดเอง บอร์ดนี้สามารถใช้เป็นบอร์ดเซ็นเซอร์ LoRAWAN ได้เช่นกัน โดยมีขนาดเล็กมาก ~37 มม. x 54 มม. รองรับเซ็นเซอร์อุณหภูมิและความชื้น DHT 22 หรือ DHT 11 ได้เหมือนเดิม

ขั้นตอนที่ 7: TTN - เครือข่ายสิ่งของ

TTN - เครือข่ายสิ่งของ
TTN - เครือข่ายสิ่งของ

มีข้อมูลมากมายเกี่ยวกับเรื่องนี้ที่

www.thethingsnetwork.org/

โดยพื้นฐานแล้ว Coin-O-Matic พูดคุยผ่าน LoraWAN (The Arduino Pro Mini พร้อมวิทยุ RFM95) ไปยังเกตเวย์ (Raspberry Pi พร้อมหัว IMST) ที่เชื่อมต่อกับ TTN ผ่านอินเทอร์เน็ต จาก TTN คุณสามารถทำการบูรณาการได้มากมาย IE Swagger, AWS, http ฯลฯ รูปภาพด้านบนแสดงการปัดแท็กบางส่วนในสำนักงาน

ขั้นตอนที่ 8: ซอฟต์แวร์

ซอฟต์แวร์แบ่งออกเป็น 3 ส่วน

getNTPtime_instructables - โปรแกรม ESP8266 คุณต้องเปลี่ยน ssid รหัสผ่าน และ ntpServerName ก่อนอัปโหลด ฉันใช้โปรแกรมเมอร์พื้นฐาน FTDI เชื่อมต่อกราวด์ TX และ RX อย่าลืมเลือกโมดูล ESP ใน Arduino IDE และจัดเรียงพินบน ESP เพื่อนำไปใช้กับโหมดการเขียนโปรแกรม

Coin-O-Matic_instructables - โปรแกรม Coin-O-Matic สิ่งนี้ถูกโหลดบน Arduino Mega การเปลี่ยนแปลงที่จำเป็นที่นี่คือหมายเลข Master Tag -

ไบต์มาสเตอร์การ์ด[ขนาดการ์ด] = {121, 178, 151, 26};

pro_mini_instructables - โปรแกรม LoRaWAN สิ่งนี้ถูกโหลดบน Pro Mini ดูแผนผังสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการวางสายวิทยุและ PIN ที่จะใช้ ต้องเปลี่ยนที่อยู่อุปกรณ์ รหัสเซสชันเครือข่าย และรหัสเซสชันแอปหลังจากลงทะเบียนอุปกรณ์บน TTN แล้ว หากคุณจะใช้ ABP

คงที่ const PROGMEM u1_t NWKSKEY [16] = { };s]

คงที่ const u1_t PROGMEM APPSKEY [16] = { };

คงที่ const u4_t DEVADDR = 0x; // <-- เปลี่ยนที่อยู่นี้สำหรับทุกโหนด!

ขั้นตอนที่ 9: บูตเครื่อง

วิดีโอแสดงการเปิดใช้งานรีเลย์ (รีเลย์ 1) โมดูล ESP8266 เข้าสู่เครือข่าย WiFi ส่งสัญญาณเวลา getNTP และรับเวลาจากเซิร์ฟเวอร์ NTP หลังจากอัปเดตเวลาสำเร็จ รีเลย์จะปิดการทำงานและถอดพลังงานไปยัง อีเอสพี8266 หากมีข้อผิดพลาดและไม่มีการอัพเดทเวลาสำเร็จ Arduino Mega จะรีบูตและลองอีกครั้ง โมดูล ESP8266 และ Arduino Mega เชื่อมต่อกันผ่านพอร์ตอนุกรม (Serial2 บน Mega) Arduino Mega ฟังคำตอบจาก ESP8266 ข้อความดูเหมือน "UNX [และประทับเวลาของยุค]", ฉันอยู่ใน GMT+2 ดังนั้นในรหัส Arduino Mega ฉันเพิ่ม GMT+2 ดังนี้

time_t gmtTimeVar = ใหม่TimeVar+7200;

rtc.adjust(DateTime(gmtTimeVar));

ขั้นตอนที่ 10: การเพิ่ม/ลบ Tag

Image
Image

มีการสแกนแท็กหลักและจอแสดงผลระบุว่านี่คือแท็กหลัก แท็กใหม่จะถูกสแกนและแสดงหมายเลขแท็กบนหน้าจอและให้เวลาผู้ใช้ในการลบหมายเลขและบันทึกผู้ที่มีแท็กใหม่ หมายเลขแท็กจะถูกเขียนลงในฐานข้อมูลทันทีที่ผู้ใช้กดปุ่มซ้าย มีการปฏิบัติตามขั้นตอนเดียวกันเพื่อลบแท็กออกจากฐานข้อมูล

ขั้นตอนที่ 11: วิดีโอบางรายการแสดงการทำงานของ Coin-O-Matic

ฉันใช้ node-red เพื่อรวมเข้ากับ Telegram node-red มีโมดูลการรวมเข้ากับ TTN แล้วจะเกิดอะไรขึ้นเมื่อคุณสแกนแท็ก

  • สแกนแท็กแล้ว
  • ไฟล์ txt ในการ์ด SD ถูกอ่านเพื่อดูว่าเป็นแท็กที่ถูกต้องหรือไม่
  • หากแท็กถูกต้อง การประทับเวลาด้วยหมายเลขแท็กจะถูกเขียนลงในไฟล์ txt ในการ์ด SD
  • หมายเลขแท็กจะถูกส่งผ่าน LoRaWAN และ Raspberry PI Gateway ไปยังเครือข่าย TTN
  • Node-red สมัครรับข้อความ MQTT ที่เครือข่าย TTN
  • Node-Red ส่ง HEX ที่ถอดรหัสไปยังหมายเลขแท็ก DEC ไปยังไฟล์สคริปต์ทุบตีที่ทำงานบนเซิร์ฟเวอร์ในเครื่อง
  • สคริปต์ทุบตีจะสแกนไฟล์ txt ด้วย TAG NUMBERS และ NAMES
  • ไฟล์สคริปต์ทุบตีอัปโหลดข้อความไปยัง Telegram BOT โดยมี curl ที่มี TAG NUMBER และชื่อของบุคคล

ดีและซับซ้อน ฉันชอบที่งานง่าย ๆ แบบนี้กลายเป็นเรื่องที่ซับซ้อนมาก

แจ้งให้เราทราบว่าคุณคิดอย่างไรในความคิดเห็นด้านล่าง

แนะนำ: