
Sadržaj:
- Korak 1: Materijali
- Korak 2: Izrežite komade za ladicu u MDF -u. (Za bolje rezultate upotrijebite laserski rezač)
- Korak 3: Zalijepite sve dijelove zajedno kako biste formirali ladicu s dvije male ladice i jednom velikom
- Korak 4: Zavijte vijke u sredini svake ladice
- Korak 5: Bušilicom napravite rupe kroz ladicu na stražnjoj strani, rupa mora biti veličine senzora
- Korak 6: Zavarite svaki senzor CNY 70 s bakrenim žicama. (ponovite još 4 puta)
- Korak 7: Za senzor se koristi poseban krug
- Korak 8: Povežite mezanin senzora na Dragon Board 410c. (koristi se za pristup GPIO -u)
- Korak 9: Spojite krug s pločice na međukat
- Korak 10: Napišite ili kopirajte kôd
- Korak 11: Pokrenite program
- Korak 12: Zaključci
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-23 14:37

U sljedećem dokumentu možete vidjeti proces izgradnje i programiranja inteligentne ladice. Ova ladica je programirana u Dragon Board 410c, sa svrhom poboljšanja kvalitete gradova. Projekat je dio takmičenja „Hackathon pametnih gradova Qualcomm 17“.
Ideja o ovom projektu započela je s problemom koji vidi vrlo mali broj ljudi, a to je izgubljeno i loše upravljanje alatima i materijalom koje osiguravaju kompanije poput tvornica, pa čak i bolnica. Na tim mjestima radnicima se pružaju neki materijali i alati za obavljanje aktivnosti, te se materijali i alati moraju ponovo koristiti jer su skupi ili zbog nedostatka ekonomskih resursa koji bi ih zamijenili.
U bolnicama postoje ljudi koji preuzimaju kontrolu nad uklonjenim materijalima, ali kada dođe do ljudske intervencije dolazi do greške koja može dovesti do nepotrebnih troškova. Najbolje rješenje za ovaj problem je inteligentna ladica sposobna održavati popis predmeta posuđenih i vraćenih i istovremeno znati ko je odgovoran.
Korak 1: Materijali
Za projekt je potreban sljedeći materijal: 1 x Dragon Board 410c
1 x Senzorske polukatne ploče 96 za Dragon Board 410c
1 x Oglasna ploča
1 x MDF (Vlaknaste ploče srednje gustoće) 61 x 122 cm
5 x senzor CNY 70
1 X TIP31B
1 x elektromagnet
1 x 7408
1 x Tastatura
1 x ekran
3 x vijci
Otpori (raznolikost)
Bakrene žice
Ljepilo
Drill
Korak 2: Izrežite komade za ladicu u MDF -u. (Za bolje rezultate upotrijebite laserski rezač)

Korak 3: Zalijepite sve dijelove zajedno kako biste formirali ladicu s dvije male ladice i jednom velikom
Korak 4: Zavijte vijke u sredini svake ladice

Korak 5: Bušilicom napravite rupe kroz ladicu na stražnjoj strani, rupa mora biti veličine senzora

Korak 6: Zavarite svaki senzor CNY 70 s bakrenim žicama. (ponovite još 4 puta)

Korak 7: Za senzor se koristi poseban krug

Korak 8: Povežite mezanin senzora na Dragon Board 410c. (koristi se za pristup GPIO -u)

Vrlo je važno da se ovaj korak obavi sa isključenom zmajevom pločom, ako ne može izgorjeti, osim što je sve PIN potrebno pravilno postaviti.
Korak 9: Spojite krug s pločice na međukat




Korak 10: Napišite ili kopirajte kôd
#include #include #include // #include
#include "libsoc_gpio.h"
#include "libsoc_debug.h" #include "libsoc_board.h"
/ * Ovaj dio koda u nastavku čini ovaj primjer da radi na svim 96 pločama */
nepotpisani int LED_1; // elektro iman
unsigned int BUTTON_1; // prvi senzor
unsigned int BUTTON_2; // drugi senzor unsigned int BUTTON_3; // zatvori unsigned int BUTTON_4; // treći senzor
struct User {
char korisničko ime [20]; char lozinka [20]; } Korisnik;
struct Database {
char Article_Name [20]; char Lokacija [20]; } Baza podataka;
int senzor1;
int senzor2; int senzor3;
int sensor1_last_state;
int sensor2_last_state; int sensor3_last_state;
char korisničko ime [50];
char lozinka [50];
char DaNe [40];
FILE *pFILE;
char Da [20] = {"Da"};
int trčanje = 1;
_atribut _ ((konstruktor)) statička void _init ()
{board_config *config = libsoc_board_init (); BUTTON_1 = libsoc_board_gpio_id (config, "GPIO-A"); // senzor šake BUTTON_2 = libsoc_board_gpio_id (config, "GPIO-C"); // drugi senzor BUTTON_3 = libsoc_board_gpio_id (config, "GPIO-D"); // zatvori stalak BUTTON_4 = libsoc_board_gpio_id (config, "GPIO-B"); // treći senzor // BUTTON_5 = libsoc_board_gpio_id (config, "GPIO-E");
LED_1 = libsoc_board_gpio_id (konfiguracija, "GPIO-E"); // elektro iman
libsoc_board_free (config); } / * Kraj 96Boards posebnog koda * /
int main ()
{gpio *led_1, *button_1, *button_2, *button_3, *button_4; // int touch; struct User Karina; struct User Manager; strcpy (Karina.username, "Karina Valverde"); strcpy (Karina.password, "Taller Vertical"); strcpy (Manager.username, "The Boss"); strcpy (Password.password, "ITESM"); struct Database Tool; struct Database Pen; struct Baza podataka; strcpy (Tool. Article_Name, "Tool"); struct Database Tool; struct Database Pen; struct Baza podataka; 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; } senzor1 = libsoc_gpio_get_level (dugme_1); senzor2 = libsoc_gpio_get_level (button_2); senzor3 = libsoc_gpio_get_level (button_4); sensor1_last_state = sensor1; sensor2_last_state = sensor2; sensor3_last_state = sensor3; if (sensor1 == 1) {strcpy (Tool. Location, "Nalazi se na stalku"); } else if (sensor1 == 0) {strcpy (Tool. Location, "Nikada postavljeno u ovaj stalak"); } if (sensor2 == 1) {strcpy (Pen. Location, "Nalazi se na stalku"); } else if (sensor2 == 0) {strcpy (Pen. Location, "Nikada postavljeno u ovaj stalak"); } if (sensor3 == 1) {strcpy (Case. Location, "Nalazi se na stalku"); } else if (sensor3 == 0) {strcpy (Case. Location, "Nikada postavljeno u ovaj stalak"); } dok (radi) {libsoc_gpio_set_level (led_1, HIGH); printf ("Molimo unesite korisničko ime:"); scanf ("%s", korisničko ime); printf ("Molimo unesite lozinku:"); scanf ("%s", lozinka); if (strcmp (korisničko ime, "Karina") == 0 && strcmp (lozinka, "Viši") == 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); senzor2 = libsoc_gpio_get_level (button_2); senzor3 = libsoc_gpio_get_level (button_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, "Nalazi se na stalku"); } if (sensor2 == 1 && sensor2! = sensor2_last_state) {strcpy (Pen. Location, Karina.username); } else if (sensor2 == 0 && sensor2! = sensor2_last_state) {strcpy (Pen. Location, "Nalazi se na stalku"); }
if (sensor3 == 1 && sensor3! = sensor3_last_state) {
strcpy (Case. Location, Karina.username); } else if (sensor3 == 0 && sensor3! = sensor3_last_state) {strcpy (Case. Location, "Nalazi se na stalku"); }} else if (strcmp (korisničko ime, "Šef") == 0 && strcmp (lozinka, "ITESM") == 0) {printf ("Želite li generirati tekstualnu datoteku s bazom podataka? [Da/Ne] "); scanf ("%s", DaNe); if ((strcmp (DaNe, Da) == 0)) {// Korisnički_menadžer (pFILE); pFILE = fopen ("Database.txt", "w"); fprintf (pFILE, "%s", "-------- Baza podataka stalka ----- / n"); fprintf (pFILE, "%s", "Naziv članka:"); fprintf (pFILE, "%s", Tool. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Lokacija članka:"); fprintf (pFILE, "%s", Tool. Location); fprintf (pFILE, "%s", "\ n"); fprintf (pFILE, "%s", "Naziv članka:"); fprintf (pFILE, "%s", Pen. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Lokacija članka:"); fprintf (pFILE, "%s", Pen. Location); fprintf (pFILE, "%s", "\ n");
fprintf (pFILE, "%s", "Naziv članka:");
fprintf (pFILE, "%s", Case. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Lokacija članka:"); fprintf (pFILE, "%s", Case. Location); fprintf (pFILE, "%s", "\ n");
fclose (pFILE);
}
printf ("Pristup odbijen / n");
}} fail: if (led_1 || button_1 || button_2 || button_3) {printf ("primijeni gpio resurs nije uspio! / n"); libsoc_gpio_free (led_1); libsoc_gpio_free (button_1); libsoc_gpio_free (button_2); libsoc_gpio_free (button_3); }
Korak 11: Pokrenite program
Korak 12: Zaključci
Projekt ima budućnost koja obećava, budući da se može poboljšati na vrlo učinkovit način, senzori se mogu mijenjati za RFID oznake, a u isto vrijeme sa RFID -om je moguće koristiti lične karte za praćenje ko je odgovoran za materijal.
Preporučuje se:
Tajna ladica: 4 koraka

Tajna ladica: Uvijek su me fascinirale tajne sobe ili skrivene ladice. To je razlog zašto sam jednog dana nakon gledanja filma o Betmenu odlučio da napravim svoju skrivenu fioku. Ovaj projekt sastoji se od poprsja s tajnim gumbom koje možete postaviti svugdje u
D4E1 - Uradi sam - Pomoćna tehnologija: Podesiva ladica za invalidska kolica: 7 koraka (sa slikama)

D4E1 - Uradi sam - Pomoćna tehnologija: Podesivi uložak za invalidska kolica: Kjell ima urođeni invaliditet: diskinetičku kvadriparezu i ne može sam jesti. Potrebna mu je pomoć monitora, radnog terapeuta, koji ga hrani. Ovo dolazi s dva problema: 1) Radni terapeut stoji za volanom
Mini ladica za tajne pretince: 5 koraka

Mini ladica za tajne odjeljke: Ova instrukcija će vam pokazati kako sam napravio ormar s ladicom s tajnim pretincem. Uglavnom ću koristiti male detalje za opisivanje radnji koje sam učinio
EE ladica: 5 koraka

EE ladica: Jednostavna za izradu i odlična za zajedničke radne prostore. Uzmite poslužavnik za hranu, dodajte utičnice za napajanje, matične ploče i spremnike za komponente
Canon Pixma ladica za CD diskove: 5 koraka

Canon Pixma uložak za CD diskove: Mnogi Canon Pixma štampači imaju mogućnost štampanja direktno na CD i DVD diskovima, ali ih je Canon onemogućio. Omogućavanje samog štampača je jednostavno, ali i dalje ostajete bez OEM ladice za disk. AŽURIRAJ. Link za sliku je sada ava