Mundarija:

Inventarizatsiya tortmasi "Aqlli shaharlar Hackathon Qualcomm17": 13 qadam
Inventarizatsiya tortmasi "Aqlli shaharlar Hackathon Qualcomm17": 13 qadam

Video: Inventarizatsiya tortmasi "Aqlli shaharlar Hackathon Qualcomm17": 13 qadam

Video: Inventarizatsiya tortmasi
Video: PSIXOLOGLARDAN 15 HAQIQATLAR. HECH KIM bilmagan SIRLAR 2024, Iyul
Anonim
Inventarizatsiya tortmasi
Inventarizatsiya tortmasi

Keyingi hujjatda siz aqlli tortmasining qurilishi va dasturlash jarayonini ko'rishingiz mumkin. Bu tortma shaharlarning sifatini yaxshilash maqsadida Dragon Board 410c dasturlashtirilgan. Loyiha "aqlli shaharlar hackathon Qualcomm 17" tanlovining bir qismidir.

Loyihaning g'oyasi juda kam odam ko'radigan muammodan boshlandi, bu fabrikalar va hatto kasalxonalar kabi kompaniyalar tomonidan ta'minlangan asboblar va materiallarning yo'qolgan va yomon boshqarilishi. Bu joylarda ishchilarga ba'zi materiallar va asboblar beriladi, bu materiallar va asboblar qayta ishlatilishi kerak, chunki ular qimmat yoki ularni almashtirish uchun iqtisodiy resurslar yo'q.

Kasalxonalarda, olib tashlangan materiallarni nazoratga oladigan odamlar bor, lekin inson aralashuvi bo'lganida xato bo'ladi, bu esa keraksiz xarajatlarga olib kelishi mumkin. Bu muammoning eng yaxshi echimi - bu qarzga olingan va qaytarilgan ob'ektlarning inventarizatsiyasini yurita oladigan va ayni paytda kim javobgarligini biladigan aqlli tortmachadir.

1 -qadam: materiallar

Loyiha uchun zarur bo'lgan material: 1 x Dragon Board 410c

1 x Sensorli Mezzanine 96 Dragon Board 410c uchun taxtalar

1 x non paneli

1 x MDF (O'rta zichlikdagi tolali taxta) varag'i 61 x 122 sm

5 x CNY 70 sensori

1 X TIP31B

1 x elektromagnit

1 x 7408

1 x klaviatura

1 x ekran

3 x vint

Qarshiliklar (xilma -xillik)

Mis simlar

Yelim

Matkap

2 -qadam: MDFdagi tortma uchun bo'laklarni kesib oling. (Yaxshi natijalarga erishish uchun lazer kesgichdan foydalaning)

MDFdagi tortma uchun bo'laklarni kesib oling. (Yaxshi natijalarga erishish uchun lazer kesgichdan foydalaning)
MDFdagi tortma uchun bo'laklarni kesib oling. (Yaxshi natijalarga erishish uchun lazer kesgichdan foydalaning)

3 -qadam: Ikkita kichik va katta tortmasidan iborat tortma hosil qilish uchun barcha qismlarni bir -biriga yopishtiring

4 -qadam: Har bir tortmasining o'rtasiga vintlarni burab qo'ying

Vintlarni har bir tortmasining o'rtasiga burab qo'ying
Vintlarni har bir tortmasining o'rtasiga burab qo'ying

5 -qadam: Matkap orqa tarafdagi tortmasidan teshik ochganda, tuynuk sensori kattaligida bo'lishi kerak

Matkap orqa tarafdagi tortmasidan teshik ochsa, tuynuk sensori kattaligida bo'lishi kerak
Matkap orqa tarafdagi tortmasidan teshik ochsa, tuynuk sensori kattaligida bo'lishi kerak

6 -qadam: Har bir CNY 70 sensorini mis simlar bilan payvandlang. (Yana 4 marta takrorlang)

Har bir sensori CNY 70ni mis simlar bilan payvandlang. (Yana 4 marta takrorlang)
Har bir sensori CNY 70ni mis simlar bilan payvandlang. (Yana 4 marta takrorlang)

7 -qadam: Sensor uchun maxsus davr ishlatiladi

Sensor uchun maxsus davr ishlatiladi
Sensor uchun maxsus davr ishlatiladi

8 -qadam: Sensorli mezzaninani Dragon Board 410c -ga ulang. (GPIO -ga kirish uchun ishlatiladi)

Sensor mezzanini Dragon Board 410c ga ulang. (GPIO -ga kirish uchun ishlatiladi)
Sensor mezzanini Dragon Board 410c ga ulang. (GPIO -ga kirish uchun ishlatiladi)

Bu qadamni ajdaho taxtasi o'chirilgan holda bajarish juda muhim, agar u yonib ketmasa, bundan tashqari, barcha PIN -kodlarni to'g'ri joylashtirish kerak.

9 -qadam: Devorni non panelidan mezzaninga ulang

Devorni non panelidan mezzaninga ulang
Devorni non panelidan mezzaninga ulang
Devorni non panelidan mezzaninga ulang
Devorni non panelidan mezzaninga ulang
Devorni non panelidan mezzaninga ulang
Devorni non panelidan mezzaninga ulang
Devorni non panelidan mezzaninga ulang
Devorni non panelidan mezzaninga ulang

10 -qadam: Kodni yozing yoki nusxalash

#kiritish #qo'shish #qo'shish // #qo'shish

#"libsoc_gpio.h" ni qo'shing

#"libsoc_debug.h" ni kiriting #"libsoc_board.h" ni qo'shing

/ * Quyidagi kod biti bu misolni barcha 96Boards -da ishlaydi */

imzosiz int LED_1; // elektr imon

imzosiz int BUTTON_1; // birinchi sensor

imzosiz int BUTTON_2; // ikkinchi sensor imzosiz int BUTTON_3; // imzosiz int BUTTON_4ni yopish; // uchinchi sensor

tuzuvchi Foydalanuvchi {

char foydalanuvchi nomi [20]; char parol [20]; } Foydalanuvchi;

Ma'lumotlar bazasi tuzilishi {

char Maqola_Nomi [20]; char Manzil [20]; } Ma'lumotlar bazasi;

int sensori 1;

int sensori 2; int sensori 3;

int sensori1_last_state;

int sensor2_last_state; int sensor3_last_state;

char foydalanuvchi nomi [50];

char parol [50];

char Ha Yo'q [40];

FILE *pFILE;

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

int yugurish = 1;

_attribute _ ((konstruktor)) statik void _init ()

{board_config *config = libsoc_board_init (); BUTTON_1 = libsoc_board_gpio_id (konfiguratsiya, "GPIO-A"); // musht sensori BUTTON_2 = libsoc_board_gpio_id (konfiguratsiya, "GPIO-C"); // ikkinchi sensor BUTTON_3 = libsoc_board_gpio_id (konfiguratsiya, "GPIO-D"); // tokchani yopish BUTTON_4 = libsoc_board_gpio_id (konfiguratsiya, "GPIO-B"); // uchinchi sensor // BUTTON_5 = libsoc_board_gpio_id (konfiguratsiya, "GPIO-E");

LED_1 = libsoc_board_gpio_id (konfiguratsiya, "GPIO-E"); // elektr imon

libsoc_board_free (konfiguratsiya); } / * 96Boards maxsus kodining oxiri * /

int main ()

{gpio *led_1, *button_1, *button_2, *button_3, *button_4; // int touch; tuzuvchi Foydalanuvchi Karina; struktura menejeri; strcpy (Karina.username, "Karina Valverde"); strcpy (Karina.password, "Balandroq vertikal"); strcpy (Manager.username, "Boss"); strcpy (Manager.password, "ITESM"); struktura ma'lumotlar bazasi vositasi; Ma'lumotlar bazasi tuzilishi; Ma'lumotlar bazasi tuzilishi; strcpy (Tool. Article_Name, "Tool"); struktura ma'lumotlar bazasi vositasi; Ma'lumotlar bazasi qalamini tuzish; Ma'lumotlar bazasi tuzilishi; strcpy (Tool. Article_Name, "Tool"); strcpy (Pen. Article_Name, "Pen"); strcpy (Case. Article_Name, "Case"); libsoc_set_debug (0); led_1 = libsoc_gpio_request (LED_1, LS_SHARED); tugma_1 = libsoc_gpio_request (BUTTON_1, LS_SHARED); tugma_2 = libsoc_gpio_request (BUTTON_2, LS_SHARED); tugma_3 = libsoc_gpio_request (BUTTON_3, LS_SHARED); tugma_4 = libsoc_gpio_request (BUTTON_4, LS_SHARED); // tugma_5 = libsoc_gpio_request (BUTTON_5, LS_SHARED);

agar ((led_1 == NULL) || (tugma_1 == NULL) || (tugma_2 == NULL) || (tugma_3 == NULL) || (tugma_4 == NULL))

{muvaffaqiyatsizlikka uchradi; } libsoc_gpio_set_direction (led_1, OUTPUT); libsoc_gpio_set_direction (button_1, INPUT); libsoc_gpio_set_direction (tugma_2, Kirish); libsoc_gpio_set_direction (tugma_3, Kirish); libsoc_gpio_set_direction (tugma_4, Kirish); // libsoc_gpio_set_direction (tugma_5, Kirish);

agar ((libsoc_gpio_get_direction (led_1)! = OUTPUT)

|| (libsoc_gpio_get_direction (button_1)! = INPUT) || (libsoc_gpio_get_direction (tugma_2)! = Kirish) || (libsoc_gpio_get_direction (button_3)! = INPUT) || (libsoc_gpio_get_direction (button_4)! = INPUT)) {muvaffaqiyatsiz tugadi; } sensor1 = libsoc_gpio_get_level (tugma_1); sensor2 = libsoc_gpio_get_level (tugma_2); sensor3 = libsoc_gpio_get_level (tugma_4); sensor1_last_state = sensor1; sensor2_last_state = sensor2; sensor3_last_state = sensor3; if (sensor1 == 1) {strcpy (Tool. Location, "Rack ustida joylashgan"); } else if (sensor1 == 0) {strcpy (Tool. Location, "Hech qachon bu tokchaga joylashtirilmagan"); } if (sensor2 == 1) {strcpy (Pen. Location, "Rack ustida joylashgan"); } else if (sensor2 == 0) {strcpy (Pen. Location, "Hech qachon bu tokchaga joylashtirilmagan"); } if (sensor3 == 1) {strcpy (Case. Location, "Rack ustida joylashgan"); } else if (sensor3 == 0) {strcpy (Case. Location, "Hech qachon bu tokchaga joylashtirilmagan"); } (ishlayotgan) {libsoc_gpio_set_level (led_1, HIGH); printf ("Iltimos, foydalanuvchi nomini kiriting:"); scanf ("%s", foydalanuvchi nomi); printf ("Iltimos, parolni kiriting:"); scanf ("%s", parol); if (strcmp (foydalanuvchi nomi, "Karina") == 0 && strcmp (parol, "Uzunroq") == 0) {libsoc_gpio_set_level (led_1, LOW); libsoc_gpio_set_level (led_1, LOW); while (libsoc_gpio_get_level (button_3)! = 1) {sensor1 = libsoc_gpio_get_level (button_1); sensor2 = libsoc_gpio_get_level (tugma_2); sensor3 = libsoc_gpio_get_level (tugma_4); } libsoc_gpio_set_level (led_1, HIGH); if (sensor1 == 1 && sensor1! = sensor1_last_state) {strcpy (Tool. Location, Karina.username); } if if (sensor1 == 0 && sensor1! = sensor1_last_state) {strcpy (Tool. Location, "Rack ustida joylashgan"); } if (sensor2 == 1 && sensor2! = sensor2_last_state) {strcpy (Pen. Location, Karina.username); } if if (sensor2 == 0 && sensor2! = sensor2_last_state) {strcpy (Pen. Location, "Rack ustida joylashgan"); }

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

strcpy (Case. Location, Karina.username); } if if (sensor3 == 0 && sensor3! = sensor3_last_state) {strcpy (Case. Location, "Rack ustida joylashgan"); }} else if (strcmp (foydalanuvchi nomi, "Boss") == 0 && strcmp (parol, "ITESM") == 0) {printf ("Siz ma'lumotlar bazasi bilan matnli fayl yaratmoqchimisiz? [Ha/Yo'q] "); scanf ("%s", Ha Yo'q); if ((strcmp (YesNo, Yes) == 0)) {// Manager_user (pFILE); pFILE = fopen ("Ma'lumotlar bazasi.txt", "w"); fprintf (pFILE, "%s", "-------- Rack ma'lumotlar bazasi ----- / n"); fprintf (pFILE, "%s", "Maqola nomi:"); fprintf (pFILE, "%s", Tool. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Maqola joylashuvi:"); fprintf (pFILE, "%s", Tool. Location); fprintf (pFILE, "%s", "\ n"); fprintf (pFILE, "%s", "Maqola nomi:"); fprintf (pFILE, "%s", Pen. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Maqola joylashuvi:"); fprintf (pFILE, "%s", Pen. Location); fprintf (pFILE, "%s", "\ n");

fprintf (pFILE, "%s", "Maqola nomi:");

fprintf (pFILE, "%s", Case. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Maqola joylashuvi:"); fprintf (pFILE, "%s", Case. Location); fprintf (pFILE, "%s", "\ n");

fclose (pFILE);

}

printf ("Kirish rad etildi / n");

}} muvaffaqiyatsiz: agar (led_1 || tugma_1 || tugma_2 || tugma_3) {printf ("gpio resursini qo'llash muvaffaqiyatsiz! / n"); libsoc_gpio_free (led_1); libsoc_gpio_free (tugma_1); libsoc_gpio_free (tugma_2); libsoc_gpio_free (tugma_3); }

11 -qadam: Dasturni ishga tushiring

12 -qadam: Xulosa

Loyihaning istiqbolli istiqboli bor, chunki u juda samarali tarzda takomillashtirilishi mumkin, sensorlar RFID teglari uchun o'zgartirilishi mumkin va shu bilan birga RFID yordamida material uchun kim javobgarligini kuzatish uchun ID kartalardan foydalanish mumkin.

Tavsiya: