
Isi kandungan:
- Langkah 1: Bahan
- Langkah 2: Potong Potongan untuk Laci di MDF. (Untuk Hasil yang Lebih Baik Gunakan Pemotong Laser)
- Langkah 3: Tampal Semua Kepingan Bersama-sama untuk Membentuk Laci Dengan Dua Laci Kecil dan Satu Besar
- Langkah 4: Pasang Skru di Tengah Setiap Laci
- Langkah 5: Dengan Lubang Buat Bor Melalui Laci di Bahagian Belakang, Lubang Mesti Ukuran Sensor
- Langkah 6: Kimpal Setiap Sensor CNY 70 Dengan Wayar Tembaga. (ulangi 4 Kali Lagi)
- Langkah 7: Litar Khusus Digunakan untuk Sensor
- Langkah 8: Sambungkan Sensor Mezzanine ke Dragon Board 410c. (digunakan untuk Mengakses GPIO)
- Langkah 9: Sambungkan Litar Dari Breadboard ke Mezzanine
- Langkah 10: Tulis atau Salin Kod
- Langkah 11: Jalankan Program
- Langkah 12: Kesimpulan
2025 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2025-01-23 15:01

Dalam dokumen seterusnya, anda dapat melihat proses pembinaan dan pengaturcaraan laci pintar. Laci ini diprogramkan dalam Papan Naga 410c, dengan tujuan meningkatkan kualiti kota. Projek ini adalah sebahagian daripada pertandingan "smart city hackathon Qualcomm 17".
Idea projek ini bermula dengan masalah yang jarang dilihat oleh orang, iaitu pengurusan alat dan bahan yang hilang dan buruk yang disediakan oleh syarikat seperti kilang dan juga hospital. Di tempat-tempat ini, beberapa bahan dan alat disediakan kepada pekerja untuk melakukan aktiviti, bahan dan alat ini mesti digunakan semula kerana harganya mahal atau kekurangan sumber ekonomi untuk menggantikannya.
Di hospital, ada orang yang mengawal bahan yang dikeluarkan, tetapi apabila ada campur tangan manusia ada kesalahan, yang dapat menyebabkan perbelanjaan yang tidak perlu. Penyelesaian terbaik untuk masalah ini adalah laci pintar yang mampu menyimpan inventori objek yang dipinjam dan dikembalikan dan pada masa yang sama mengetahui siapa yang bertanggungjawab.
Langkah 1: Bahan
Bahan yang diperlukan untuk projek ini adalah yang berikut: 1 x Dragon Board 410c
1 x Sensor Mezzanine 96 Papan untuk Papan Naga 410c
1 x Papan Roti
Lembaran 1 x MDF (Medium Density Fiberboard) 61 x 122 cm
5 x sensor CNY 70
1 X TIP31B
1 x elektromagnet
1 x 7408
1 x Papan Kekunci
1 x skrin
3 x skru
Ketahanan (pelbagai)
Wayar tembaga
Lem
Gerudi
Langkah 2: Potong Potongan untuk Laci di MDF. (Untuk Hasil yang Lebih Baik Gunakan Pemotong Laser)

Langkah 3: Tampal Semua Kepingan Bersama-sama untuk Membentuk Laci Dengan Dua Laci Kecil dan Satu Besar
Langkah 4: Pasang Skru di Tengah Setiap Laci

Langkah 5: Dengan Lubang Buat Bor Melalui Laci di Bahagian Belakang, Lubang Mesti Ukuran Sensor

Langkah 6: Kimpal Setiap Sensor CNY 70 Dengan Wayar Tembaga. (ulangi 4 Kali Lagi)

Langkah 7: Litar Khusus Digunakan untuk Sensor

Langkah 8: Sambungkan Sensor Mezzanine ke Dragon Board 410c. (digunakan untuk Mengakses GPIO)

Sangat penting langkah ini dilakukan dengan mematikan papan naga, jika tidak boleh terbakar, selain itu semua PIN perlu diletakkan dengan betul.
Langkah 9: Sambungkan Litar Dari Breadboard ke Mezzanine




Langkah 10: Tulis atau Salin Kod
#masuk #masuk #masuk // # sertakan
#sertakan "libsoc_gpio.h"
#include "libsoc_debug.h" #include "libsoc_board.h"
/ * Sedikit kod di bawah ini menjadikan contoh ini berfungsi pada semua 96 Papan * /
LED LED yang tidak ditandatangani; // elektro iman
int BUTTON_1 yang tidak ditandatangani; // sensor pertama
int tidak ditandatangani BUTTON_2; // sensor kedua int tidak bertanda BUTTON_3; // tutup int tidak ditandatangani BUTTON_4; // sensor ketiga
Pengguna struktur {
nama pengguna char [20]; kata laluan char [20]; } Pengguna;
Pangkalan Data struct {
char Article_Name [20]; char Lokasi [20]; }Pangkalan data;
sensor int1;
sensor int2; sensor int3;
int sensor1_last_state;
int sensor2_last_state; int sensor3_last_state;
nama pengguna char [50];
kata laluan char [50];
char YesNo [40];
FILE * PFILE;
char Ya [20] = {"Ya"};
int running = 1;
_ atribut _ ((konstruktor)) kekosongan statik _init ()
{board_config * config = libsoc_board_init (); BUTTON_1 = libsoc_board_gpio_id (config, "GPIO-A"); // penumbuk sensor BUTTON_2 = libsoc_board_gpio_id (config, "GPIO-C"); // sensor kedua BUTTON_3 = libsoc_board_gpio_id (config, "GPIO-D"); // tutup rak BUTTON_4 = libsoc_board_gpio_id (config, "GPIO-B"); // sensor ketiga // BUTTON_5 = libsoc_board_gpio_id (config, "GPIO-E");
LED_1 = libsoc_board_gpio_id (config, "GPIO-E"); // elektro iman
libsoc_board_free (config); } / * Akhir kod khas 96Board * /
int utama ()
{gpio * led_1, * button_1, * button_2, * button_3, * button_4; // int sentuhan; Pengguna Karina struct; Pengurus Pengguna struct; strcpy (Karina. nama pengguna, "Karina Valverde"); strcpy (Karina.password, "Taller Vertical"); strcpy (Manager.username, "The Boss"); strcpy (Manager.password, "ITESM"); Alat Pangkalan Data struct; Pena Pangkalan Data struct; Kes Pangkalan Data struct; strcpy (Tool. Article_Name, "Alat"); Alat Pangkalan Data struct; Pena Pangkalan Data struct; Kes Pangkalan Data struct; strcpy (Tool. Article_Name, "Alat"); strcpy (Pen. Article_Name, "Pen"); strcpy (Case. Article_Name, "Case"); libsoc_set_debug (0); led_1 = libsoc_gpio_request (LED_1, LS_SHARED); butang_1 = libsoc_gpio_request (BUTTON_1, LS_SHARED); butang_2 = libsoc_gpio_request (BUTTON_2, LS_SHARED); butang_3 = libsoc_gpio_request (BUTTON_3, LS_SHARED); butang_4 = libsoc_gpio_request (BUTTON_4, LS_SHARED); // butang_5 = libsoc_gpio_request (BUTTON_5, LS_SHARED);
jika ((led_1 == NULL) || (button_1 == NULL) || (button_2 == NULL) || (button_3 == NULL) || (button_4 == NULL))
{goto gagal; } libsoc_gpio_set_direction (led_1, OUTPUT); libsoc_gpio_set_direction (butang_1, INPUT); libsoc_gpio_set_direction (butang_2, INPUT); libsoc_gpio_set_direction (butang_3, INPUT); libsoc_gpio_set_direction (butang_4, INPUT); // libsoc_gpio_set_direction (butang_5, INPUT);
jika ((libsoc_gpio_get_direction (led_1)! = OUTPUT)
|| (libsoc_gpio_get_direction (butang_1)! = INPUT) || (libsoc_gpio_get_direction (button_2)! = INPUT) || (libsoc_gpio_get_direction (button_3)! = INPUT) || (libsoc_gpio_get_direction (button_4)! = INPUT)) {goto gagal; } sensor1 = libsoc_gpio_get_level (butang_1); sensor2 = libsoc_gpio_get_level (butang_2); sensor3 = libsoc_gpio_get_level (butang_4); sensor1_last_state = sensor1; sensor2_last_state = sensor2; sensor3_last_state = sensor3; if (sensor1 == 1) {strcpy (Tool. Location, "Terletak di Rak"); } lain jika (sensor1 == 0) {strcpy (Tool. Location, "Tidak pernah diletakkan di Rak ini"); } if (sensor2 == 1) {strcpy (Pen. Lokasi, "Terletak di Rak"); } lain jika (sensor2 == 0) {strcpy (Pen. Lokasi, "Tidak pernah diletakkan di Rak ini"); } if (sensor3 == 1) {strcpy (Case. Location, "Terletak di Rak"); } lain jika (sensor3 == 0) {strcpy (Case. Location, "Tidak pernah diletakkan di Rak ini"); } semasa (berjalan) {libsoc_gpio_set_level (led_1, TINGGI); printf ("Sila masukkan nama pengguna:"); scanf ("% s", nama pengguna); printf ("Sila masukkan kata laluan:"); scanf ("% s", kata laluan); if (strcmp (nama pengguna, "Karina") == 0 && strcmp (kata laluan, "Taller") == 0) {libsoc_gpio_set_level (led_1, RENDAH); libsoc_gpio_set_level (led_1, RENDAH); sementara (libsoc_gpio_get_level (button_3)! = 1) {sensor1 = libsoc_gpio_get_level (butang_1); sensor2 = libsoc_gpio_get_level (butang_2); sensor3 = libsoc_gpio_get_level (butang_4); } libsoc_gpio_set_level (led_1, TINGGI); jika (sensor1 == 1 && sensor1! = sensor1_last_state) {strcpy (Tool. Location, Karina.username); } lain jika (sensor1 == 0 && sensor1! = sensor1_last_state) {strcpy (Tool. Location, "Terletak di Rack"); } if (sensor2 == 1 && sensor2! = sensor2_last_state) {strcpy (Pen. Lokasi, Karina. nama pengguna); } lain jika (sensor2 == 0 && sensor2! = sensor2_last_state) {strcpy (Pen. Lokasi, "Terletak di Rak"); }
jika (sensor3 == 1 && sensor3! = sensor3_last_state) {
strcpy (Kes. Lokasi, Karina. nama pengguna); } lain jika (sensor3 == 0 && sensor3! = sensor3_last_state) {strcpy (Case. Location, "Terletak di Rak"); }} lain jika (strcmp (nama pengguna, "Bos") == 0 && strcmp (kata laluan, "ITESM") == 0) {printf ("Adakah anda ingin menghasilkan fail teks dengan pangkalan data? [Ya / Tidak] "); scanf ("% s", YaTidak); if ((strcmp (YesNo, Yes) == 0)) {// Pengurus_pengguna (pFILE); pFILE = fopen ("Database.txt", "w"); fprintf (pFILE, "% s", "-------- Rack's Database ----- / n"); fprintf (pFILE, "% s", "Nama Artikel:"); fprintf (pFILE, "% s", Tool. Article_Name); fprintf (pFILE, "% s", "\ t"); fprintf (pFILE, "% s", "Lokasi Artikel:"); fprintf (pFILE, "% s", Tool. Location); fprintf (pFILE, "% s", "\ n"); fprintf (pFILE, "% s", "Nama Artikel:"); fprintf (pFILE, "% s", Pen. Article_Name); fprintf (pFILE, "% s", "\ t"); fprintf (pFILE, "% s", "Lokasi Artikel:"); fprintf (pFILE, "% s", Lokasi Pen.); fprintf (pFILE, "% s", "\ n");
fprintf (pFILE, "% s", "Nama Artikel:");
fprintf (pFILE, "% s", Case. Article_Name); fprintf (pFILE, "% s", "\ t"); fprintf (pFILE, "% s", "Lokasi Artikel:"); fprintf (pFILE, "% s", Case. Location); fprintf (pFILE, "% s", "\ n");
fclose (pFILE);
}
printf ("Akses Ditolak / n");
}} gagal: jika (led_1 || butang_1 || butang_2 || butang_3) {printf ("terapkan sumber gpio gagal! / n"); libsoc_gpio_free (led_1); libsoc_gpio_free (butang_1); libsoc_gpio_free (butang_2); libsoc_gpio_free (butang_3); }
Langkah 11: Jalankan Program
Langkah 12: Kesimpulan
Projek ini menjanjikan masa depan, kerana dapat diperbaiki dengan cara yang sangat efektif, sensor dapat diubah untuk tag RFID dan pada masa yang sama dengan RFID adalah mungkin untuk menggunakan kad pengenalan untuk memantau siapa yang bertanggung jawab atas bahan tersebut.
Disyorkan:
SISTEM PENGENDALIAN INVOICE DAN PENGENDALIAN INVENTORI: 3 Langkah

SISTEM PENGENDALIAN PENGENALAN DAN INVENTORI: Dengan arahan ini, saya akan memberi anda idea untuk membuat sistem kawalan Invois dan Inventori. Menggunakan akses MS. Ia sangat mudah dan tidak memerlukan lebih banyak pengetahuan komputer atau pengaturcaraan. Sekiranya anda mempunyai pengetahuan asas mengenai Ms Akses, Jadual. borang dan laporan t
Laci Rahsia: 4 Langkah

Laci Rahsia: Saya selalu terpesona dengan bilik rahsia atau laci tersembunyi. Itulah sebab mengapa saya memutuskan untuk membina laci tersembunyi saya sendiri satu hari selepas menonton filem Batman. Projek ini terdiri daripada bust dengan butang rahsia yang anda boleh letakkan di mana-mana
Tambahkan Kunci IOT ke Laci APAPUN !: 4 Langkah

Tambahkan Kunci IOT ke Laci APAPUN !: Helo! Setelah beberapa lama saya memutuskan untuk berkongsi projek terbaru saya dengan anda semua. Yang ini hanya idea yang saya dapat setelah membeli kunci solenoid yang murah dalam talian, dan ternyata ia adalah projek yang hebat. Oleh itu, pada dasarnya idea asasnya adalah untuk membuat
Sistem Pengurusan Inventori Bersepadu: 10 Langkah (dengan Gambar)

Sistem Pengurusan Inventori Bersepadu: Saya selalu mahukan cara yang berpatutan untuk mengesan semua yang ada di pantri saya, jadi beberapa bulan yang lalu saya mula mengusahakan projek yang dapat melakukan begitu sahaja. Tujuannya adalah untuk membuat sistem yang mudah dan berpatutan yang sangat mudah digunakan sementara juga
Inventori - Diagnostik Pc Pantas Kini Digantikan, Lihat Di Bawah: 6 Langkah

Inventori - Diagnostik Pc Cepat Kini Digantikan, Lihat Di Bawah: Sekiranya anda perlu mengusahakan komputer yang tidak berada di hadapan anda, anda memerlukan inventori yang tepat. Instruksional ini berlaku semata-mata kerana rakan sekerja menghadapi masalah mencari pemandu untuk komputer. Saya akan menggunakan Aida32 peribadi dari http://majorgeeks.com