![Чекмедже за инвентар „Хакатон на интелигентни градове Qualcomm17“: 13 стъпки Чекмедже за инвентар „Хакатон на интелигентни градове Qualcomm17“: 13 стъпки](https://i.howwhatproduce.com/images/010/image-29383-j.webp)
Съдържание:
- Стъпка 1: Материали
- Стъпка 2: Изрежете парчетата за чекмеджето в MDF. (За по -добри резултати използвайте лазерен нож)
- Стъпка 3: Поставете всички части заедно, за да оформите чекмедже с две малки чекмеджета и едно голямо
- Стъпка 4: Завийте винтовете в средата на всяко чекмедже
- Стъпка 5: С пробиването направете дупки през чекмеджето в задната страна, отворът трябва да е с размерите на сензора
- Стъпка 6: Заварете всеки сензор CNY 70 с медни проводници. (повторете още 4 пъти)
- Стъпка 7: За сензора се използва специална верига
- Стъпка 8: Свържете мецанина на сензора към Dragon Board 410c. (използва се за достъп до GPIO)
- Стъпка 9: Свържете веригата от платката към мецанина
- Стъпка 10: Напишете или копирайте кода
- Стъпка 11: Стартирайте програмата
- Стъпка 12: Заключения
2025 Автор: John Day | [email protected]. Последно модифициран: 2025-01-23 14:36
![Чекмедже за запаси Чекмедже за запаси](https://i.howwhatproduce.com/images/010/image-29383-1-j.webp)
В следващия документ можете да видите процеса на конструиране и програмиране на интелигентно чекмедже. Това чекмедже е програмирано в Dragon Board 410c, с цел подобряване на качеството на градовете. Проектът е част от конкурса „Хакатон за интелигентни градове Qualcomm 17“.
Идеята за този проект започна с проблем, който много малко хора виждат, а именно загубеното и лошо управление на инструменти и материали, което се предоставя от компании като фабрики и дори болници. На тези места някои материали и инструменти се предоставят на работниците за извършване на дейности, тези материали и инструменти трябва да се използват повторно, защото са скъпи или поради липса на икономически ресурси, които да ги заменят.
В болниците има хора, които поемат контрола върху отстранените материали, но когато има човешка намеса, има грешка, която може да доведе до ненужни разходи. Най -доброто решение на този проблем е интелигентно чекмедже, способно да поддържа инвентаризация на предмети, които са взети назаем и върнати, и в същото време да знае кой е отговорен.
Стъпка 1: Материали
Материалът, необходим за проекта, е следният: 1 x Dragon Board 410c
1 x сензорен мецанин 96 платки за Dragon Board 410c
1 x Платка
1 x MDF (ПДЧ със средна плътност) лист 61 x 122 cm
5 x сензор CNY 70
1 X TIP31B
1 x електромагнит
1 x 7408
1 x клавиатура
1 x екран
3 x винтове
Съпротивления (разнообразие)
Медни проводници
Лепило
Пробивна машина
Стъпка 2: Изрежете парчетата за чекмеджето в MDF. (За по -добри резултати използвайте лазерен нож)
![Нарежете парчетата за чекмеджето в MDF. (За по -добри резултати използвайте лазерен нож) Нарежете парчетата за чекмеджето в MDF. (За по -добри резултати използвайте лазерен нож)](https://i.howwhatproduce.com/images/010/image-29383-2-j.webp)
Стъпка 3: Поставете всички части заедно, за да оформите чекмедже с две малки чекмеджета и едно голямо
Стъпка 4: Завийте винтовете в средата на всяко чекмедже
![Завийте винтовете в средата на всяко чекмедже Завийте винтовете в средата на всяко чекмедже](https://i.howwhatproduce.com/images/010/image-29383-3-j.webp)
Стъпка 5: С пробиването направете дупки през чекмеджето в задната страна, отворът трябва да е с размерите на сензора
![С пробиването направете дупки през чекмеджето в задната страна, отворът трябва да е с размера на сензора С пробиването направете дупки през чекмеджето в задната страна, отворът трябва да е с размера на сензора](https://i.howwhatproduce.com/images/010/image-29383-4-j.webp)
Стъпка 6: Заварете всеки сензор CNY 70 с медни проводници. (повторете още 4 пъти)
![Заварете всеки сензор CNY 70 с медни проводници. (повторете още 4 пъти) Заварете всеки сензор CNY 70 с медни проводници. (повторете още 4 пъти)](https://i.howwhatproduce.com/images/010/image-29383-5-j.webp)
Стъпка 7: За сензора се използва специална верига
![За сензора се използва специална верига За сензора се използва специална верига](https://i.howwhatproduce.com/images/010/image-29383-6-j.webp)
Стъпка 8: Свържете мецанина на сензора към Dragon Board 410c. (използва се за достъп до GPIO)
![Свържете мецанина на сензора към Dragon Board 410c. (използва се за достъп до GPIO) Свържете мецанина на сензора към Dragon Board 410c. (използва се за достъп до GPIO)](https://i.howwhatproduce.com/images/010/image-29383-7-j.webp)
Много е важно тази стъпка да бъде направена с изключена драконова дъска, ако не, тя може да изгори, освен всичко, което трябва да бъде поставено правилно.
Стъпка 9: Свържете веригата от платката към мецанина
![Свържете веригата от платката към мецанина Свържете веригата от платката към мецанина](https://i.howwhatproduce.com/images/010/image-29383-8-j.webp)
![Свържете веригата от платката към мецанина Свържете веригата от платката към мецанина](https://i.howwhatproduce.com/images/010/image-29383-9-j.webp)
![Свържете веригата от платката към мецанина Свържете веригата от платката към мецанина](https://i.howwhatproduce.com/images/010/image-29383-10-j.webp)
![Свържете веригата от платката към мецанина Свържете веригата от платката към мецанина](https://i.howwhatproduce.com/images/010/image-29383-11-j.webp)
Стъпка 10: Напишете или копирайте кода
#include #include #include // #include
#include "libsoc_gpio.h"
#include "libsoc_debug.h" #include "libsoc_board.h"
/ * Този бит код по -долу кара този пример да работи на всички 96 дъски */
без знак int LED_1; // електроиман
unsigned int BUTTON_1; // първи сензор
unsigned int BUTTON_2; // втори сензор unsigned int BUTTON_3; // затваряне без знак int BUTTON_4; // трети сензор
struct User {
char потребителско име [20]; char парола [20]; } Потребител;
struct Database {
char Article_Name [20]; char Местоположение [20]; }База данни;
int сензор1;
int сензор2; int сензор3;
int sensor1_last_state;
int sensor2_last_state; int sensor3_last_state;
char потребителско име [50];
char парола [50];
char ДаНе [40];
FILE *pFILE;
char Да [20] = {"Да"};
int работи = 1;
_attribute _ ((конструктор)) static void _init ()
{board_config *config = libsoc_board_init (); BUTTON_1 = libsoc_board_gpio_id (config, "GPIO-A"); // сензор за юмруци BUTTON_2 = libsoc_board_gpio_id (config, "GPIO-C"); // втори сензор BUTTON_3 = libsoc_board_gpio_id (config, "GPIO-D"); // затваряне на багажника BUTTON_4 = libsoc_board_gpio_id (config, "GPIO-B"); // трети сензор // BUTTON_5 = libsoc_board_gpio_id (config, "GPIO-E");
LED_1 = libsoc_board_gpio_id (конфигурация, "GPIO-E"); // електроиман
libsoc_board_free (config); } / * Край на 96Boards специален код * /
int main ()
{gpio *led_1, *button_1, *button_2, *button_3, *button_4; // int докосване; struct User Карина; struct User Manager; strcpy (Karina.username, "Карина Валверде"); strcpy (Karina.password, "Taller Vertical"); strcpy (Manager.username, "The Boss"); strcpy (Manager.password, "ITESM"); struct Database Tool; struct Database Pen; struct Database Case; strcpy (Tool. Article_Name, "Tool"); struct Database Tool; struct Database Pen; struct Database Case; 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); 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);
if ((led_1 == NULL) || (button_1 == NULL) || (button_2 == NULL) || (button_3 == NULL) || (button_4 == NULL))
{goto fail; } 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);
if ((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; } сензор1 = libsoc_gpio_get_level (бутон_1); сензор2 = libsoc_gpio_get_level (button_2); сензор3 = libsoc_gpio_get_level (бутон_4); sensor1_last_state = sensor1; sensor2_last_state = sensor2; sensor3_last_state = sensor3; if (sensor1 == 1) {strcpy (Tool. Location, "Разположен на стелаж"); } else if (sensor1 == 0) {strcpy (Tool. Location, "Никога не се поставя в тази стойка"); } if (sensor2 == 1) {strcpy (Pen. Location, "Разположен на стелаж"); } else if (sensor2 == 0) {strcpy (Pen. Location, "Никога не се поставя в тази стойка"); } if (sensor3 == 1) {strcpy (Case. Location, "Разположен на багажник"); } else if (sensor3 == 0) {strcpy (Case. Location, "Никога не се поставя в този багажник"); } докато (работи) {libsoc_gpio_set_level (led_1, HIGH); printf ("Моля, въведете потребителско име:"); scanf ("%s", потребителско име); printf ("Моля, въведете парола:"); scanf ("%s", парола); if (strcmp (потребителско име, "Karina") == 0 && strcmp (парола, "по -висок") == 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); сензор2 = libsoc_gpio_get_level (button_2); сензор3 = libsoc_gpio_get_level (бутон_4); } libsoc_gpio_set_level (led_1, HIGH); if (sensor1 == 1 && sensor1! = sensor1_last_state) {strcpy (Tool. Location, Karina.username); } else if (sensor1 == 0 && sensor1! = sensor1_last_state) {strcpy (Tool. Location, "Разположен на стелаж"); } if (sensor2 == 1 && sensor2! = sensor2_last_state) {strcpy (Pen. Location, Karina.username); } else if (sensor2 == 0 && sensor2! = sensor2_last_state) {strcpy (Pen. Location, "Разположен на стелаж"); }
if (sensor3 == 1 && sensor3! = sensor3_last_state) {
strcpy (Case. Location, Karina.username); } else if (sensor3 == 0 && sensor3! = sensor3_last_state) {strcpy (Case. Location, "Разположен на стелаж"); }} иначе ако (strcmp (потребителско име, "Бос") == 0 && strcmp (парола, "ITESM") == 0) {printf ("Искате ли да генерирате текстов файл с базата данни? [Да/Не] "); scanf ("%s", ДаНе); if ((strcmp (YesNo, Yes) == 0)) {// потребител на мениджър (pFILE); pFILE = fopen ("Database.txt", "w"); fprintf (pFILE, "%s", "-------- База данни на багажника ----- / n"); fprintf (pFILE, "%s", "Име на статията:"); fprintf (pFILE, "%s", Tool. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Местоположение на статията:"); fprintf (pFILE, "%s", Tool. Location); fprintf (pFILE, "%s", "\ n"); fprintf (pFILE, "%s", "Име на статията:"); fprintf (pFILE, "%s", Pen. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Местоположение на статията:"); fprintf (pFILE, "%s", Pen. Location); fprintf (pFILE, "%s", "\ n");
fprintf (pFILE, "%s", "Име на статията:");
fprintf (pFILE, "%s", Case. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Местоположение на статията:"); fprintf (pFILE, "%s", Case. Location); fprintf (pFILE, "%s", "\ n");
fclose (pFILE);
}
printf ("Достъпът е отказан / n");
}} неуспех: if (led_1 || button_1 || button_2 || button_3) {printf ("приложи грешка на ресурса на gpio! / n"); libsoc_gpio_free (led_1); libsoc_gpio_free (button_1); libsoc_gpio_free (button_2); libsoc_gpio_free (button_3); }
Стъпка 11: Стартирайте програмата
Стъпка 12: Заключения
Проектът има бъдеще обещаващо, тъй като може да се подобри по много ефективен начин, сензорите могат да се променят за RFID етикети и в същото време с RFID е възможно да се използват лични карти, за да се следи кой е отговорен за материала.
Препоръчано:
Тайно чекмедже: 4 стъпки
![Тайно чекмедже: 4 стъпки Тайно чекмедже: 4 стъпки](https://i.howwhatproduce.com/images/007/image-18915-j.webp)
Тайно чекмедже: Винаги съм бил очарован от тайни стаи или скрити чекмеджета. Това е причината, поради която реших да построя собствено скрито чекмедже един ден, след като гледах филм за Батман. Този проект се състои от бюст със секретен бутон, който можете да поставите навсякъде в
Добавете IOT Lock към ВСЯКО чекмедже!: 4 стъпки
![Добавете IOT Lock към ВСЯКО чекмедже!: 4 стъпки Добавете IOT Lock към ВСЯКО чекмедже!: 4 стъпки](https://i.howwhatproduce.com/images/011/image-30334-j.webp)
Добавете IOT Lock към всяко чекмедже!: Здравейте! След доста време реших да споделя най -новия си проект с всички вас. Това беше просто идея, която получих, след като закупих евтина онлайн брава със соленоид и се оказа страхотен проект
Vintage Hipster Upcycled Bluetooth високоговорители от дървено чекмедже: 5 стъпки
![Vintage Hipster Upcycled Bluetooth високоговорители от дървено чекмедже: 5 стъпки Vintage Hipster Upcycled Bluetooth високоговорители от дървено чекмедже: 5 стъпки](https://i.howwhatproduce.com/images/002/image-5988-21-j.webp)
Винтидж Hipster Upcycled Bluetooth високоговорители от дървено чекмедже: Защо не преработите като очила от тесни дънки, облечени с хипстър, заварявайки полуобезмаслено карамелено лате на фиксиран мотор! Не обичате ли думата upcycle! О да. Нека оставим всички тези глупости на една страна и да направим нещо забавно, лесно и полезно. Всичко, от което се нуждаете
Мини чекмедже за секретно отделение: 5 стъпки
![Мини чекмедже за секретно отделение: 5 стъпки Мини чекмедже за секретно отделение: 5 стъпки](https://i.howwhatproduce.com/images/002/image-4009-55-j.webp)
Мини чекмедже за тайно отделение: Тази инструкция ще ви покаже как направих шкаф с чекмедже с тайно отделение. Ще използвам главно малки детайли, за да опиша действията, които извърших
Инвентар - Бързата диагностика на компютъра вече е заменена, вижте по -долу: 6 стъпки
![Инвентар - Бързата диагностика на компютъра вече е заменена, вижте по -долу: 6 стъпки Инвентар - Бързата диагностика на компютъра вече е заменена, вижте по -долу: 6 стъпки](https://i.howwhatproduce.com/preview/how-and-what-to-produce/11134186-inventory-fast-pc-diagnostics-now-superseded-see-below-6-steps-j.webp)
Инвентар - Бързата диагностика на компютъра вече е заменена, вижте по -долу: Ако някога се наложи да работите върху компютър, който не е пред вас, имате нужда от точен инвентар. Тази инструкция възникна само защото един колега има проблеми с намирането на драйвер за компютър. Ще използвам Aida32 personal от http://majorgeeks.com