Tartalomjegyzék:
- 1. lépés: Anyagok
- 2. lépés: Vágja le a darabokat a fiókhoz az MDF -ben. (A jobb eredmény érdekében használjon lézervágót)
- 3. lépés: Illessze össze az összes darabot, és alakítson ki egy fiókot két kis fiókkal és egy nagy fiókkal
- 4. lépés: Csavarja be a csavarokat minden fiók közepére
- 5. lépés: Ha a fúrólyuk lyukakat készít a hátsó oldalon lévő fiókban, a lyuknak az érzékelő méretének kell lennie
- 6. lépés: Hegesztje az egyes CNY 70 érzékelőket a rézhuzalokkal. (ismételje meg még 4 -szer)
- 7. lépés: Különös áramkört használnak az érzékelőhöz
- 8. lépés: Csatlakoztassa a szenzor mezzanine -t a Dragon Board 410c -hez. (a GPIO eléréséhez használt)
- 9. lépés: Csatlakoztassa az áramkört a kenyértábláról a félemelethez
- 10. lépés: Írja vagy másolja a kódot
- 11. lépés: Futtassa a programot
- 12. lépés: Következtetések
Videó: Leltárfiók "Smart Cities Hackathon Qualcomm17": 13 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
A következő dokumentumban láthatja az intelligens fiók kialakításának és programozásának folyamatát. Ezt a fiókot a Dragon Board 410c programozta, azzal a céllal, hogy javítsa a városok minőségét. A projekt az „intelligens városok hackathon Qualcomm 17” verseny része.
Ennek a projektnek az ötlete egy olyan problémával kezdődött, amelyet nagyon kevesen látnak, ami az eszközök és anyagok elveszett és rossz kezelése, amelyet olyan vállalatok biztosítanak, mint a gyárak, sőt a kórházak. Ezeken a helyeken bizonyos anyagokat és eszközöket biztosítanak a dolgozóknak a tevékenységek elvégzéséhez, ezt az anyagot és eszközöket újra fel kell használni, mert drágák, vagy a helyettesítésükhöz szükséges gazdasági erőforrások hiányoznak.
A kórházakban vannak emberek, akik átveszik az irányítást az eltávolított anyagok felett, de ha emberi beavatkozás történik, ott a hiba, ami szükségtelen kiadásokhoz vezethet. A legjobb megoldás erre a problémára egy intelligens fiók, amely képes nyilvántartást vezetni a kölcsönzött és visszaküldött tárgyakról, és egyúttal tudja, ki a felelős.
1. lépés: Anyagok
A projekthez szükséges anyag a következő: 1 x Dragon Board 410c
1 x Mezzanine szenzor 96 tábla a Dragon Board 410c -hez
1 x kenyeretábla
1 x MDF (közepes sűrűségű farostlemez) lemez 61 x 122 cm
5 x CNY 70 érzékelő
1 X TIPP31B
1 x elektromágnes
1 x 7408
1 x billentyűzet
1 x képernyő
3 x csavar
Ellenállások (változatosság)
Rézhuzalok
Ragasztó
Fúró
2. lépés: Vágja le a darabokat a fiókhoz az MDF -ben. (A jobb eredmény érdekében használjon lézervágót)
3. lépés: Illessze össze az összes darabot, és alakítson ki egy fiókot két kis fiókkal és egy nagy fiókkal
4. lépés: Csavarja be a csavarokat minden fiók közepére
5. lépés: Ha a fúrólyuk lyukakat készít a hátsó oldalon lévő fiókban, a lyuknak az érzékelő méretének kell lennie
6. lépés: Hegesztje az egyes CNY 70 érzékelőket a rézhuzalokkal. (ismételje meg még 4 -szer)
7. lépés: Különös áramkört használnak az érzékelőhöz
8. lépés: Csatlakoztassa a szenzor mezzanine -t a Dragon Board 410c -hez. (a GPIO eléréséhez használt)
Nagyon fontos, hogy ezt a lépést kikapcsolt sárkánytáblával kell elvégezni, ha nem, akkor megéghet, emellett minden PIN -kódot helyesen kell elhelyezni.
9. lépés: Csatlakoztassa az áramkört a kenyértábláról a félemelethez
10. lépés: Írja vagy másolja a kódot
#include #include #include // #include
#include "libsoc_gpio.h"
#include "libsoc_debug.h" #include "libsoc_board.h"
/ * Az alábbi kódrészlet lehetővé teszi, hogy ez a példa működjön az összes 96 táblán */
unsigned int LED_1; // electro iman
unsigned int BUTTON_1; // első érzékelő
unsigned int BUTTON_2; // második érzékelő unsigned int BUTTON_3; // close unsigned int BUTTON_4; // harmadik érzékelő
struktúra felhasználó {
char felhasználónév [20]; char jelszó [20]; } Felhasználó;
struk Database {
char cikk_neve [20]; char Helye [20]; } Adatbázis;
int szenzor1;
int szenzor2; int szenzor3;
int sensor1_last_state;
int sensor2_last_state; int sensor3_last_state;
char felhasználónév [50];
char jelszó [50];
char IgenNem [40];
FILE *pFILE;
char Igen [20] = {"Igen"};
int futás = 1;
_attribute _ ((konstruktor)) static void _init ()
{board_config *config = libsoc_board_init (); BUTTON_1 = libsoc_board_gpio_id (konfiguráció, "GPIO-A"); // ököllel érzékelő BUTTON_2 = libsoc_board_gpio_id (konfiguráció, "GPIO-C"); // második érzékelő BUTTON_3 = libsoc_board_gpio_id (konfiguráció, "GPIO-D"); // rack bezárása BUTTON_4 = libsoc_board_gpio_id (konfiguráció, "GPIO-B"); // harmadik érzékelő // BUTTON_5 = libsoc_board_gpio_id (konfiguráció, "GPIO-E");
LED_1 = libsoc_board_gpio_id (konfiguráció, "GPIO-E"); // electro iman
libsoc_board_free (konfiguráció); } / * A 96Boards speciális kódjának vége * /
int main ()
{gpio *led_1, *button_1, *button_2, *button_3, *button_4; // int touch; struk Felhasználó Karina; struk Felhasználókezelő; strcpy (Karina.username, "Karina Valverde"); strcpy (Karina.jelszó, "Magasabb függőleges"); strcpy (Manager.username, "A főnök"); strcpy (Manager.password, "ITESM"); struk Database Tool; struk Database Pen; struk Database Case; strcpy (Eszköz. Cikk_neve, "Eszköz"); struk Database Tool; struk Database Pen; struk Database Case; strcpy (Eszköz. Cikk_neve, "Eszköz"); 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); // gomb_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; } szenzor1 = libsoc_gpio_get_level (gomb_1); szenzor2 = libsoc_gpio_get_level (gomb_2); szenzor3 = libsoc_gpio_get_level (gomb_4); sensor1_last_state = szenzor1; sensor2_last_state = szenzor2; sensor3_last_state = szenzor3; if (szenzor1 == 1) {strcpy (Tool. Location, "Rackon található"); } else if (szenzor1 == 0) {strcpy (Tool. Location, "Soha nem került ebbe a rackbe"); } if (sensor2 == 1) {strcpy (Pen. Location, "Located on Rack"); } else if (szenzor2 == 0) {strcpy (Pen. Location, "Soha nem került ebbe a rackbe"); } if (sensor3 == 1) {strcpy (Case. Location, "A racken található"); } else if (szenzor3 == 0) {strcpy (Case. Location, "Soha nem került ebbe a rackbe"); } while (fut) {libsoc_gpio_set_level (led_1, HIGH); printf ("Kérjük, adja meg a felhasználónevet:"); scanf ("%s", felhasználónév); printf ("Kérjük, adja meg a jelszót:"); scanf ("%s", jelszó); if (strcmp (felhasználónév, "Karina") == 0 && strcmp (jelszó, "Taller") == 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); szenzor2 = libsoc_gpio_get_level (gomb_2); szenzor3 = libsoc_gpio_get_level (gomb_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, "A racken található"); } if (sensor2 == 1 && sensor2! = sensor2_last_state) {strcpy (Pen. Location, Karina.username); } else if (sensor2 == 0 && sensor2! = sensor2_last_state) {strcpy (Pen. Location, "Located on Rack"); }
if (szenzor3 == 1 && szenzor3! = érzékelő3_utolsó_állapot) {
strcpy (Case. Location, Karina.username); } else if (sensor3 == 0 && sensor3! = sensor3_last_state) {strcpy (Case. Location, "Located on Rack"); }} else if (strcmp (felhasználónév, "főnök") == 0 && strcmp (jelszó, "ITESM") == 0) {printf ("Szeretne szöveges fájlt létrehozni az adatbázissal? [Igen/Nem] "); scanf ("%s", IgenNo); if ((strcmp (IgenNo, Igen) == 0)) {// Kezelő_felhasználó (pFILE); pFILE = fopen ("Database.txt", "w"); fprintf (pFILE, "%s", "-------- Rack's Database ----- / n"); fprintf (pFILE, "%s", "cikk neve:"); fprintf (pFILE, "%s", Tool. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "A cikk helye:"); fprintf (pFILE, "%s", Tool. Location); fprintf (pFILE, "%s", "\ n"); fprintf (pFILE, "%s", "cikk neve:"); fprintf (pFILE, "%s", toll. Cikk_neve); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "A cikk helye:"); fprintf (pFILE, "%s", Pen. Location); fprintf (pFILE, "%s", "\ n");
fprintf (pFILE, "%s", "cikk neve:");
fprintf (pFILE, "%s", Case. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "A cikk helye:"); fprintf (pFILE, "%s", Case. Location); fprintf (pFILE, "%s", "\ n");
fclose (pFILE);
}
printf ("Hozzáférés megtagadva / n");
}} sikertelen: if (led_1 || button_1 || button_2 || button_3) {printf ("Apply gpio resource fail! / n"); libsoc_gpio_free (led_1); libsoc_gpio_free (gomb_1); libsoc_gpio_free (gomb_2); libsoc_gpio_free (gomb_3); }
11. lépés: Futtassa a programot
12. lépés: Következtetések
A projektnek ígéretes jövője van, mivel nagyon hatékonyan javítható, az érzékelők RFID -címkékre cserélhetők, és az RFID -vel egyidejűleg lehetőség van személyi igazolványok használatával ellenőrizni, hogy ki felelős az anyagért.
Ajánlott:
Apple vonalkód gravírozó (Photonics Hackathon Phablabs): 3 lépés
Apple vonalkód gravírozó (Photonics Hackathon Phablabs): Sziasztok! A Phablabs Photonics kihívásunk részeként felkértek, hogy hozzunk létre egy olyan eszközt, amely képes kicserélni a gyümölcsön lévő matricákat. Te is utálod a gyümölcs matricákat? És szeretne környezetbarát változtatást végrehajtani? Akkor szeretnénk belevágni
Smart Garden "SmartHorta": 9 lépés
Smart Garden "SmartHorta": Helló srácok! Ez az oktatható egy intelligens veteményes főiskolai projektjét mutatja be, amely automatikus növényi öntözést biztosít, és egy mobilalkalmazással vezérelhető. A projekt célja, hogy kiszolgálja azokat az ügyfeleket, akik otthon szeretnének ültetni
Holografikus lemezek - Photonics Challenger Hackathon PhabLabs: 6 lépés
Holografikus lemezek - Photonics Challenger Hackathon PhabLabs: Az év elején felkértek, hogy vegyen részt a PhabLabs Photonics Hackathon -on a Delfti Tudományos Központban, Hollandiában. Itt van egy nagyszerű munkaterületük, sok géppel, amelyekkel valami normálisat lehet létrehozni
"Ready Maker" - A "Lego Power Functions" projekt irányítása: 9 lépés
"Ready Maker" - A "Lego Power Functions" projekt irányítása: Ismerje meg a Lego " Power funkciók " komponenseket az Arduino táblával, és építse fel projektjét a " Ready Maker " szerkesztő (nincs szükség kódra) a modell távirányításához
HC - 06 (Slave Module) "NAME" megváltoztatása használat nélkül "Monitor Serial Arduino" amely "Könnyen működik": Hibátlan módszer!: 3 lépés
HC - 06 (Slave Module) "NAME" megváltoztatása használat nélkül "Monitor Serial Arduino" … amely "Könnyen működik": Hibátlan módon!: Miután " Hosszú idő " megpróbálja megváltoztatni a nevet HC -06 -ra (slave Module), a " az Arduino soros monitorja, " Siker ", találtam egy másik egyszerű módot, és most megosztom! Jó szórakozást haverok