Taula de continguts:
- Pas 1: materials
- Pas 2: Tallar les peces del calaix al MDF. (Per obtenir millors resultats, utilitzeu un tallador làser)
- Pas 3: enganxeu totes les peces juntes per formar un calaix amb dos calaixos petits i un de gran
- Pas 4: cargoleu els cargols al centre de cada calaix
- Pas 5: amb el trepant, feu forats a través del calaix a la part posterior, el forat ha de tenir la mida del sensor
- Pas 6: soldeu cada sensor CNY 70 amb els cables de coure. (repeteix 4 vegades més)
- Pas 7: s’utilitza un circuit especial per al sensor
- Pas 8: connecteu el Sensor Mezzanine al Dragon Board 410c. (s'utilitza per accedir al GPIO)
- Pas 9: connecteu el circuit des de la taula de pa a l'entresòl
- Pas 10: escriviu o copieu el codi
- Pas 11: executeu el programa
- Pas 12: Conclusions
Vídeo: Calaix d'inventari "Smart Cities Hackathon Qualcomm17": 13 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
Al següent document, podeu veure el procés de construcció i programació d’un calaix intel·ligent. Aquest calaix es va programar en un Dragon Board 410c, amb la finalitat de millorar la qualitat de les ciutats. El projecte forma part del concurs "smart cities hackathon Qualcomm 17".
La idea d’aquest projecte va començar amb un problema que molt poca gent veu, que és la pèrdua i la mala gestió de les eines i el material que proporcionen empreses com fàbriques i fins i tot hospitals. En aquests llocs, es proporcionen alguns materials i eines als treballadors per fer activitats, aquest material i eines han de ser reutilitzats perquè són costosos o la manca de recursos econòmics per substituir-los.
Als hospitals, hi ha persones que prenen el control dels materials que s’eliminen, però quan hi ha una intervenció humana hi ha l’error, que pot comportar despeses innecessàries. La millor solució a aquest problema és un calaix intel·ligent capaç de mantenir un inventari d’objectes que es presten i retornen i, alhora, saber qui n’és el responsable.
Pas 1: materials
El material necessari per al projecte és el següent: 1 x Dragon Board 410c
1 x Sensor Mezzanine 96 taulers per a Dragon Board 410c
1 x Taula de pa
1 x full MDF (Tauler de fibres de densitat mitjana) 61 x 122 cms
5 x sensor CNY 70
1 X TIP31B
1 x electroimant
1 x 7408
1 x teclat
1 x pantalla
3 x cargols
Resistències (varietat)
Filferros de coure
Cola
Trepant
Pas 2: Tallar les peces del calaix al MDF. (Per obtenir millors resultats, utilitzeu un tallador làser)
Pas 3: enganxeu totes les peces juntes per formar un calaix amb dos calaixos petits i un de gran
Pas 4: cargoleu els cargols al centre de cada calaix
Pas 5: amb el trepant, feu forats a través del calaix a la part posterior, el forat ha de tenir la mida del sensor
Pas 6: soldeu cada sensor CNY 70 amb els cables de coure. (repeteix 4 vegades més)
Pas 7: s’utilitza un circuit especial per al sensor
Pas 8: connecteu el Sensor Mezzanine al Dragon Board 410c. (s'utilitza per accedir al GPIO)
És molt important que aquest pas es faci amb el tauler del drac apagat, si no, es pot cremar, a més, cal que es col·loqui correctament el PIN.
Pas 9: connecteu el circuit des de la taula de pa a l'entresòl
Pas 10: escriviu o copieu el codi
#include #include #include // # include
#include "libsoc_gpio.h"
#include "libsoc_debug.h" #include "libsoc_board.h"
/ * Aquest bit de codi següent fa que aquest exemple funcioni a tots els 96 taulers * /
sense signar int LED_1; // electro iman
unsigned int BUTTON_1; // primer sensor
unsigned int BUTTON_2; // segon sensor unsigned int BUTTON_3; // tanca unsigned int BUTTON_4; // tercer sensor
struct Usuari {
nom d'usuari char [20]; contrasenya char [20]; } Usuari;
base de dades struct {
char Article_Name [20]; char Ubicació [20]; }Base de dades;
int sensor1;
int sensor2; int sensor3;
int sensor1_last_state;
int sensor2_last_state; int sensor3_last_state;
nom d'usuari char [50];
contrasenya char [50];
char Sí No [40];
FITXA * pFILE;
char Sí [20] = {"Sí"};
int running = 1;
_ atribut _ ((constructor)) static void _init ()
{board_config * config = libsoc_board_init (); BUTTON_1 = libsoc_board_gpio_id (config, "GPIO-A"); // sensor de punys BUTTON_2 = libsoc_board_gpio_id (config, "GPIO-C"); // segon sensor BUTTON_3 = libsoc_board_gpio_id (config, "GPIO-D"); // tanca el bastidor BUTTON_4 = libsoc_board_gpio_id (configuració, "GPIO-B"); // tercer sensor // BUTTON_5 = libsoc_board_gpio_id (config, "GPIO-E");
LED_1 = libsoc_board_gpio_id (configuració, "GPIO-E"); // electro iman
libsoc_board_free (configuració); } / * Final del codi especial de 96 taulers * /
int main ()
{gpio * led_1, * button_1, * button_2, * button_3, * button_4; // int touch; struct Usuari Karina; struct User Manager; strcpy (Karina.username, "Karina Valverde"); strcpy (Karina.password, "Taller Vertical"); strcpy (Manager.username, "El Cap"); strcpy (Manager.password, "ITESM"); Eina de base de dades struct; ploma de la base de dades struct; struct Base de dades; strcpy (Tool. Article_Name, "Eina"); Eina de base de dades struct; ploma de la base de dades struct; struct Base de dades; strcpy (Tool. Article_Name, "Eina"); 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))
{falla; } libsoc_gpio_set_direction (led_1, OUTPUT); libsoc_gpio_set_direction (botó_1, INPUT); libsoc_gpio_set_direction (botó_2, INPUT); libsoc_gpio_set_direction (botó_3, INPUT); libsoc_gpio_set_direction (botó_4, INPUT); // libsoc_gpio_set_direction (botó_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)) {falla; } sensor1 = libsoc_gpio_get_level (button_1); sensor2 = libsoc_gpio_get_level (botó_2); sensor3 = libsoc_gpio_get_level (botó_4); sensor1_last_state = sensor1; sensor2_last_state = sensor2; sensor3_last_state = sensor3; if (sensor1 == 1) {strcpy (Tool. Location, "Situat al bastidor"); } else if (sensor1 == 0) {strcpy (Tool. Location, "Mai col·locat en aquest bastidor"); } if (sensor2 == 1) {strcpy (Pen. Location, "Situat al bastidor"); } else if (sensor2 == 0) {strcpy (Pen. Location, "Mai col·locat en aquest bastidor"); } if (sensor3 == 1) {strcpy (Case. Location, "Situat al bastidor"); } else if (sensor3 == 0) {strcpy (Case. Location, "Mai col·locat en aquest bastidor"); } mentre (en execució) {libsoc_gpio_set_level (led_1, HIGH); printf ("Introduïu el nom d'usuari:"); scanf ("% s", nom d'usuari); printf ("Introduïu la contrasenya:"); scanf ("% s", contrasenya); if (strcmp (nom d'usuari, "Karina") == 0 && strcmp (contrasenya, "Taller") == 0) {libsoc_gpio_set_level (led_1, LOW); libsoc_gpio_set_level (led_1, BAIX); while (libsoc_gpio_get_level (button_3)! = 1) {sensor1 = libsoc_gpio_get_level (button_1); sensor2 = libsoc_gpio_get_level (botó_2); sensor3 = libsoc_gpio_get_level (botó_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, "Situat al bastidor"); } if (sensor2 == 1 && sensor2! = sensor2_last_state) {strcpy (Pen. Location, Karina.username); } else if (sensor2 == 0 && sensor2! = sensor2_last_state) {strcpy (Pen. Location, "Situat al bastidor"); }
if (sensor3 == 1 && sensor3! = sensor3_last_state) {
strcpy (Case. Location, Karina.username); } else if (sensor3 == 0 && sensor3! = sensor3_last_state) {strcpy (Case. Location, "Situat al bastidor"); }} else if (strcmp (nom d'usuari, "Cap") == 0 && strcmp (contrasenya, "ITESM") == 0) {printf ("Voleu generar un fitxer de text amb la base de dades? [Sí / No] "); scanf ("% s", Sí No); if ((strcmp (SíNo, Sí) == 0)) {// Administrador_usuari (pFILE); pFILE = fopen ("Database.txt", "w"); fprintf (pFILE, "% s", "-------- Base de dades de rack ----- / n"); fprintf (pFILE, "% s", "Nom de l'article:"); fprintf (pFILE, "% s", Tool. Article_Name); fprintf (pFILE, "% s", "\ t"); fprintf (pFILE, "% s", "Ubicació de l'article:"); fprintf (pFILE, "% s", Tool. Location); fprintf (pFILE, "% s", "\ n"); fprintf (pFILE, "% s", "Nom de l'article:"); fprintf (pFILE, "% s", Pen. Article_Name); fprintf (pFILE, "% s", "\ t"); fprintf (pFILE, "% s", "Ubicació de l'article:"); fprintf (pFILE, "% s", Pen. Location); fprintf (pFILE, "% s", "\ n");
fprintf (pFILE, "% s", "Nom de l'article:");
fprintf (pFILE, "% s", Case. Article_Name); fprintf (pFILE, "% s", "\ t"); fprintf (pFILE, "% s", "Ubicació de l'article:"); fprintf (pFILE, "% s", Case. Location); fprintf (pFILE, "% s", "\ n");
fclose (pFILE);
}
printf ("Accés denegat / n");
}} falla: if (led_1 || botó_1 || botó_2 || botó_3) {printf ("falla aplicar el recurs gpio! / n"); libsoc_gpio_free (led_1); libsoc_gpio_free (botó_1); libsoc_gpio_free (botó_2); libsoc_gpio_free (botó_3); }
Pas 11: executeu el programa
Pas 12: Conclusions
El projecte té un futur prometedor, ja que es pot millorar d’una manera molt eficaç, es poden canviar els sensors per etiquetes RFID i, al mateix temps, amb la RFID és possible utilitzar targetes d’identificació per controlar qui és el responsable del material.
Recomanat:
SISTEMA DE FACTURACIÓ I CONTROL D'INVENTARI: 3 passos
SISTEMA DE FACTURACIÓ I CONTROL D'INVENTARI: Amb aquest instructable, us donaré una idea per crear un sistema de control de factures i inventaris mitjançant l'accés a MS. És molt fàcil i no necessiteu més coneixements informàtics ni de programació. Si teniu coneixements bàsics de Ms Accés, taules. formularis i informes t
Calaix secret: 4 passos
Calaix secret: sempre em van fascinar les habitacions secretes o els calaixos amagats. Aquesta és la raó per la qual vaig decidir construir el meu propi calaix ocult un dia després de veure una pel·lícula de Batman. Aquest projecte consisteix en un bust amb un botó secret que podeu col·locar a qualsevol lloc del
Afegiu un bloqueig IOT a QUALSEVOL calaix !: 4 passos
Afegiu un bloqueig IOT a QUALSEVOL calaix !: Hola! Al cap de molt de temps vaig decidir compartir el meu darrer projecte amb tots vosaltres. Aquesta va ser només una idea que vaig tenir després de comprar un pany solenoide barat en línia, i va resultar ser un gran projecte. Per tant, bàsicament la idea bàsica era fer una se
Altaveus Bluetooth Hipster vintage reciclats del calaix de fusta: 5 passos
Altaveus Bluetooth Vintage Hipster reciclats del calaix de fusta: per què no fer un cicle superior com unes ulleres texanes flacs que porten hipster soldant un cafè amb llet semi-desnatat de caramel en una bicicleta fixa? No us agrada la paraula upcycle! Ah, sí. Posem totes aquestes tonteries a un costat i fem alguna cosa divertida, fàcil i útil. Tot el que necessiteu és
Inventari: els diagnòstics de PC ràpids ja se substitueixen; vegeu a continuació: 6 passos
Inventari: els diagnòstics de PC ràpids ja se substitueixen; vegeu més avall: si mai heu de treballar en un ordinador que no estigui al davant, necessiteu un inventari precís. Aquesta instrucció es va produir exclusivament perquè un company té problemes per trobar un controlador per a un ordinador. Faré servir Aida32 personal de http://majorgeeks.com