สารบัญ:
- ขั้นตอนที่ 1: สิ่งที่คุณต้องการ
- ขั้นตอนที่ 2: ติดตั้งและตั้งค่าฐานข้อมูล
- ขั้นตอนที่ 3: รับ OutPan API Key
- ขั้นตอนที่ 4: ติดตั้งและตั้งค่า Node-Red
- ขั้นตอนที่ 5: ตั้งค่า API
- ขั้นตอนที่ 6: (ไม่บังคับ) ทำความเข้าใจ API
- ขั้นตอนที่ 9: (ไม่บังคับ) สร้างอินเทอร์เฟซผู้ใช้
- ขั้นตอนที่ 10: เริ่มการสแกน
วีดีโอ: ระบบการจัดการสินค้าคงคลังแบบบูรณาการ: 10 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
ฉันต้องการวิธีที่เหมาะสมในการติดตามทุกสิ่งในตู้กับข้าว ดังนั้นเมื่อสองสามเดือนก่อนฉันเริ่มทำงานในโครงการที่จะทำอย่างนั้น เป้าหมายคือการสร้างระบบที่เรียบง่ายและราคาไม่แพงซึ่งใช้งานง่ายมากในขณะที่ยังจัดเก็บข้อมูลให้เพียงพอเพื่อให้คุ้มค่ากับความพยายามเพิ่มเติม สิ่งที่ฉันสร้างขึ้นในที่สุดคือระบบการจัดการสินค้าคงคลังที่สามารถจัดเก็บและอัปเดตข้อมูลเกี่ยวกับรายการใดๆ ที่มีบาร์โค้ด รวมทั้งข้อมูลพื้นฐานเกี่ยวกับรายการเหล่านั้นจากอินเทอร์เน็ต
สรุปคือระบบทำงานแบบนี้
- มีการสแกนบาร์โค้ด
- สคริปต์ Python อ่านข้อมูลจากเครื่องสแกน
- คำขอจะถูกส่งไปยัง REST API ที่ทำงานบน node-red
- API ประมวลผลคำขอ ขุดข้อมูลเพิ่มเติมจากอินเทอร์เน็ต และแก้ไขฐานข้อมูลตามนั้น
ทั้งหมดนี้ทำใน Raspberry Pi ตัวเดียว ทำให้คุณสามารถอัปเดตและจัดเก็บข้อมูลเกี่ยวกับสินค้าคงคลังทั้งหมดของคุณในระบบพกพาขนาดเล็กเพียงเครื่องเดียว โปรเจ็กต์นี้เป็นเทคนิคเล็กน้อยและความเข้าใจพื้นฐานเกี่ยวกับฐานข้อมูล HTTP และ Python จะมีประโยชน์มาก แต่ฉันจะทำให้ดีที่สุดเพื่อให้ผู้เริ่มต้นเข้าใจได้ง่าย มาเริ่มกันเลย!
ขั้นตอนที่ 1: สิ่งที่คุณต้องการ
ส่วนที่คุณต้องการสำหรับโครงการนี้คือ…
- ราสเบอร์รี่ปี่
- เครื่องสแกนบาร์โค้ด USB (ลิงก์ไปยังเครื่องที่ฉันใช้อยู่)
- อแด็ปเตอร์ WiFi (หาก Pi ของคุณไม่มี WiFi ในตัว)
- สวิตช์สลับ
- สายจัมเปอร์
- เคสสำหรับ Raspberry Pi ของคุณ (อุปกรณ์เสริม)
ขั้นตอนที่ 2: ติดตั้งและตั้งค่าฐานข้อมูล
MySQL เป็นระบบจัดการฐานข้อมูลที่จะเก็บข้อมูลทั้งหมดที่เราดึงมาจากการสแกนบาร์โค้ด มันง่ายมากที่จะทำบน Pi รันคำสั่งต่อไปนี้ในเทอร์มินัลของคุณ Pi
sudo apt-get ติดตั้ง mysql-server
จากนั้น คุณจะเข้าสู่ขั้นตอนการติดตั้ง และให้สร้างรหัสผ่าน แค่นั้นแหละ. เมื่อติดตั้ง MySQL แล้ว Pi ของคุณสามารถทำหน้าที่เป็นเซิร์ฟเวอร์ฐานข้อมูลขนาดเล็กของตัวเองได้ ตอนนี้เราต้องสร้างตารางที่จะเก็บข้อมูลของเรา ขั้นแรก ให้เข้าสู่ระบบ หลังจากการติดตั้ง ผู้ใช้ MySql เพียงรายเดียวคือรูท (ผู้ใช้ที่มีสิทธิ์เข้าถึงทุกตารางและระบบ) คุณสามารถเข้าสู่ระบบในฐานะ root ได้โดยใช้คำสั่งต่อไปนี้
mysql -uroot -p
ในไม่ช้า เราจะตั้งค่าผู้ใช้รายอื่นที่ระบบของเราใช้ แต่ก่อนอื่น เราต้องสร้างฐานข้อมูลของเรา และตารางภายในฐานข้อมูลนั้น เมื่อต้องการทำเช่นนี้ เรียกใช้คำสั่งต่อไปนี้
สร้างสินค้าคงคลังฐานข้อมูล
ใช้สินค้าคงคลัง สร้างตาราง upc_count(upc varchar(15) ไม่เป็นโมฆะ นับจำนวนเต็ม(3) ไม่ใช่ค่าปริยาย null 0, ชื่อ varchar(255), ขนาด varchar(40), ผู้ผลิต varchar(80), คีย์หลัก (upc));
ตอนนี้ เรามีตารางอย่างง่ายที่มี upc ห้าคอลัมน์ (ซึ่งจะเป็นคีย์หลัก) การนับ ชื่อ ขนาด และผู้ผลิต หมายเหตุ: upc คือตัวเลขที่ระบุผลิตภัณฑ์โดยไม่ซ้ำกัน ตัวเลขนั้นคือสิ่งที่อ่านจากฉลากบาร์โค้ดเมื่อสแกน
สุดท้าย เราจะตั้งค่าผู้ใช้ที่เราต้องการ ฉันจะโทรหาฉัน เพื่อทำสิ่งนี้ เรียกใช้คำสั่งต่อไปนี้ โดยใช้ชื่อผู้ใช้และรหัสผ่านใดก็ได้ที่คุณต้องการ:
ให้สิทธิ์ทั้งหมดกับสินค้าคงคลัง * ถึง ''@'localhost' ที่ระบุโดย;
ตอนนี้เรามีฐานข้อมูลแล้ว ก็เริ่มสร้างระบบได้เลย!
ขั้นตอนที่ 3: รับ OutPan API Key
OutPan เป็น API ที่สามารถใช้เพื่อรับข้อมูลเกี่ยวกับผลิตภัณฑ์โดยใช้หมายเลข upc เราจะใช้ข้อมูลนี้เพื่อค้นหาข้อมูลเพิ่มเติมเกี่ยวกับผลิตภัณฑ์เมื่อมีการเพิ่มลงในฐานข้อมูล นี่เป็น API สาธารณะ แต่หากต้องการใช้งาน คุณต้องสมัครใช้งานและรับคีย์ API การลงทะเบียนนั้นค่อนข้างตรงไปตรงมา เพียงไปที่นี่และทำตามขั้นตอนเพื่อลงทะเบียนเพื่อรับรหัส
เมื่อคุณได้รับคีย์แล้ว ให้คัดลอกลงไป คุณจะต้องใช้มันในขั้นตอนต่อไป
ขั้นตอนที่ 4: ติดตั้งและตั้งค่า Node-Red
Node-Red ติดตั้งมาล่วงหน้าใน Raspbian OS ทุกรุ่นตั้งแต่ปลายปี 2015 หากต้องการทราบว่าคุณได้ติดตั้ง node-red ไว้หรือไม่ เพียงเรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล
โหนดสีแดง
หากข้อความ "ไม่พบคำสั่ง" แสดง คุณจะต้องติดตั้ง node-red เมื่อต้องการทำเช่นนี้ เรียกใช้คำสั่งต่อไปนี้
sudo apt-get update sudo apt-get ติดตั้ง nodered
หลังจากเริ่มต้น node-red คุณสามารถเข้าถึง node-red จากที่อยู่ที่แสดงในเอาต์พุต
การตั้งค่าที่เหลือคือการติดตั้งโหนด MySQL คุณสามารถทำได้ผ่านเบราว์เซอร์ คลิกที่สัญลักษณ์ที่มุมบนขวาของหน้า จากนั้นคลิกที่ตัวเลือก 'จัดการจานสี' จากนั้นให้ค้นหา 'mysql' แล้วคลิกปุ่มติดตั้ง
ตอนนี้เราพร้อมที่จะนำเข้า API แล้ว
ขั้นตอนที่ 5: ตั้งค่า API
ด้านล่างนี้คือ API โหนดสีแดงทั้งหมดที่ฉันเขียน เพียงคัดลอกทุกอย่างด้านล่าง คลิกที่สัญลักษณ์ที่มุมขวาบน แล้วไปที่นำเข้า → จากคลิปบอร์ด
[{"id":"ef09537e.8b96d", "type":"subflow", "name":"mineOpenPanData", "info":"", "in":[{"x":64, "y":57, "สาย":[{"id":"b8b6d2e4.169e7"}]}], "ออก":[{"x":755, "y":58, "wires":[{"id":"8dc2d52b.6a6fd8", "พอร์ต":0}]}]}, {"id":"b8b6d2e4.169e7", "type":"http request", "z":"ef09537e.8b96d", "name ":"Out Pan Request", "method":"GET", "ret":"txt", "url":"https://api.outpan.com/v2/products/{{{upc}}} ?apikey=", "tls":"", "x":202, "y":57, "wires":
ตอนนี้คุณมี API ทั้งหมดที่เราจะใช้ในการแทรกและอัปเดตข้อมูล ต้องทำการปรับเปลี่ยนเพียงเล็กน้อยก่อนที่เราจะพร้อมใช้งาน
- ขั้นแรก ไปที่โหนดฐานข้อมูล MySQL ทั้งหมด และเปลี่ยนชื่อผู้ใช้และรหัสผ่านเป็นชื่อที่คุณสร้างสำหรับฐานข้อมูลในขั้นตอนก่อนหน้า
- ประการที่สอง แก้ไขโฟลว์ย่อย mineOutPanData เพื่อให้คำขอ HTTP ที่ใช้รับข้อมูล Open Pan ใช้คีย์ API ของคุณเอง
ตอนนี้คุณพร้อมที่จะใช้ API แล้ว โฟลว์นี้สร้าง REST API อย่างง่าย ซึ่งช่วยให้คุณส่งข้อมูลจากอุปกรณ์ใดๆ ที่เชื่อมต่อกับอินเทอร์เน็ตโดยใช้คำขอ
ขั้นตอนที่ 6: (ไม่บังคับ) ทำความเข้าใจ API
สิ่งสุดท้ายที่เราต้องทำคือเชื่อมต่อสวิตช์กับ GPIO เพื่อให้เราสามารถสแกนในสองโหมด เพิ่มและลบ
สิ่งนี้ค่อนข้างตรงไปตรงมา เพียงแค่ตั้งค่าสวิตช์สลับเพื่ออ่านจาก GPIO pin 21 บน Pi และคุณก็พร้อมแล้ว การใช้วงจรบนรูปภาพที่แนบมา (เรียกว่าวงจร PUD DOWN) สคริปต์จะส่งคำขอเพิ่มเมื่อปิดสวิตช์สลับและคำขอลบเมื่อเปิดสวิตช์สลับ
หลังจากนั้นเราเพียงแค่พันสายไฟเข้ากับด้านในของเคสและก็พร้อมที่จะไป
ขั้นตอนที่ 9: (ไม่บังคับ) สร้างอินเทอร์เฟซผู้ใช้
ขั้นตอนสุดท้ายนี้ไม่จำเป็นแต่มีประโยชน์อย่างแน่นอนหากคุณต้องการใช้ศักยภาพของระบบอย่างเต็มที่ฉันสร้างส่วนต่อประสานผู้ใช้ที่เรียบง่ายซึ่งแสดงข้อมูลทั้งหมดที่เรามีในฐานข้อมูลของเราในตารางที่ใช้งานง่าย ตารางสามารถจัดเรียงตามคอลัมน์และค้นหาได้ ทำให้ง่ายต่อการดูว่าคุณมีอะไรบ้าง
UI ค่อนข้างเรียบง่าย ฉันใช้โค้ดตัวอย่างใหม่ที่ฉันพบทางออนไลน์เพื่อทำงานกับ API ของเรา (หากคุณสนใจ สามารถดูโค้ดตัวอย่างนั้นได้ที่นี่)
ในการเรียกใช้ UI ให้ทำดังต่อไปนี้…
- บันทึกไฟล์ index.txt ที่แนบมาเป็น index.html (ฉันไม่สามารถอัปโหลดไฟล์เป็นไฟล์ HTML ได้ด้วยเหตุผลบางประการ)
- ใส่ทั้งสองไฟล์ในไดเร็กทอรีเดียวกันบนคอมพิวเตอร์ของคุณ
- เรียกใช้ไฟล์ 'index.html' ในเว็บเบราว์เซอร์ที่คุณชื่นชอบ
ตอนนี้เราสามารถดูและจัดเรียงสินค้าคงคลังของคุณได้อย่างง่ายดาย!
ขั้นตอนที่ 10: เริ่มการสแกน
ตอนนี้คุณพร้อมที่จะเริ่มสแกนแล้ว! หากคุณมีคำถามใด ๆ ทิ้งไว้ในความคิดเห็นและฉันจะตอบเมื่อทำได้
สุดท้ายนี้ การโหวตของคุณในการแข่งขันจะได้รับการชื่นชมอย่างมาก ขอบคุณที่อ่าน!
แนะนำ:
DIY 37 Leds เกมรูเล็ต Arduino: 3 ขั้นตอน (พร้อมรูปภาพ)
DIY 37 Leds เกมรูเล็ต Arduino: รูเล็ตเป็นเกมคาสิโนที่ตั้งชื่อตามคำภาษาฝรั่งเศสหมายถึงวงล้อเล็ก
หมวกนิรภัย Covid ส่วนที่ 1: บทนำสู่ Tinkercad Circuits!: 20 ขั้นตอน (พร้อมรูปภาพ)
Covid Safety Helmet ตอนที่ 1: บทนำสู่ Tinkercad Circuits!: สวัสดีเพื่อน ๆ ในชุดสองตอนนี้ เราจะเรียนรู้วิธีใช้วงจรของ Tinkercad - เครื่องมือที่สนุก ทรงพลัง และให้ความรู้สำหรับการเรียนรู้เกี่ยวกับวิธีการทำงานของวงจร! หนึ่งในวิธีที่ดีที่สุดในการเรียนรู้คือการทำ ดังนั้น อันดับแรก เราจะออกแบบโครงการของเราเอง: th
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)
4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-