Talaan ng mga Nilalaman:

Drawer ng Imbentaryo "Smart Cities Hackathon Qualcomm17": 13 Mga Hakbang
Drawer ng Imbentaryo "Smart Cities Hackathon Qualcomm17": 13 Mga Hakbang

Video: Drawer ng Imbentaryo "Smart Cities Hackathon Qualcomm17": 13 Mga Hakbang

Video: Drawer ng Imbentaryo
Video: How to use handheld android pos and print receipts on Loyverse pos 2024, Hulyo
Anonim
Drawer ng Imbentaryo
Drawer ng Imbentaryo

Sa susunod na dokumento, maaari mong makita ang proseso ng konstruksyon at programa ng isang matalinong drawer. Ang drawer na ito ay na-program sa isang Dragon Board 410c, na may layuning mapabuti ang kalidad ng mga lungsod. Ang proyekto ay bahagi ng paligsahan na "matalinong mga lungsod hackathon Qualcomm 17".

Ang ideya ng proyektong ito ay nagsimula sa isang problema na kakaunti ang nakikita ng mga tao, na kung saan ay ang nawala at hindi magandang pamamahala ng mga tool at materyal na ibinibigay ng mga kumpanya tulad ng mga pabrika at maging mga ospital. Sa mga lugar na ito, ang ilang mga materyales at kagamitan ay ibinibigay sa mga manggagawa upang magawa ng mga aktibidad, ang materyal at mga kagamitang ito ay dapat gamitin muli sapagkat sila ay mahal o ang kakulangan ng mga mapagkukunang pang-ekonomiya upang mapalitan ang mga ito.

Sa mga ospital, may mga taong kinokontrol ang mga materyales na tinanggal, ngunit kapag may interbensyon ng tao mayroong error, na maaaring humantong sa hindi kinakailangang gastos. Ang pinakamahusay na solusyon sa problemang ito ay isang matalinong drawer na may kakayahang mapanatili ang imbentaryo ng mga bagay na hiniram at ibinalik at sabay na alam kung sino ang responsable.

Hakbang 1: Mga Kagamitan

Ang materyal na kinakailangan para sa proyekto ay ang susunod: 1 x Dragon Board 410c

1 x Sensor Mezzanine 96 Mga Lupon para sa Dragon Board 410c

1 x Breadboard

1 x MDF (Medium Density Fiberboard) sheet 61 x 122 cms

5 x sensor CNY 70

1 X TIP31B

1 x electromagnet

1 x 7408

1 x Keyboard

1 x screen

3 x turnilyo

Mga paglaban (pagkakaiba-iba)

Mga wire ng tanso

Pandikit

Drill

Hakbang 2: Gupitin ang Mga piraso para sa Drawer sa MDF. (Para sa Mas Mahusay na Mga Resulta Gumamit ng isang Laser Cutter)

Gupitin ang mga piraso para sa Drawer sa MDF. (Para sa Mas Mahusay na Mga Resulta Gumamit ng isang Laser Cutter)
Gupitin ang mga piraso para sa Drawer sa MDF. (Para sa Mas Mahusay na Mga Resulta Gumamit ng isang Laser Cutter)

Hakbang 3: I-paste ang Lahat ng Mga piraso ng magkasama upang Bumuo ng isang drawer Na May Dalawang Maliliit na Drawer at isang Malaki

Hakbang 4: I-screw ang mga Screw sa gitna ng bawat Drawer

I-screw ang mga Screw sa gitna ng bawat Drawer
I-screw ang mga Screw sa gitna ng bawat Drawer

Hakbang 5: Sa pamamagitan ng Drill Make Holes Sa pamamagitan ng drawer sa Likuran, ang Hole ay Dapat na Sukat ng Sensor

Sa pamamagitan ng Drill Make Holes Sa pamamagitan ng drawer sa Likuran, ang Hole ay Dapat na Sukat ng Sensor
Sa pamamagitan ng Drill Make Holes Sa pamamagitan ng drawer sa Likuran, ang Hole ay Dapat na Sukat ng Sensor

Hakbang 6: Weld Ang bawat Sensor CNY 70 Gamit ang Copper Wires. (ulitin ang 4 na Oras Pa)

Weld Ang bawat Sensor CNY 70 Gamit ang Copper Wires. (ulitin ang 4 na Oras Pa)
Weld Ang bawat Sensor CNY 70 Gamit ang Copper Wires. (ulitin ang 4 na Oras Pa)

Hakbang 7: Ginagamit ang Isang Espesyal na Circuit para sa Sensor

Ginamit ang Isang Espesyal na Circuit para sa Sensor
Ginamit ang Isang Espesyal na Circuit para sa Sensor

Hakbang 8: Ikonekta ang Sensor Mezzanine sa Dragon Board 410c. (ginamit upang I-access ang GPIO)

Ikonekta ang Sensor Mezzanine sa Dragon Board 410c. (ginamit upang I-access ang GPIO)
Ikonekta ang Sensor Mezzanine sa Dragon Board 410c. (ginamit upang I-access ang GPIO)

Napakahalaga na ang hakbang na ito ay gawin sa off board ng dragon, kung hindi ito masusunog, bukod sa lahat ng PIN ay kailangang mailagay nang tama.

Hakbang 9: Ikonekta ang Circuit Mula sa Breadboard sa Mezzanine

Ikonekta ang Circuit Mula sa Breadboard sa Mezzanine
Ikonekta ang Circuit Mula sa Breadboard sa Mezzanine
Ikonekta ang Circuit Mula sa Breadboard sa Mezzanine
Ikonekta ang Circuit Mula sa Breadboard sa Mezzanine
Ikonekta ang Circuit Mula sa Breadboard sa Mezzanine
Ikonekta ang Circuit Mula sa Breadboard sa Mezzanine
Ikonekta ang Circuit Mula sa Breadboard sa Mezzanine
Ikonekta ang Circuit Mula sa Breadboard sa Mezzanine

Hakbang 10: Isulat o Kopyahin ang Code

#include #include #include // # isama

# isama ang "libsoc_gpio.h"

# isama ang "libsoc_debug.h" # isama ang "libsoc_board.h"

/ * Ang kaunting code na ito sa ibaba ay ginagawang gumana ang halimbawang ito sa lahat ng 96Boards * /

unsigned int LED_1; // electro iman

unsigned int BUTTON_1; // unang sensor

unsigned int BUTTON_2; // pangalawang sensor unsigned int BUTTON_3; // close unsigned int BUTTON_4; // third sensor

struct User {

char username [20]; char password [20]; } Gumagamit;

struct Database {

char Article_Name [20]; char Lokasyon [20]; } Database;

int sensor1;

int sensor2; int sensor3;

int sensor1_last_state;

int sensor2_last_state; int sensor3_last_state;

char username [50];

char password [50];

char OoHindi [40];

FILE * pemium;

char Oo [20] = {"Oo"};

int tumatakbo = 1;

_attribute _ ((tagapagbuo)) static void _init ()

{board_config * config = libsoc_board_init (); BUTTON_1 = libsoc_board_gpio_id (config, "GPIO-A"); // fists sensor BUTTON_2 = libsoc_board_gpio_id (config, "GPIO-C"); // pangalawang sensor BUTTON_3 = libsoc_board_gpio_id (config, "GPIO-D"); // close rack BUTTON_4 = libsoc_board_gpio_id (config, "GPIO-B"); // third sensor // BUTTON_5 = libsoc_board_gpio_id (config, "GPIO-E");

LED_1 = libsoc_board_gpio_id (config, "GPIO-E"); // electro iman

libsoc_board_free (config); } / * Pagtatapos ng 96Boards espesyal na code * /

int main ()

{gpio * led_1, * button_1, * button_2, * button_3, * button_4; // int touch; istr Gumagamit Karina; istr User Manager; strcpy (Karina.username, "Karina Valverde"); strcpy (Karina.password, "Taller Vertical"); strcpy (Manager.username, "The Boss"); strcpy (Manager.password, "ITESM"); struct Database Tool; istruktura ng Database Pen; Kaso ng struct Database; strcpy (Tool. Article_Name, "Tool"); struct Database Tool; istruktura ng Database Pen; Kaso ng struct Database; strcpy (Tool. Article_Name, "Tool"); strcpy (Pen. Article_Name, "Pen"); strcpy (Case. Article_Name, "Kaso"); libsoc_set_debug (0); led_1 = libsoc_gpio_request (LED_1, LS_SHARED); button_1 = libsoc_gpio_request (BUTTON_1, LS_SHARED); button_2 = libsoc_gpio_request (BUTTON_2, LS_SHARED); button_3 = libsoc_gpio_request (BUTTON_3, LS_SHARED); button_4 = libsoc_gpio_request (BUTTON_4, LS_SHARED); // button_5 = libsoc_gpio_request (BUTTON_5, LS_SHARED);

kung ((led_1 == NULL) || (button_1 == NULL) || (button_2 == NULL) || (button_3 == NULL) || (button_4 == NULL))

{mabigo ang goto; } libsoc_gpio_set_direction (led_1, OUTPUT); libsoc_gpio_set_direction (button_1, INPUT); libsoc_gpio_set_direction (button_2, INPUT); libsoc_gpio_set_direction (button_3, INPUT); libsoc_gpio_set_direction (button_4, INPUT); // libsoc_gpio_set_direction (button_5, INPUT);

kung ((libsoc_gpio_get_direction (led_1)! = OUTPUT)

|| (libsoc_gpio_get_direction (button_1)! = INPUT) || (libsoc_gpio_get_direction (button_2)! = INPUT) || (libsoc_gpio_get_direction (button_3)! = INPUT) || (libsoc_gpio_get_direction (button_4)! = INPUT)) {goto fail; } sensor1 = libsoc_gpio_get_level (button_1); sensor2 = libsoc_gpio_get_level (button_2); sensor3 = libsoc_gpio_get_level (button_4); sensor1_last_state = sensor1; sensor2_last_state = sensor2; sensor3_last_state = sensor3; kung (sensor1 == 1) {strcpy (Tool. Location, "Matatagpuan sa Rack"); } iba pa kung (sensor1 == 0) {strcpy (Tool. Location, "Never inilagay sa Rack na ito"); } kung (sensor2 == 1) {strcpy (Pen. Location, "Matatagpuan sa Rack"); } iba pa kung (sensor2 == 0) {strcpy (Pen. Location, "Never inilagay sa Rack na ito"); } kung (sensor3 == 1) {strcpy (Case. Location, "Matatagpuan sa Rack"); } iba pa kung (sensor3 == 0) {strcpy (Case. Location, "Never inilagay sa Rack na ito"); } habang (tumatakbo) {libsoc_gpio_set_level (led_1, HIGH); printf ("Mangyaring maglagay ng pangalan ng gumagamit:"); scanf ("% s", username); printf ("Mangyaring maglagay ng password:"); scanf ("% s", password); kung (strcmp (username, "Karina") == 0 && strcmp (password, "Mas matangkad") == 0) {libsoc_gpio_set_level (led_1, LOW); libsoc_gpio_set_level (led_1, LOW); habang (libsoc_gpio_get_level (button_3)! = 1) {sensor1 = libsoc_gpio_get_level (button_1); sensor2 = libsoc_gpio_get_level (button_2); sensor3 = libsoc_gpio_get_level (button_4); } libsoc_gpio_set_level (led_1, TAAS); kung (sensor1 == 1 && sensor1! = sensor1_last_state) {strcpy (Tool. Location, Karina.username); } iba pa kung (sensor1 == 0 && sensor1! = sensor1_last_state) {strcpy (Tool. Location, "Matatagpuan sa Rack"); } kung (sensor2 == 1 && sensor2! = sensor2_last_state) {strcpy (Pen. Location, Karina.username); } iba pa kung (sensor2 == 0 && sensor2! = sensor2_last_state) {strcpy (Pen. Location, "Matatagpuan sa Rack"); }

kung (sensor3 == 1 && sensor3! = sensor3_last_state) {

strcpy (Kaso. Location, Karina.username); } iba pa kung (sensor3 == 0 && sensor3! = sensor3_last_state) {strcpy (Case. Location, "Matatagpuan sa Rack"); }} iba pa kung (strcmp (username, "Boss") == 0 && strcmp (password, "ITESM") == 0) {printf ("Nais mo bang makabuo ng isang text file na may database? [Oo / Hindi] "); scanf ("% s", YesNo); kung ((strcmp (OoNo, Oo) == 0)) {// Manager_user (pemium); pemium = fopen ("Database.txt", "w"); fprintf (pemium, "% s", "-------- Rack's Database ----- / n"); fprintf (pemium, "% s", "Artikulo ng Pangalan:"); fprintf (pemium, "% s", Tool. Article_Name); fprintf (pemium, "% s", "\ t"); fprintf (pemium, "% s", "Lokasyon ng Artikulo:"); fprintf (pemium, "% s", Tool. Location); fprintf (pemium, "% s", "\ n"); fprintf (pemium, "% s", "Artikulo ng Pangalan:"); fprintf (pemium, "% s", Pen. Article_Name); fprintf (pemium, "% s", "\ t"); fprintf (pemium, "% s", "Lokasyon ng Artikulo:"); fprintf (pemium, "% s", Pen. Location); fprintf (pemium, "% s", "\ n");

fprintf (pemium, "% s", "Artikulo ng Pangalan:");

fprintf (pemium, "% s", Case. Article_Name); fprintf (pemium, "% s", "\ t"); fprintf (pemium, "% s", "Lokasyon ng Artikulo:"); fprintf (pemium, "% s", Case. Location); fprintf (pemium, "% s", "\ n");

fclose (pemium);

}

printf ("Access Denied / n");

}} mabibigo: kung (led_1 || button_1 || button_2 || button_3) {printf ("apply gpio resource fail! / n"); libsoc_gpio_free (led_1); libsoc_gpio_free (button_1); libsoc_gpio_free (button_2); libsoc_gpio_free (button_3); }

Hakbang 11: Patakbuhin ang Programa

Hakbang 12: Mga Konklusyon

Ang proyekto ay may isang pangako sa hinaharap, dahil maaari itong mapabuti sa isang napaka-epektibo na paraan, ang sensor ay maaaring mabago para sa mga tag ng RFID at sa parehong oras sa RFID ay posible na gumamit ng mga ID card upang subaybayan kung sino ang responsable ng materyal.

Inirerekumendang: