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 oblikovali ladicu s dvije male ladice i velikom
- Korak 4: Uvrnite vijke u sredinu 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: Spojite mezanin senzora na Dragon Board 410c. (koristi se za pristup GPIO -u)
- Korak 9: Spojite krug s pločice na međusprat
- Korak 10: Napišite ili kopirajte kôd
- Korak 11: Pokrenite program
- Korak 12: Zaključci
Video: Ladica inventara "Hackathon pametnih gradova Qualcomm17": 13 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:34
U sljedećem dokumentu možete vidjeti postupak izgradnje i programiranja inteligentne ladice. Ova je ladica programirana u Dragon Board 410c, sa svrhom poboljšanja kvalitete gradova. Projekt je dio natječaja "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 tvrtke poput tvornica, pa čak i bolnica. Na tim se mjestima radnicima daje neki materijal i alati za obavljanje aktivnosti, te se materijali i alati moraju ponovno upotrijebiti 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 pogreš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, a istovremeno znati tko je odgovoran.
Korak 1: Materijali
Materijal potreban za projekt je sljedeći: 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 tipkovnica
1x ekran
3 x vijci
Otpori (raznolikost)
Bakrene žice
Ljepilo
Bušilica
Korak 2: Izrežite komade za ladicu u MDF -u. (Za bolje rezultate upotrijebite laserski rezač)
Korak 3: Zalijepite sve dijelove zajedno kako biste oblikovali ladicu s dvije male ladice i velikom
Korak 4: Uvrnite vijke u sredinu 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: Spojite mezanin senzora na Dragon Board 410c. (koristi se za pristup GPIO -u)
Vrlo je važno da se ovaj korak obavi s 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đusprat
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 donji dio koda čini da ovaj primjer 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]; lozinka char [20]; }Korisnik;
struct Database {
char Ime_lažu [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)) static void _init ()
{board_config *config = libsoc_board_init (); BUTTON_1 = libsoc_board_gpio_id (config, "GPIO-A"); // senzor šaka BUTTON_2 = libsoc_board_gpio_id (config, "GPIO-C"); // drugi senzor BUTTON_3 = libsoc_board_gpio_id (config, "GPIO-D"); // zatvaranje stalka 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 (config, "GPIO-E"); // elektro iman
libsoc_board_free (config); } / * Kraj 96Boards posebnog koda * /
int main ()
{gpio *led_1, *gumb_1, *gumb_2, *gumb_3, *gumb_4; // int dodir; struct User Karina; struct User Manager; strcpy (Karina.korisničko ime, "Karina Valverde"); strcpy (Karina.password, "Viša okomica"); strcpy (Manager.username, "The Boss"); strcpy (lozinka upravitelja, "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 (gumb_1); senzor2 = libsoc_gpio_get_level (button_2); senzor3 = libsoc_gpio_get_level (gumb_4); senzor1_zadnje stanje = senzor1; senzor2_zadnje stanje = senzor2; senzor3_zadnje stanje = senzor3; if (sensor1 == 1) {strcpy (Tool. Location, "Nalazi se na stalku"); } else if (sensor1 == 0) {strcpy (Tool. Location, "Nikad postavljeno u ovaj stalak"); } if (sensor2 == 1) {strcpy (Pen. Location, "Nalazi se na stalku"); } else if (sensor2 == 0) {strcpy (Pen. Location, "Nikad postavljeno u ovaj stalak"); } if (sensor3 == 1) {strcpy (Case. Location, "Nalazi se na stalku"); } else if (sensor3 == 0) {strcpy (Case. Location, "Nikad 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 (gumb_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 istodobno je s RFID -om moguće koristiti osobne iskaznice za praćenje tko je odgovoran za materijal.
Preporučeni:
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 Batmanu odlučio napraviti svoju vlastitu skrivenu ladicu. Ovaj projekt sastoji se od poprsja s tajnim gumbom koje možete postaviti svugdje u
Ladica E kotača: 10 koraka (sa slikama)
Ladica E kotača: Omogućena internetska sigurna ladica za kotače Drop BoxOsobine Koš za kotače pričvršćen je na zid pomoću stezaljke koja se zaključava. Parcele su skrivene od pogleda s preklopnim zatvaračem Elektroničko otključavanje putem osvijetljene tipkovnice PIR osvijetljeni znak za noćnu dostavu
D4E1 - Uradi sam - Pomoćna tehnologija: Podesiva ladica za invalidska kolica: 7 koraka (sa slikama)
D4E1 - Uradi sam - Pomoćna tehnologija: Podesiva ladica za invalidska kolica: Kjell ima urođeni nedostatak: diskinetičku kvadriparezu i ne može sam jesti. Treba mu pomoć monitora, radnog terapeuta, koji ga hrani. To dolazi s dva problema: 1) Radni terapeut stoji za volanom
Mini ladica za tajne pretince: 5 koraka
Mini ladica Secret Compartment Mini: Ova instrukcija će vam pokazati kako sam napravio ormar s ladicom s tajnim pretincem. Uglavnom ću koristiti male detalje za opis radnji koje sam učinio
EE ladica: 5 koraka
EE ladica: Jednostavna za izradu i izvrsna za zajedničke radne prostore. Uzmite ladicu za hranu, dodajte utičnice za napajanje, matične ploče i spremnike za komponente