Indholdsfortegnelse:
- Trin 1: Materialer
- Trin 2: Skær stykkerne til skuffen i MDF. (For bedre resultater, brug en laserskærer)
- Trin 3: Sæt alle stykker sammen for at danne en skuffe med to små skuffer og en stor
- Trin 4: Skru skruerne i midten af hver skuffe
- Trin 5: Med boremaskinen skal der laves huller gennem skuffen på bagsiden, skal hullet være sensorens størrelse
- Trin 6: Svejs hver sensor CNY 70 med kobbertrådene. (gentag 4 gange mere)
- Trin 7: Der bruges et særligt kredsløb til sensoren
- Trin 8: Tilslut Sensor Mezzanine til Dragon Board 410c. (bruges til at få adgang til GPIO)
- Trin 9: Tilslut kredsløbet fra brødbrættet til mezzaninen
- Trin 10: Skriv eller kopier koden
- Trin 11: Kør programmet
- Trin 12: Konklusioner
Video: Inventory skuffe "Smart Cities Hackathon Qualcomm17": 13 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
I det næste dokument kan du se processen med konstruktion og programmering af en intelligent skuffe. Denne skuffe var programmeret i et Dragon Board 410c, med det formål at forbedre byernes kvalitet. Projektet er en del af konkurrencen "smart cities hackathon Qualcomm 17".
Ideen om dette projekt begyndte med et problem, som meget få mennesker ser, hvilket er den tabte og dårlige håndtering af værktøjer og materiale, der leveres af virksomheder som fabrikker og endda hospitaler. På disse steder leveres nogle materialer og værktøjer til arbejderne til at udføre aktiviteter, dette materiale og værktøjer skal genbruges, fordi de er dyre eller mangel på økonomiske ressourcer til at erstatte dem.
På hospitaler er der mennesker, der tager kontrol over de materialer, der fjernes, men når der er et menneskeligt indgreb, er der fejlen, som kan føre til unødvendige udgifter. Den bedste løsning på dette problem er en intelligent skuffe, der er i stand til at føre en oversigt over objekter, der er lånt og returneret og samtidig ved, hvem der er ansvarlig.
Trin 1: Materialer
Det nødvendige materiale til projektet er det næste: 1 x Dragon Board 410c
1 x Sensor Mezzanine 96 boards til Dragon Board 410c
1 x brødbræt
1 x MDF (Medium Density Fiberboard) ark 61 x 122 cm
5 x CNY -sensor 70
1 X TIP31B
1 x elektromagnet
1 x 7408
1 x tastatur
1 x skærm
3 x skruer
Modstande (sort)
Kobbertråde
Lim
Bore
Trin 2: Skær stykkerne til skuffen i MDF. (For bedre resultater, brug en laserskærer)
Trin 3: Sæt alle stykker sammen for at danne en skuffe med to små skuffer og en stor
Trin 4: Skru skruerne i midten af hver skuffe
Trin 5: Med boremaskinen skal der laves huller gennem skuffen på bagsiden, skal hullet være sensorens størrelse
Trin 6: Svejs hver sensor CNY 70 med kobbertrådene. (gentag 4 gange mere)
Trin 7: Der bruges et særligt kredsløb til sensoren
Trin 8: Tilslut Sensor Mezzanine til Dragon Board 410c. (bruges til at få adgang til GPIO)
Det er meget vigtigt, at dette trin udføres med dragebordet fra, hvis ikke det kan brænde, udover alt skal PIN -koden placeres korrekt.
Trin 9: Tilslut kredsløbet fra brødbrættet til mezzaninen
Trin 10: Skriv eller kopier koden
#include #include #include // #include
#include "libsoc_gpio.h"
#include "libsoc_debug.h" #include "libsoc_board.h"
/ * Denne bit kode herunder får dette eksempel til at fungere på alle 96Board */
usigneret int LED_1; // elektro iman
usigneret int BUTTON_1; // første sensor
usigneret int BUTTON_2; // anden sensor usigneret int BUTTON_3; // luk usigneret int BUTTON_4; // tredje sensor
struct bruger {
char brugernavn [20]; char adgangskode [20]; }Bruger;
struct Database {
char Artikelnr. [20]; char Placering [20]; } Database;
int sensor1;
int sensor2; int sensor3;
int sensor1_last_state;
int sensor2_last_state; int sensor3_last_state;
char brugernavn [50];
char adgangskode [50];
forkælelse YesNo [40];
FIL *pFILE;
char Yes [20] = {"Yes"};
int kører = 1;
_attribute _ ((konstruktør)) statisk tomrum _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"); // anden sensor BUTTON_3 = libsoc_board_gpio_id (config, "GPIO-D"); // luk rack BUTTON_4 = libsoc_board_gpio_id (config, "GPIO-B"); // tredje sensor // BUTTON_5 = libsoc_board_gpio_id (config, "GPIO-E");
LED_1 = libsoc_board_gpio_id (config, "GPIO-E"); // elektro iman
libsoc_board_free (config); } / * Slut på 96Boards særlige kode * /
int main ()
{gpio *led_1, *button_1, *button_2, *button_3, *button_4; // int touch; struct Bruger Karina; struct User Manager; strcpy (Karina.brugernavn, "Karina Valverde"); strcpy (Karina.password, "Taller Vertical"); strcpy (Manager.username, "Chefen"); 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);
hvis ((led_1 == NULL) || (button_1 == NULL) || (button_2 == NULL) || (button_3 == NULL) || (button_4 == NULL))
{mislykkes; } libsoc_gpio_set_direction (led_1, OUTPUT); libsoc_gpio_set_direction (button_1, INPUT); libsoc_gpio_set_direction (knap_2, INPUT); libsoc_gpio_set_direction (button_3, INPUT); libsoc_gpio_set_direction (button_4, INPUT); // libsoc_gpio_set_direction (button_5, INPUT);
hvis ((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)) {mislykkes; } sensor1 = libsoc_gpio_get_level (knap_1); sensor2 = libsoc_gpio_get_level (knap_2); sensor3 = libsoc_gpio_get_level (knap_4); sensor1_last_state = sensor1; sensor2_last_state = sensor2; sensor3_last_state = sensor3; if (sensor1 == 1) {strcpy (Tool. Location, "Placeret på rack"); } ellers hvis (sensor1 == 0) {strcpy (Tool. Location, "Aldrig placeret i dette stativ"); } if (sensor2 == 1) {strcpy (Pen. Location, "Placeret på rack"); } ellers hvis (sensor2 == 0) {strcpy (Pen. Location, "Aldrig placeret i denne Rack"); } if (sensor3 == 1) {strcpy (Case. Location, "Placeret på rack"); } ellers hvis (sensor3 == 0) {strcpy (Case. Location, "Aldrig placeret i denne Rack"); } mens (kører) {libsoc_gpio_set_level (led_1, HIGH); printf ("Venligst indtast brugernavn:"); scanf ("%s", brugernavn); printf ("Angiv venligst adgangskode:"); scanf ("%s", adgangskode); if (strcmp (brugernavn, "Karina") == 0 && strcmp (adgangskode, "højere") == 0) {libsoc_gpio_set_level (led_1, LOW); libsoc_gpio_set_level (led_1, LOW); mens (libsoc_gpio_get_level (button_3)! = 1) {sensor1 = libsoc_gpio_get_level (button_1); sensor2 = libsoc_gpio_get_level (knap_2); sensor3 = libsoc_gpio_get_level (knap_4); } libsoc_gpio_set_level (led_1, HIGH); if (sensor1 == 1 && sensor1! = sensor1_last_state) {strcpy (Tool. Location, Karina.username); } ellers hvis (sensor1 == 0 && sensor1! = sensor1_last_state) {strcpy (Tool. Location, "Placeret på rack"); } if (sensor2 == 1 && sensor2! = sensor2_last_state) {strcpy (Pen. Location, Karina.username); } ellers hvis (sensor2 == 0 && sensor2! = sensor2_last_state) {strcpy (Pen. Location, "Placeret på stativ"); }
hvis (sensor3 == 1 && sensor3! = sensor3_last_state) {
strcpy (Case. Location, Karina.brugernavn); } ellers hvis (sensor3 == 0 && sensor3! = sensor3_last_state) {strcpy (Case. Location, "Placeret på rack"); }} ellers hvis (strcmp (brugernavn, "Chef") == 0 && strcmp (adgangskode, "ITESM") == 0) {printf ("Vil du generere en tekstfil med databasen? [Ja/Nej] "); scanf ("%s", YesNo); hvis ((strcmp (YesNo, Yes) == 0)) {// Manager_user (pFILE); pFILE = fopen ("Database.txt", "w"); fprintf (pFILE, "%s", "-------- Racks Database ----- / n"); fprintf (pFILE, "%s", "Artikelens navn:"); fprintf (pFILE, "%s", Tool. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Artikelens placering:"); fprintf (pFILE, "%s", Tool. Location); fprintf (pFILE, "%s", "\ n"); fprintf (pFILE, "%s", "Artikelens navn:"); fprintf (pFILE, "%s", Pen. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Artikelens placering:"); fprintf (pFILE, "%s", Pen. Location); fprintf (pFILE, "%s", "\ n");
fprintf (pFILE, "%s", "Artikelens navn:");
fprintf (pFILE, "%s", Case. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Artikelens placering:"); fprintf (pFILE, "%s", Case. Location); fprintf (pFILE, "%s", "\ n");
fclose (pFILE);
}
printf ("Adgang nægtet / n");
}} mislykkes: if (led_1 || button_1 || button_2 || button_3) {printf ("Apply gpio resource fail! / n"); libsoc_gpio_free (led_1); libsoc_gpio_free (knap_1); libsoc_gpio_free (knap_2); libsoc_gpio_free (knap_3); }
Trin 11: Kør programmet
Trin 12: Konklusioner
Projektet har en fremtid lovende, da det kan forbedre sig på en meget effektiv måde, kan sensorerne ændres til RFID´s tags og samtidig med RFID er det muligt at bruge ID -kort til at overvåge, hvem der er ansvarlig for materialet.
Anbefalede:
Apple stregkodemaskine (Photonics Hackathon Phablabs): 3 trin
Apple Barcode Engraver (Photonics Hackathon Phablabs): Hej alle sammen, Som en del af vores Phablabs Photonics -udfordring blev vi bedt om at oprette en enhed, der er i stand til at udskifte klistermærker på frugt. Hader du også frugtklistermærker? Og vil du gerne lave en miljøvenlig ændring? Så vil vi gerne ind
Hemmelig skuffe: 4 trin
Hemmelig skuffe: Jeg var altid fascineret af hemmelige lokaler eller skjulte skuffer. Det er grunden til, at jeg besluttede at bygge min egen skjulte skuffe en dag efter at have set en Batman -film. Dette projekt består af en buste med en hemmelig knap, som du kan placere overalt i
Føj en IOT -lås til enhver skuffe !: 4 trin
Føj en IOT -lås til enhver skuffe !: Hej! Efter et stykke tid besluttede jeg mig for at dele mit seneste projekt med jer alle. Denne var bare en idé, jeg fik efter at have købt en billig magnetventillås online, og det viste sig at være et godt projekt. Så grundlæggende var idéen at lave en
Hemmeligt rum mini -skuffe: 5 trin
Hemmeligt rum mini -skuffe: Denne instruktive viser dig, hvordan jeg lavede et skuffeskab med et hemmeligt rum. Vil hovedsageligt bruge små detaljer til at beskrive de handlinger, jeg foretog
HC - 06 (Slave Module) Ændring af "NAME" uden brug "Monitor Serial Arduino" der "Let fungerer": Fejlfri måde!: 3 trin
HC - 06 (slave -modul) Ændring af "NAME" uden brug "Monitor Serial Arduino" … der "Let fungerer": Fejlfri måde!: Efter " Lang tid " forsøger at ændre navn på HC - 06 (slave -modul) ved hjælp af " seriel monitor af Arduino, uden " Succes ", jeg fandt en anden nem måde og jeg deler nu! Hav det sjovt venner