สารบัญ:
- ขั้นตอนที่ 1: รายการวัสดุ
- ขั้นตอนที่ 2: เริ่มสร้างฐานจากไม้และ Perpex
- ขั้นตอนที่ 3: เครื่องจ่ายโทเค็น
- ขั้นตอนที่ 4: ตรวจสอบว่ามีการจ่ายโทเค็นหรือไม่
- ขั้นตอนที่ 5: อุปกรณ์อิเล็กทรอนิกส์
- ขั้นตอนที่ 6: บอร์ดเซนเซอร์ LoRaWAN
- ขั้นตอนที่ 7: TTN - เครือข่ายสิ่งของ
- ขั้นตอนที่ 8: ซอฟต์แวร์
- ขั้นตอนที่ 9: บูตเครื่อง
- ขั้นตอนที่ 10: การเพิ่ม/ลบ Tag
- ขั้นตอนที่ 11: วิดีโอบางรายการแสดงการทำงานของ Coin-O-Matic
วีดีโอ: เครื่องจ่ายโทเค็น Coin-O-Matic: 11 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
ที่สำนักงานของเรา เรามีตู้จำหน่ายสินค้าอัตโนมัติที่สามารถรับเงินจริงหรือโทเค็นได้ ผู้บริหารตัดสินใจว่าเราจะได้รับขนมฟรี (ภายในขอบเขต) เพื่อให้เรามีความสุขและพอใจกับเงินเดือนที่ต่ำที่เราได้รับ ปัญหาคือ คุณจะควบคุมมันอย่างไร? ตู้จำหน่ายสินค้าอัตโนมัติเป็นของ บริษัท ภายนอก ดังนั้นการดัดแปลงเครื่องจำหน่ายสินค้าอัตโนมัติจึงไม่เป็นปัญหา
ป้อน Frankenstein Coin-O-Matic การสร้างจิตใจที่ป่วยของฉัน เมื่อตัดสินใจว่าจะทำอย่างไร ฉันคิดว่าแท็ก RFID จะดีที่สุด ให้แท็ก RFID แก่พนักงานแต่ละคน และบันทึกว่าแท็ก RFID ถูกรูดกี่ครั้ง เมื่อแท็กถูกรูด จะมีการจ่ายโทเค็นสำหรับใช้กับเครื่องจำหน่ายสินค้าอัตโนมัติ (ช่องระบายอากาศฟรีหนึ่งช่อง) ทุกครั้งที่ TAG ถูกปัด ให้บันทึกข้อมูลลงในการ์ด SD หมายเลข TAG ยังอัปโหลดไปยัง "คลาวด์" โดยใช้ LoraWAN ฉันเคยเล่นกับ LoRaWAN และเครือข่ายของสิ่งต่างๆ (TTN) กับเซ็นเซอร์อุณหภูมิและความชื้น ดังนั้นเราจึงมีเกตเวย์ TTN TTN Gateway คือ Raspberry PI 3 ที่มีหัว IMST เชื่อมต่อกับ TTN
ขั้นตอนที่ 1: รายการวัสดุ
- Perspex 3mm บางตัว
- Perspex บาง 1 มม
- Arduino Mega
- Arduino Pro Mini
- RFM95 Lora Radio
- Tiny RTC DS1307 โมดูลนาฬิกาแบบเรียลไทม์ I2C
- สีกราฟิก 2.2" TFT LCD 240x320 ILI9341
- ตัวแปลงระดับสองทิศทาง 2 x 4 ช่อง
- แหวน NeoPixel 24 - RGB LED WS2812
- ชุดเริ่มต้น RFID 13.56MHz
- ESP8266 ESP12 บอร์ดทดสอบ WiFi โมดูล
- โมดูลการ์ด SD
- 5 x ปุ่มกด
- 2 x LED สามสี
- เคเบิ้ลไทร์มากมาย
- จัมเปอร์เขียงหั่นขนมจำนวนมาก
- ไม้ 40 มม. x 40 มม.
- โมดูลรีเลย์ 2 ช่อง 5V 10 AMP
-
โมดูลโฟโตอิเล็กทริคเซนเซอร์ลำแสงอินฟราเรด 5VDC
ขั้นตอนที่ 2: เริ่มสร้างฐานจากไม้และ 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
ไฟล์การออกแบบของ Eagle แนบมากับบอร์ดแล้ว บอร์ดเป็นของผม แต่ผมใช้บริษัทเพื่อผลิตบอร์ดเอง บอร์ดนี้สามารถใช้เป็นบอร์ดเซ็นเซอร์ LoRAWAN ได้เช่นกัน โดยมีขนาดเล็กมาก ~37 มม. x 54 มม. รองรับเซ็นเซอร์อุณหภูมิและความชื้น DHT 22 หรือ DHT 11 ได้เหมือนเดิม
ขั้นตอนที่ 7: 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
มีการสแกนแท็กหลักและจอแสดงผลระบุว่านี่คือแท็กหลัก แท็กใหม่จะถูกสแกนและแสดงหมายเลขแท็กบนหน้าจอและให้เวลาผู้ใช้ในการลบหมายเลขและบันทึกผู้ที่มีแท็กใหม่ หมายเลขแท็กจะถูกเขียนลงในฐานข้อมูลทันทีที่ผู้ใช้กดปุ่มซ้าย มีการปฏิบัติตามขั้นตอนเดียวกันเพื่อลบแท็กออกจากฐานข้อมูล
ขั้นตอนที่ 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 และชื่อของบุคคล
ดีและซับซ้อน ฉันชอบที่งานง่าย ๆ แบบนี้กลายเป็นเรื่องที่ซับซ้อนมาก
แจ้งให้เราทราบว่าคุณคิดอย่างไรในความคิดเห็นด้านล่าง
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
วิธีการสร้าง 2 ผู้เล่น DIY Bartop Arcade ด้วยสล็อต Marquee Coin แบบกำหนดเองโดยใช้กล่องของ Pandora: 17 ขั้นตอน (พร้อมรูปภาพ)
วิธีการสร้าง 2 ผู้เล่น DIY Bartop Arcade ด้วยสล็อต Marquee Coin แบบกำหนดเองโดยใช้กล่องของ Pandora: นี่คือการสอนทีละขั้นตอนเกี่ยวกับวิธีการสร้างเครื่องอาร์เคดบาร์ผู้เล่น 2 คนที่มีช่องเหรียญแบบกำหนดเองที่สร้างขึ้นในกระโจม สล็อตเหรียญจะทำขึ้นเพื่อให้พวกเขารับเฉพาะเหรียญขนาดควอเตอร์ขึ้นไป อาร์เคดนี้ขับเคลื่อน
A Coin Cell Uv/แสงแฟลชสีขาวใน 30 นาทีหรือน้อยกว่า!: 4 ขั้นตอน
A Coin Cell Uv/แสงแฟลชสีขาวใน 30 นาทีหรือน้อยกว่า!: สวัสดีทุกคน! เมื่อวานฉันได้รับไฟ LED UV 5 มม. ฉันกำลังมองหาที่จะทำบางสิ่งบางอย่างกับสิ่งเหล่านี้มาระยะหนึ่งแล้ว ปฏิสัมพันธ์ครั้งแรกของฉันกับพวกเขาคือเมื่อสองสามปีก่อนระหว่างการเยือนจีน ฉันซื้อไฟพวงกุญแจกับสิ่งเหล่านี้และค่อนข้าง
Coin Cell Shrink Wrap Battery Pack: 5 ขั้นตอน (พร้อมรูปภาพ)
Coin Cell Shrink Wrap Battery Pack: ฉันเป็นแฟนตัวยงของ CR2032 "เซลล์เหรียญ" แบตเตอรี่ จ่ายไฟได้มากกว่า 3 โวลต์ในขนาดที่กะทัดรัดมาก คุณสามารถเสียบปลั๊กหนึ่งอันเข้ากับที่ยึดขนาดเล็ก แล้วเชื่อมต่อสายต่างๆ ตามต้องการ แต่ถ้าคุณต้องการมากกว่า 3 โวลต์ล่ะ คุณร่วม
DIY Coin Cell Holder: 4 ขั้นตอน (พร้อมรูปภาพ)
DIY Coin Cell Holder: เคยต้องการบางสิ่งบางอย่างเพื่อเก็บแบตเตอรี่ขนาดเล็กสำหรับโครงการที่คุณกำลังทำอยู่หรือไม่? นี่คือวิธีที่ฉันแก้ไขที่ใส่แบตเตอรี่ชนิด N เพื่อรองรับแบตเตอรี่เซลล์แบบเหรียญสองสามก้อน ส่วนผสม: แบตเตอรี่ชนิด N ที่ใส่แบตเตอรี่เซลล์แบบเหรียญเครื่องมือ: ลวดแหลม