
Mündəricat:
- Addım 1: Materiallar
- Addım 2: MDF -də Çekmece üçün Parçaları kəsin. (Daha yaxşı nəticələr üçün lazer kəsici istifadə edin)
- Addım 3: İki kiçik və böyük bir çekmece ilə bir çekmece yaratmaq üçün bütün parçaları bir -birinə yapışdırın
- Addım 4: Vidaları hər bir çekmecenin ortasına vidalayın
- Addım 5: Matkapla Arxa tərəfdəki Çekmecədən Deliklər Açın, Delik Sensor Ölçüsü Olmalıdır
- Addım 6: Hər bir CNY 70 Sensorunu Mis Tellərlə Qaynaqlayın. (4 dəfə daha çox təkrarlayın)
- Addım 7: Sensor üçün xüsusi bir dövrə istifadə olunur
- Addım 8: Sensor Mezzanini Dragon Board 410c -ə qoşun. (GPIO -ya daxil olmaq üçün istifadə olunur)
- Addım 9: Dövrəni Breadboard -dan Mezzanine bağlayın
- Addım 10: Kodu yazın və ya kopyalayın
- Addım 11: Proqramı işə salın
- Addım 12: Nəticələr
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-23 12:54

Növbəti sənəddə, ağıllı bir çekmecenin qurulması və proqramlaşdırılması prosesini görə bilərsiniz. Bu çekmece, şəhərlərin keyfiyyətini artırmaq məqsədi ilə Dragon Board 410c -də proqramlaşdırılmışdır. Layihə, "ağıllı şəhərlər hackathon Qualcomm 17" yarışmasının bir hissəsidir.
Bu layihənin ideyası, çox az adamın gördüyü bir problemlə başladı, bu, fabriklər və hətta xəstəxanalar kimi şirkətlər tərəfindən təmin edilən alət və materialların itirilmiş və pis idarə olunmasıdır. Bu yerlərdə işləmək üçün işçilərə bəzi materiallar və alətlər verilir, bu material və alətlər bahalı olduğu üçün və ya onları əvəz etmək üçün iqtisadi qaynaqların olmaması səbəbindən yenidən istifadə edilməlidir.
Xəstəxanalarda, çıxarılan materiallara nəzarəti ələ alan insanlar var, ancaq insan müdaxiləsi olduqda səhv var ki, bu da lazımsız xərclərə səbəb ola bilər. Bu problemin ən yaxşı həlli, borc götürülən və qaytarılmış obyektlərin inventarını saxlaya bilən və eyni zamanda kimin məsuliyyət daşıdığını bilən ağıllı bir çekmecedir.
Addım 1: Materiallar
Layihə üçün lazım olan material aşağıdakılardır: 1 x Dragon Board 410c
1 x Sensor Mezzanine 96 Dragon Board 410c üçün lövhələr
1 x Çörək paneli
1 x MDF (Orta Sıxlıq Fiberboard) vərəqi 61 x 122 sm
5 x CNY 70 sensoru
1 X TIP31B
1 x elektromaqnit
1 x 7408
1 x Klaviatura
1 x ekran
3 x vida
Müqavimət (müxtəliflik)
Mis tellər
Yapışqan
Qazma
Addım 2: MDF -də Çekmece üçün Parçaları kəsin. (Daha yaxşı nəticələr üçün lazer kəsici istifadə edin)

Addım 3: İki kiçik və böyük bir çekmece ilə bir çekmece yaratmaq üçün bütün parçaları bir -birinə yapışdırın
Addım 4: Vidaları hər bir çekmecenin ortasına vidalayın

Addım 5: Matkapla Arxa tərəfdəki Çekmecədən Deliklər Açın, Delik Sensor Ölçüsü Olmalıdır

Addım 6: Hər bir CNY 70 Sensorunu Mis Tellərlə Qaynaqlayın. (4 dəfə daha çox təkrarlayın)

Addım 7: Sensor üçün xüsusi bir dövrə istifadə olunur

Addım 8: Sensor Mezzanini Dragon Board 410c -ə qoşun. (GPIO -ya daxil olmaq üçün istifadə olunur)

Bu addımın əjdaha lövhəsi söndürüldükdə edilməsi çox vacibdir, əgər yanmazsa, bütün PİN kodlarının düzgün yerləşdirilməsi lazımdır.
Addım 9: Dövrəni Breadboard -dan Mezzanine bağlayın




Addım 10: Kodu yazın və ya kopyalayın
#daxil edin #daxil edin #daxil edin # #daxil edin
#"libsoc_gpio.h" daxil edin
#"libsoc_debug.h" daxil edin #"libsoc_board.h" daxil edin
/ * Aşağıdakı bu kod parçası bu nümunəni bütün 96Boards üzərində işləməyə məcbur edir */
işarəsiz int LED_1; // elektro iman
imzasız int BUTTON_1; // ilk sensor
imzasız int BUTTON_2; // ikinci sensor işarəsiz int BUTTON_3; // işarəsiz int BUTTON_4 -ü bağla; // üçüncü sensor
struktur İstifadəçi {
char istifadəçi adı [20]; char parol [20]; } İstifadəçi;
struktur verilənlər bazası {
char Article_Name [20]; char Məkan [20]; } Verilənlər bazası;
int sensoru 1;
int sensoru 2; int sensor 3;
int sensor1_last_state;
int sensor2_last_state; int sensor3_last_state;
char istifadəçi adı [50];
char parol [50];
char YesNo [40];
DOSYA *pFILE;
char Bəli [20] = {"Bəli"};
int çalışan = 1;
_attribute _ ((qurucu)) statik boşluq _init ()
{board_config *config = libsoc_board_init (); BUTTON_1 = libsoc_board_gpio_id (konfiqurasiya, "GPIO-A"); // yumruq sensoru BUTTON_2 = libsoc_board_gpio_id (konfiqurasiya, "GPIO-C"); // ikinci sensor BUTTON_3 = libsoc_board_gpio_id (konfiqurasiya, "GPIO-D"); // rəfi bağla BUTTON_4 = libsoc_board_gpio_id (konfiqurasiya, "GPIO-B"); // üçüncü sensor // BUTTON_5 = libsoc_board_gpio_id (konfiqurasiya, "GPIO-E");
LED_1 = libsoc_board_gpio_id (konfiqurasiya, "GPIO-E"); // elektro iman
libsoc_board_free (konfiqurasiya); } / * 96Boards xüsusi kodu sonu * /
int main ()
{gpio *led_1, *button_1, *button_2, *button_3, *button_4; // int touch; İstifadəçi Karina; struktur İstifadəçi Meneceri; strcpy (Karina.username, "Karina Valverde"); strcpy (Karina.password, "Taller Vertical"); strcpy (Manager.username, "The Boss"); strcpy (Manager.password, "ITESM"); struct Database Tool; struktur verilənlər bazası qələmi; struktur Database Case; strcpy (Tool. Article_Name, "Alət"); struktur verilənlər bazası vasitəsi; struktur verilənlər bazası qələmi; struktur Database Case; strcpy (Tool. Article_Name, "Alət"); strcpy (Pen. Article_Name, "Qələm"); 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);
əgər ((led_1 == NULL) || (button_1 == NULL) || (button_2 == NULL) || (button_3 == NULL) || (button_4 == NULL))
{uğursuz olmaq; } libsoc_gpio_set_direction (led_1, ÇIXIŞ); libsoc_gpio_set_direction (düymə_1, GİRİŞ); libsoc_gpio_set_direction (düymə_2, GİRİŞ); libsoc_gpio_set_direction (düymə_3, GİRİŞ); libsoc_gpio_set_direction (düymə_4, GİRİŞ); // libsoc_gpio_set_direction (düymə_5, GİRİŞ);
əgər ((libsoc_gpio_get_direction (led_1)! = ÇIXIŞ)
|| (libsoc_gpio_get_direction (button_1)! = GİRİŞ) || (libsoc_gpio_get_direction (button_2)! = GİRİŞ) || (libsoc_gpio_get_direction (button_3)! = GİRİŞ) || (libsoc_gpio_get_direction (button_4)! = GİRİŞ)) {uğursuz oldu; } sensor1 = libsoc_gpio_get_level (düymə_1); sensor2 = libsoc_gpio_get_level (düymə_2); sensor3 = libsoc_gpio_get_level (düymə_4); sensor1_last_state = sensor1; sensor2_last_state = sensor2; sensor3_last_state = sensor3; if (sensor1 == 1) {strcpy (Tool. Location, "Rafda yerləşir"); } else if (sensor1 == 0) {strcpy (Tool. Location, "Heç vaxt bu rafda yerləşdirilmir"); } if (sensor2 == 1) {strcpy (Pen. Location, "Rafda yerləşir"); } else if (sensor2 == 0) {strcpy (Pen. Location, "Heç vaxt bu rafda yerləşdirilmir"); } if (sensor3 == 1) {strcpy (Case. Location, "Rafda yerləşir"); } else if (sensor3 == 0) {strcpy (Case. Location, "Heç vaxt bu rafda yerləşdirilmir"); } (işləyərkən) {libsoc_gpio_set_level (led_1, HIGH); printf ("İstifadəçi adını daxil edin:"); scanf ("%s", istifadəçi adı); printf ("Zəhmət olmasa parol daxil edin:"); scanf ("%s", parol); if (strcmp (istifadəçi adı, "Karina") == 0 && strcmp (parol, "Daha Uzun") == 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 (düymə_2); sensor3 = libsoc_gpio_get_level (düymə_4); } libsoc_gpio_set_level (led_1, HIGH); if (sensor1 == 1 && sensor1! = sensor1_last_state) {strcpy (Tool. Location, Karina.username); } if if (sensor1 == 0 && sensor1! = sensor1_last_state) {strcpy (Tool. Location, "Rafda yerləşir"); } if (sensor2 == 1 && sensor2! = sensor2_last_state) {strcpy (Pen. Location, Karina.username); } else if (sensor2 == 0 && sensor2! = sensor2_last_state) {strcpy (Pen. Location, "Rafda yerləşir"); }
əgər (sensor3 == 1 && sensor3! = sensor3_last_state) {
strcpy (Case. Location, Karina.username); } else if (sensor3 == 0 && sensor3! = sensor3_last_state) {strcpy (Case. Location, "Rafda yerləşir"); }} else if (strcmp (istifadəçi adı, "Boss") == 0 && strcmp (parol, "ITESM") == 0) {printf ("Verilənlər bazası ilə mətn faylı yaratmaq istəyirsiniz? [Bəli/Xeyr] "); scanf ("%s", Bəli Xeyr); if ((strcmp (YesNo, Yes) == 0)) {// Manager_user (pFILE); pFILE = fopen ("Database.txt", "w"); fprintf (pFILE, "%s", "-------- Rafın Veritabanı ----- / n"); fprintf (pFILE, "%s", "Məqalənin Adı:"); fprintf (pFILE, "%s", Tool. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Məqalənin yeri:"); fprintf (pFILE, "%s", Tool. Location); fprintf (pFILE, "%s", "\ n"); fprintf (pFILE, "%s", "Məqalənin Adı:"); fprintf (pFILE, "%s", Pen. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Məqalənin yeri:"); fprintf (pFILE, "%s", Pen. Location); fprintf (pFILE, "%s", "\ n");
fprintf (pFILE, "%s", "Məqalənin Adı:");
fprintf (pFILE, "%s", Case. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "Məqalənin yeri:"); fprintf (pFILE, "%s", Case. Location); fprintf (pFILE, "%s", "\ n");
fclose (pFILE);
}
printf ("Giriş Rədd edildi / n");
}} uğursuz: if (led_1 || button_1 || button_2 || button_3) {printf ("apply gpio resource fail! / n"); libsoc_gpio_free (led_1); libsoc_gpio_free (button_1); libsoc_gpio_free (düymə_2); libsoc_gpio_free (düymə_3); }
Addım 11: Proqramı işə salın
Addım 12: Nəticələr
Layihənin perspektivli perspektivləri var, çünki çox təsirli bir şəkildə inkişaf edə biləcəyi üçün sensorlar RFID etiketləri üçün dəyişdirilə bilər və eyni zamanda RFID ilə birlikdə kimin materialdan məsul olduğunu izləmək üçün şəxsiyyət vəsiqələrindən istifadə etmək mümkündür.
Tövsiyə:
Ağıllı Masa LED İşığı - Ağıllı İşıqlandırma W/ Arduino - Neopixels İş Sahəsi: 10 Adım (Şəkillərlə birlikdə)

Ağıllı Masa LED İşığı | Ağıllı İşıqlandırma W/ Arduino | Neopixels Çalışma Alanı: İndi günlərimiz evdə çox vaxt keçirir, virtual olaraq oxuyuruq və işləyirik, buna görə də xüsusi və ağıllı işıqlandırma sistemi olan Arduino və Ws2812b LEDləri ilə iş sahəmizi daha da genişləndirməyək. Masa üstü LED işığı
SONOFF Ağıllı Açarları ilə Ağıllı Pərdələri necə DIY etmək olar ?: 14 addım

SONOFF Smart Açarları ilə Ağıllı Panjurları Necə DIY etmək olar?: SONOFF ağıllı açarlarda kilidləmə rejimindən istifadə edərək adi pərdələrinizi/pərdələrinizi ağıllı hala gətirin Çoxlarınız bunun səhərlər pərdələri/pərdələri çəkdiyiniz bir iş olduğunu qəbul edəcəksinizmi? və axşam aşağı çəkin? Hər halda, mən
Ağıllı Zəngli Saat: Raspberry Pi ilə Ağıllı Zəngli Saat: 10 addım (şəkillərlə)

Ağıllı Zəngli Saat: Raspberry Pi ilə Ağıllı Zəngli Saat: Heç ağıllı bir saat istəmisinizmi? Əgər belədirsə, bu sizin üçün bir həlldir! Ağıllı Zəngli Saat hazırladım, bu veb saytına görə zəngli saatını dəyişə biləcəyiniz bir saatdır. Siqnal çalınanda bir səs (zil) olacaq və 2 işıq yanacaq
ESP32: 7 addımlardan istifadə edərək IoT əsaslı Ağıllı Bağçılıq və Ağıllı Kənd Təsərrüfatı

ESP32 istifadə edərək IoT əsaslı Ağıllı Bağçılıq və Ağıllı Kənd Təsərrüfatı: Dünya zaman keçdikcə kənd təsərrüfatı kimi dəyişir. Hazırda insanlar hər sahədə elektronikanı birləşdirir və kənd təsərrüfatı bunun üçün istisna deyil. Kənd təsərrüfatında elektronikanın bu birləşməsi fermerlərə və bağları idarə edən insanlara kömək edir
Ağıllı evinizi ağıllı şəkildə qoruyun: 14 addım

Ağıllı Evinizi Smartly Secure: Təhlükəsiz və etibarlı bir yarışma üçün yarışıram. Təlimatçılığımı bəyənirsinizsə, zəhmət olmasa ona səs verin! Mən sizə evinizi və ətrafınızı necə asanlıqla və ucuz bir şəkildə necə təmin edəcəyinizi göstərəcəyəm. Konfiqurasiya edin