Daftar Isi:

Laci Inventaris "Smart Cities Hackathon Qualcomm17": 13 Langkah
Laci Inventaris "Smart Cities Hackathon Qualcomm17": 13 Langkah

Video: Laci Inventaris "Smart Cities Hackathon Qualcomm17": 13 Langkah

Video: Laci Inventaris
Video: Capgemini's Smart Asset Management 2024, November
Anonim
Laci Inventaris
Laci Inventaris

Dalam dokumen berikutnya, Anda dapat melihat proses konstruksi dan pemrograman laci cerdas. Laci ini diprogram dalam Dragon Board 410c, dengan tujuan untuk meningkatkan kualitas kota. Proyek ini merupakan bagian dari kontes "kota pintar hackathon Qualcomm 17".

Ide proyek ini berawal dari masalah yang jarang dilihat orang, yaitu hilang dan rusaknya pengelolaan alat dan bahan yang disediakan oleh perusahaan seperti pabrik bahkan rumah sakit. Di tempat-tempat ini, beberapa bahan dan alat disediakan untuk para pekerja untuk melakukan aktivitas, bahan dan alat ini harus digunakan kembali karena harganya mahal atau kurangnya sumber daya ekonomi untuk menggantinya.

Di rumah sakit, ada orang yang mengendalikan bahan yang dikeluarkan, tetapi ketika ada campur tangan manusia, ada kesalahan, yang dapat menyebabkan pengeluaran yang tidak perlu. Solusi terbaik untuk masalah ini adalah laci cerdas yang mampu menjaga inventaris barang-barang yang dipinjam dan dikembalikan dan sekaligus tahu siapa yang bertanggung jawab.

Langkah 1: Bahan

Bahan yang dibutuhkan untuk proyek ini adalah: 1 x Dragon Board 410c

1 x Sensor Mezzanine 96 Papan untuk Papan Naga 410c

1 x papan tempat memotong roti

1 x lembar MDF (Medium Density Fiberboard) 61 x 122 cm

5 x sensor CNY 70

1 X TIP31B

1 x elektromagnet

1x7408

1 x Papan Ketik

1 x layar

3 x sekrup

Resistensi (berbagai)

Kabel tembaga

Lem

Mengebor

Langkah 2: Potong Potongan untuk Laci di MDF. (Untuk Hasil Lebih Baik Gunakan Pemotong Laser)

Potong Potongan untuk Laci di MDF. (Untuk Hasil Lebih Baik Gunakan Pemotong Laser)
Potong Potongan untuk Laci di MDF. (Untuk Hasil Lebih Baik Gunakan Pemotong Laser)

Langkah 3: Tempel Semua Potongan Bersama untuk Membentuk Laci Dengan Dua Laci Kecil dan Satu Laci Besar

Langkah 4: Pasang Sekrup di Tengah Setiap Laci

Pasang Sekrup di Tengah Setiap Laci
Pasang Sekrup di Tengah Setiap Laci

Langkah 5: Dengan Bor Buat Lubang Melalui Laci di Sisi Belakang, Lubang Harus Seukuran Sensor

Dengan Bor Membuat Lubang Melalui Laci di Sisi Belakang, Lubang Harus Seukuran Sensor
Dengan Bor Membuat Lubang Melalui Laci di Sisi Belakang, Lubang Harus Seukuran Sensor

Langkah 6: Las Setiap Sensor CNY 70 Dengan Kabel Tembaga. (ulangi 4 Kali Lebih Banyak)

Las Setiap Sensor CNY 70 Dengan Kabel Tembaga. (ulangi 4 Kali Lebih Banyak)
Las Setiap Sensor CNY 70 Dengan Kabel Tembaga. (ulangi 4 Kali Lebih Banyak)

Langkah 7: Sirkuit Utama Digunakan untuk Sensor

Sirkuit Utama Digunakan untuk Sensor
Sirkuit Utama Digunakan untuk Sensor

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

Hubungkan Sensor Mezzanine ke Dragon Board 410c. (digunakan untuk Mengakses GPIO)
Hubungkan Sensor Mezzanine ke Dragon Board 410c. (digunakan untuk Mengakses GPIO)

Sangat penting bahwa langkah ini dilakukan dengan papan naga mati, jika tidak bisa terbakar, selain itu semua PIN harus ditempatkan dengan benar.

Langkah 9: Hubungkan Sirkuit Dari Breadboard ke Mezzanine

Hubungkan Sirkuit Dari Breadboard ke Mezzanine
Hubungkan Sirkuit Dari Breadboard ke Mezzanine
Hubungkan Sirkuit Dari Breadboard ke Mezzanine
Hubungkan Sirkuit Dari Breadboard ke Mezzanine
Hubungkan Sirkuit Dari Breadboard ke Mezzanine
Hubungkan Sirkuit Dari Breadboard ke Mezzanine
Hubungkan Sirkuit Dari Breadboard ke Mezzanine
Hubungkan Sirkuit Dari Breadboard ke Mezzanine

Langkah 10: Tulis atau Salin Kode

#sertakan #sertakan #sertakan //#sertakan

#sertakan "libsoc_gpio.h"

#sertakan "libsoc_debug.h" #sertakan "libsoc_board.h"

/* Sedikit kode di bawah ini membuat contoh ini berfungsi di semua 96Boards */

unsigned int LED_1; // elektro iman

unsigned int BUTTON_1;//sensor pertama

unsigned int BUTTON_2;//sensor kedua unsigned int BUTTON_3;// tutup unsigned int BUTTON_4;//sensor ketiga

struct Pengguna{

char nama pengguna[20]; kata sandi karakter[20]; }Pengguna;

struct Database{

char Article_Name[20]; lokasi karakter[20]; }Basis data;

int sensor1;

int sensor2; int sensor3;

int sensor1_last_state;

int sensor2_last_state; int sensor3_last_state;

nama pengguna karakter[50];

kata sandi karakter[50];

char YaTidak[40];

FILE *pFILE;

char Ya[20] = {"Ya"};

int berjalan = 1;

_attribute_((konstruktor)) static void _init()

{ board_config *config = libsoc_board_init(); BUTTON_1 = libsoc_board_gpio_id(config, "GPIO-A");//sensor tinju 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 dari kode khusus 96Boards */

int utama()

{ gpio *led_1, *button_1, *button_2, *button_3, *button_4; //int sentuh; struct Pengguna Karina; struct Manajer Pengguna; strcpy(Karina.namapengguna, "Karina Valverde"); strcpy(Karina.password, "Vertikal Lebih Tinggi"); strcpy(Manager.namapengguna, "Bos"); strcpy(Manager.kata sandi, "ITESM"); struct Alat Basis Data; struct Pena Basis Data; struct Kasus Basis Data; strcpy(Alat. Nama_Artikel, "Alat"); struct Alat Basis Data; struct Pena Basis Data; struct Kasus Basis Data; strcpy(Alat. Nama_Artikel, "Alat"); strcpy(Nama_Pena. Artikel, "Pena"); strcpy(Kasus. Nama_Artikel, "Kasus"); 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))

{ gagal; } 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)) { gagal; } sensor1 = libsoc_gpio_get_level(button_1); sensor2 = libsoc_gpio_get_level(button_2); sensor3 = libsoc_gpio_get_level(button_4); sensor1_last_state = sensor1; sensor2_last_state = sensor2; sensor3_last_state = sensor3; if (sensor1 ==1){ strcpy(Alat. Lokasi, "Terletak di Rak"); } else if (sensor1 == 0){ strcpy(Tool. Location, "Jangan pernah ditempatkan di Rak ini"); } if (sensor2 ==1){ strcpy(Pen. Location, "Terletak di Rak"); } else if (sensor2 == 0){ strcpy(Pen. Location, "Jangan pernah ditempatkan di Rak ini"); } if (sensor3 ==1){ strcpy(Kasus. Lokasi, "Terletak di Rak"); } else if (sensor3 == 0){ strcpy(Case. Location, "Jangan pernah ditempatkan di Rak ini"); } while(berjalan) { libsoc_gpio_set_level(led_1, TINGGI); printf("Silahkan masukkan nama pengguna: "); scanf("%s", nama pengguna); printf("Silahkan masukkan password: "); scanf("%s", kata sandi); if (strcmp(nama pengguna, "Karina") == 0 && strcmp(sandi, "Lebih Tinggi") == 0){ libsoc_gpio_set_level(led_1, RENDAH); libsoc_gpio_set_level(led_1, RENDAH); while(libsoc_gpio_get_level(button_3) != 1){ sensor1 = libsoc_gpio_get_level(button_1); sensor2 = libsoc_gpio_get_level(button_2); sensor3 = libsoc_gpio_get_level(button_4); } libsoc_gpio_set_level(led_1, TINGGI); if (sensor1 == 1 && sensor1 != sensor1_last_state){ strcpy(Alat. Lokasi, Karina.namapengguna); }else if (sensor1 == 0 && sensor1 != sensor1_last_state){ strcpy(Tool. Location, "Terletak di Rak"); } if (sensor2 == 1 && sensor2 != sensor2_last_state){ strcpy(Pen. Location, Karina.username); }else if (sensor2 == 0 && sensor2 != sensor2_last_state){ strcpy(Pen. Location, "Terletak di Rak"); }

if (sensor3 == 1 && sensor3 != sensor3_last_state){

strcpy(Kasus. Lokasi, Karina.namapengguna); }else if (sensor3 == 0 && sensor3 != sensor3_last_state){ strcpy(Case. Location, "Terletak di Rak"); } }else if (strcmp(username, "Boss") == 0 && strcmp(password, "ITESM") == 0){ printf(" Apakah Anda ingin membuat file teks dengan database? [Ya/Tidak] "); scanf("%s", YaTidak); if ((strcmp(YaTidak, Ya) == 0)){ //Manager_user(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", Alat. Lokasi); fprintf(pFILE, "%s", "\n"); fprintf(pFILE, "%s", "Nama Artikel:"); fprintf(pFILE, "%s", Nama_Pena. Artikel); fprintf(pFILE, "%s", "\t"); fprintf(pFILE, "%s", "Lokasi Artikel:"); fprintf(pFILE, "%s", Pena. Location); 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", Kasus. Lokasi); fprintf(pFILE, "%s", "\n");

fclose(pFILE);

}

printf("Akses Ditolak\n");

} } gagal: if(led_1 || button_1|| button_2|| button_3) { printf("terapkan sumber daya gpio gagal!\n"); libsoc_gpio_free(led_1); libsoc_gpio_free(button_1); libsoc_gpio_free(button_2); libsoc_gpio_free(button_3); }

Langkah 11: Jalankan Program

Langkah 12: Kesimpulan

Proyek ini memiliki masa depan yang menjanjikan, karena dapat ditingkatkan dengan cara yang sangat efektif, sensor dapat diubah untuk tag RFID´S dan pada saat yang sama dengan RFID dimungkinkan untuk menggunakan kartu ID untuk memantau siapa yang bertanggung jawab atas materi tersebut.

Direkomendasikan: