Sisukord:
- Samm: materjalid
- 2. samm: lõigake MDF -i sahtlitükid. (Parema tulemuse saamiseks kasutage laserlõikurit)
- Samm: kleepige kõik tükid kokku, et moodustada kahe väikese ja suure sahtliga sahtel
- Samm: keerake kruvid iga sahtli keskele
- 5. samm: kui puur teeb tagaküljel olevast sahtlist augud, peab auk olema anduri suurune
- Samm: keevitage iga andur CNY 70 vasktraatidega. (korrake veel 4 korda)
- Samm 7: Anduri jaoks kasutatakse spetsiaalset vooluahelat
- Samm 8: ühendage anduri poolkorpus Dragon Board 410c -ga. (kasutatakse GPIO -le juurdepääsuks)
- 9. samm: ühendage vooluring leivaplaadilt poolkorrusega
- Samm: kirjutage või kopeerige kood
- Samm: käivitage programm
- 12. samm: Järeldused
Video: Inventuurisahtel "Nutikad linnad Hackathon Qualcomm17": 13 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Järgmises dokumendis näete intelligentse sahtli ehitamise ja programmeerimise protsessi. See sahtel oli programmeeritud Dragon Board 410c -s, eesmärgiga parandada linnade kvaliteeti. Projekt on osa konkursist “nutikate linnade häkaton Qualcomm 17”.
Selle projekti idee sai alguse probleemist, mida näevad väga vähesed, milleks on tööriistade ja materjalide kadunud ja halb haldamine, mida pakuvad sellised ettevõtted nagu tehased ja isegi haiglad. Nendes kohtades antakse töötajatele teatud materjalid ja tööriistad tegevuste tegemiseks, seda materjali ja tööriistu tuleb uuesti kasutada, kuna need on kallid või nende asendamiseks puuduvad majandusressursid.
Haiglates on inimesi, kes võtavad kontrolli eemaldatavate materjalide üle, kuid inimese sekkumisel on viga, mis võib kaasa tuua tarbetuid kulutusi. Selle probleemi parim lahendus on intelligentne sahtel, mis on võimeline pidama laenatud ja tagastatud objektide nimekirja ning samal ajal teadma, kes on vastutav.
Samm: materjalid
Projekti jaoks vajalik materjal on järgmine: 1 x Dragon Board 410c
1 x Sensor Mezzanine 96 tahvlit Dragon Board 410c jaoks
1 x leivalaud
1 x MDF (keskmise tihedusega puitkiudplaat) leht 61 x 122 cm
5 x andur CNY 70
1 X TIP31B
1 x elektromagnet
1 x 7408
1 x klaviatuur
1 x ekraan
3 x kruvid
Vastupidavus (mitmekesisus)
Vasktraadid
Liim
Puurida
2. samm: lõigake MDF -i sahtlitükid. (Parema tulemuse saamiseks kasutage laserlõikurit)
Samm: kleepige kõik tükid kokku, et moodustada kahe väikese ja suure sahtliga sahtel
Samm: keerake kruvid iga sahtli keskele
5. samm: kui puur teeb tagaküljel olevast sahtlist augud, peab auk olema anduri suurune
Samm: keevitage iga andur CNY 70 vasktraatidega. (korrake veel 4 korda)
Samm 7: Anduri jaoks kasutatakse spetsiaalset vooluahelat
Samm 8: ühendage anduri poolkorpus Dragon Board 410c -ga. (kasutatakse GPIO -le juurdepääsuks)
On väga oluline, et see samm tehtaks draakoniplaadil välja lülitatud, kui mitte, võib see põletada, peale selle tuleb kõik PIN -koodid õigesti sisestada.
9. samm: ühendage vooluring leivaplaadilt poolkorrusega
Samm: kirjutage või kopeerige kood
#include #include #include // #include
#include "libsoc_gpio.h"
#include "libsoc_debug.h" #include "libsoc_board.h"
/ * See allolev koodibitt paneb selle näite tööle kõigil 96 -tahvlitel */
unsigned int LED_1; // elektroiman
unsigned int BUTTON_1; // esimene andur
unsigned int BUTTON_2; // teine andur unsigned int BUTTON_3; // sulge allkirjastamata int BUTTON_4; // kolmas andur
struktuuri kasutaja {
char kasutajanimi [20]; sümboli parool [20]; } Kasutaja;
struktuuri andmebaas {
char Artikli_nimi [20]; char Asukoht [20]; } Andmebaas;
int andur1;
int andur2; int andur3;
int sensor1_last_state;
int sensor2_last_state; int sensor3_last_state;
char kasutajanimi [50];
sümboli parool [50];
char JahEi [40];
FILE *pFILE;
char Jah [20] = {"Jah"};
int jooksmine = 1;
_atribuut _ ((konstruktor)) staatiline tühine _init ()
{board_config *config = libsoc_board_init (); BUTTON_1 = libsoc_board_gpio_id (konfiguratsioon, "GPIO-A"); // rusikate andur BUTTON_2 = libsoc_board_gpio_id (konfiguratsioon, "GPIO-C"); // teine andur BUTTON_3 = libsoc_board_gpio_id (konfiguratsioon, "GPIO-D"); // sulge riiul BUTTON_4 = libsoc_board_gpio_id (konfiguratsioon, "GPIO-B"); // kolmas andur // BUTTON_5 = libsoc_board_gpio_id (konfiguratsioon, "GPIO-E");
LED_1 = libsoc_board_gpio_id (konfiguratsioon, "GPIO-E"); // elektroiman
libsoc_board_free (konfiguratsioon); } / * 96Boards erikoodi lõpp * /
int main ()
{gpio *led_1, *button_1, *button_2, *button_3, *button_4; // int touch; struk Kasutaja Karina; struktuuri kasutajahaldur; strcpy (Karina.kasutajanimi, "Karina Valverde"); strcpy (Karina.parool, "Kõrgem vertikaal"); strcpy (Manager.username, "The Boss"); strcpy (Manager.parool, "ITESM"); struktuuri andmebaasi tööriist; struktuuri andmebaasipliiats; struktuuri andmebaasi juhtum; strcpy (Tool. Article_Name, "Tool"); struktuuri andmebaasi tööriist; struktuuri andmebaasipliiats; struktuuri andmebaasi juhtum; 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); nupp_3 = libsoc_gpio_request (BUTTON_3, LS_SHARED); nupp_4 = libsoc_gpio_request (BUTTON_4, LS_SHARED); // nupp_5 = libsoc_gpio_request (BUTTON_5, LS_SHARED);
kui ((led_1 == NULL) || (nupp_1 == NULL) || (nupp_2 == NULL) || (nupp_3 == NULL) || (nupp_4 == NULL))
{mine nurjuma; } libsoc_gpio_set_direction (led_1, VÄLJUND); libsoc_gpio_set_direction (nupp_1, INPUT); libsoc_gpio_set_direction (nupp_2, INPUT); libsoc_gpio_set_direction (nupp_3, INPUT); libsoc_gpio_set_direction (nupp_4, INPUT); // libsoc_gpio_set_direction (button_5, INPUT);
if ((libsoc_gpio_get_direction (led_1)! = VÄLJUND)
|| (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; } sensor1 = libsoc_gpio_get_level (nupp_1); sensor2 = libsoc_gpio_get_level (nupp_2); sensor3 = libsoc_gpio_get_level (nupp_4); sensor1_last_state = sensor1; sensor2_last_state = sensor2; sensor3_last_state = sensor3; if (sensor1 == 1) {strcpy (Tool. Location, "Asub rackil"); } else if (sensor1 == 0) {strcpy (Tool. Location, "Pole kunagi sellesse riiulisse paigutatud"); } if (sensor2 == 1) {strcpy (Pen. Location, "Located on Rack"); } else if (sensor2 == 0) {strcpy (Pen. Location, "Pole kunagi sellesse riiulisse paigutatud"); } if (sensor3 == 1) {strcpy (Case. Location, "Asub rackil"); } else if (sensor3 == 0) {strcpy (Case. Location, "Pole kunagi sellesse riiulisse paigutatud"); } töötamise ajal {libsoc_gpio_set_level (led_1, HIGH); printf ("Palun sisesta kasutajanimi:"); scanf ("%s", kasutajanimi); printf ("Palun sisestage parool:"); scanf ("%s", parool); if (strcmp (kasutajanimi, "Karina") == 0 && strcmp (parool, "Kõrgem") == 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); sensor2 = libsoc_gpio_get_level (nupp_2); sensor3 = libsoc_gpio_get_level (nupp_4); } libsoc_gpio_set_level (led_1, KÕRGE); if (sensor1 == 1 && sensor1! = sensor1_last_state) {strcpy (Tool. Location, Karina.kasutajanimi); } else if (sensor1 == 0 && sensor1! = sensor1_last_state) {strcpy (Tool. Location, "Asub rackil"); } 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 (sensor3 == 1 && sensor3! = sensor3_last_state) {
strcpy (Case. Location, Karina.username); } else if (sensor3 == 0 && sensor3! = sensor3_last_state) {strcpy (Case. Location, "Asub rackil"); }} else if (strcmp (kasutajanimi, "boss") == 0 && strcmp (parool, "ITESM") == 0) {printf ("Kas soovite andmebaasiga tekstifaili luua? [Jah/ei] "); scanf ("%s", JahNo); if ((strcmp (YesNo, Yes) == 0)) {// Manager_user (pFILE); pFILE = fopen ("Database.txt", "w"); fprintf (pFILE, "%s", "-------- Racki andmebaas ----- / n"); fprintf (pFILE, "%s", "Artikli nimi:"); fprintf (pFILE, "%s", Tool. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Artikli asukoht:"); fprintf (pFILE, "%s", Tool. Location); fprintf (pFILE, "%s", "\ n"); fprintf (pFILE, "%s", "Artikli nimi:"); fprintf (pFILE, "%s", Pen. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Artikli asukoht:"); fprintf (pFILE, "%s", Pen. Location); fprintf (pFILE, "%s", "\ n");
fprintf (pFILE, "%s", "Artikli nimi:");
fprintf (pFILE, "%s", juhtum. Artikli_nimi); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Artikli asukoht:"); fprintf (pFILE, "%s", Case. Location); fprintf (pFILE, "%s", "\ n");
fclose (pFILE);
}
printf ("Juurdepääs keelatud / n");
}} ebaõnnestumine: if (led_1 || button_1 || button_2 || button_3) {printf ("rakenda gpio ressurss ebaõnnestus! / n"); libsoc_gpio_free (led_1); libsoc_gpio_free (nupp_1); libsoc_gpio_free (nupp_2); libsoc_gpio_free (nupp_3); }
Samm: käivitage programm
12. samm: Järeldused
Projektil on tulevik paljutõotav, kuna seda saab väga tõhusalt parandada, andureid saab RFID -siltide vastu vahetada ja samaaegselt RFID -ga on võimalik kasutada ID -kaarte, et jälgida, kes materjali eest vastutab.
Soovitan:
Nutikad prillid: 4 sammu
Nutikad prillid: Tere kõigile täna, ma näitan teile, kuidas kodus nutikaid prille teha! Nutiklaaside üks suurimaid asju on see, kui kasulik on tänapäeva tehnoloogiamaailmas midagi sellist omada ja kuidas pole ainult ühte versiooni
Nutikad valgusfoorid: 6 sammu
Nutikad valgusfoorid: miks ma selle projekti tegin? Olen Howest Kortijki õpilane. See on minu teise semestri kooliprojekt MCT. Kui ma sõidan oma autoga ja tänavatel on rahulik, on mõttetu punaste tulede ees seista, kui vastassuunas pole muud liiklust
Nutikad prillid (alla 10 dollari !!!): 8 sammu (piltidega)
Nutikad prillid (alla 10 dollari !!!): Tere! Me kõik oleme tuttavad selliste nutikate prillidega nagu E.D.I.T.H. tegi meie armastatud tegelane Tony Stark, mis hiljem anti edasi Peter Parkerile. Täna ehitan ühe sellise nutika klaasi, mis on ka alla 10 dollari! Nad pole päris
Nutikad prillid: 6 sammu
Nutikad prillid: Tere kõigile! Täna jagan teiega poisid, midagi, mida ma juba ammu tahtsin DIY nutikad prillid, mis on ehitatud umbes 25 $
DIY nutikad prillid - Arduino/ESP: 5 sammu
DIY nutikad prillid - Arduino/ESP: uus versioon on saadaval siin: [YouTube] Hei poisid! Ma olen siin, et näidata teile oma DIY projekti ja julgustada teid seda ise tegema! Projekt on tõelised nutikad prillid, mida igaüks saab kodus ise teha .Kõik kood on leitav siit ja ressursid: [GitHub] Ma ka