Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Kunci yang Dikendalikan Gerakan

Komponen dan persediaan

SparkFun APDS-9960
× 1
Arduino UNO
× 1
Katoda Umum Difusi RGB
× 1
Adafruit LCD Standar - 16x2 Putih di Atas Biru
× 1
Resistor 4.75k ohm
× 2
Kabel jumper (generik)
× 1
Resistor 1k ohm
× 1

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

*Sensor APDS-9960 tidak bekerja dengan Arduino Nano atau Mega 2560 (dalam pengujian saya).

Proyek ini mudah dibuat dan digunakan. Jangan ragu untuk menggunakan segala jenis servo atau mekanisme penguncian dengan proyek ini. Ini dimaksudkan sebagai platform awal untuk kunci berbasis gerakan. Ke gedung!

Bahan

Saya mendapatkan sebagian besar bagian saya dari Amazon.com dan sensor APDS-9960 dari Sparkfun. Anda hanya dapat menggunakan Arduino Uno atau Micro 3.3v sejauh ini, karena papan lain tidak akan berfungsi karena alasan yang aneh.

Perakitan

Pasang LCD seperti yang ditunjukkan. Jika Anda tidak memiliki potensiometer 10k, gunakan resistor 1k dari kontras ke GND. Sensor APDS-9960 perlu digeser jika menggunakan Arduino Uno, jadi yang saya lakukan adalah mengambil SCL dan SDA dan menghubungkannya ke resistor 4.7k, kemudian menariknya tinggi dengan mengambil resistor 4.7k ke 3.3v. Kemudian hubungkan ke A4 dan A5, sesuai (lihat skema). Arduino dapat menggunakan baterai 9v dengan barel daya DC terpasang.

Lampiran

Saya menggunakan kotak kardus sederhana dan memotongnya agar sesuai dengan ke mana komponen akan pergi. Anda bisa menyolder ini semua ke sepotong papan perf, tapi saya baru saja meninggalkannya di papan tempat memotong roti dan menghubungkan kabel jumper ke komponen. Setelah saya selesai, tampilannya seperti ini.

Kode

  • Kode Arduino
Kode ArduinoC/C++
/* Koneksi Perangkat Keras:PENTING:APDS-9960 hanya dapat menerima 3.3V! Arduino Pin APDS-9960 Fungsi Papan 3.3V VCC Power GND GND Ground A4 SDA I2C Data A5 SCL I2C Clock 2 INT InterruptResources:Include Wire.h dan SparkFun_APDS-9960.h*/#include #include #include #include #define PINSIZE 6 #define SERVOPIN 9//Berapa banyak gerakan kata sandi Anda// Pins#define APDS9960_INT 2 // Perlu interupsi pinLiquidCrystal lcd( 12,11,6,5,4,3);Servo servo;uint8_t proximity_data =0;int red_led =A1;int green_led =A2;int pageNum =0; //LCD "page"String secret[PINSIZE] ={"UP","DOWN","UP","UP","RIGHT","LEFT"}; // Kata sandi ada di sini. Harus dalam CAPS. Dapat berupa "ATAS", "BAWAH", "KIRI", atau "KANAN"String currentGesture ="";int numRight =0;SparkFun_APDS9960 apds =SparkFun_APDS9960(); //Init APDS-9960 libraryint isr_flag =0;void setup() { // Tetapkan pin interupsi sebagai input pinMode(APDS9960_INT, INPUT);lcd.begin(16,2);servo.attach(SERVOPIN);servo.write( 0);servo.detach(); // Inisialisasi port Serial Serial.begin(9600); Serial.print("Password Anda adalah "); Serial.print(PINSIZE); Serial.println("gestur panjang."); Serial.println(); Serial.println(F("----------------")); Serial.println(F("Kunci APDS-9960")); Serial.println(F("----------------")); // Inisialisasi rutin layanan interupsi attachInterrupt(0, interruptRoutine, FALLING); // Inisialisasi APDS-9960 (konfigurasi I2C dan nilai awal) if ( apds.init() ) { Serial.println(F("APDS-9960 inisialisasi selesai")); } else { Serial.println(F("Ada yang tidak beres selama APDS-9960 init!")); } if ( !apds.setProximityGain(PGAIN_1X) ) { Serial.println(F("Ada yang salah saat mencoba menyetel PGAIN")); } if ( apds.enableProximitySensor(false) ) { Serial.println(F("Sensor jarak sedang berjalan")); } else { Serial.println(F("Ada yang salah saat sensor init!")); } // Mulai jalankan mesin sensor gerakan APDS-9960 if ( apds.enableGestureSensor(true) ) { Serial.println(F("Sensor gerakan sekarang berjalan")); } else { Serial.println(F("Ada yang salah saat sensor gerakan init!")); } }void loop() { if(pageNum==0){ if ( !apds.readProximity(proximity_data) ) { Serial.println("Kesalahan membaca nilai kedekatan"); } else { Serial.println(kedekatan_data); if((proximity_data>=40) &&(pageNum==0)){ pageNum=1; penundaan(2000); } } } switch(pageNum){ kasus 0:LCDClear(); lcd.print("Terkunci- get"); lcd.setCursor(0,1); lcd.print("3 inci."); berkedipMerah(); LCDClear(); merusak; kasus 1:numRight =0; lcd.print("Masukkan kode..."); lcd.setCursor(0,0); for(int x=0; x0;x--){ LCDClear(); lcd.print("Menutup:"); lcd.setCursor(0,1); lcd.print(x); lcd.setCursor(1,1); lcd.print("detik..."); delay(1000);}LCClear();lcd.print("Menutup");}

Skema


Proses manufaktur

  1. Kunci
  2. Kunci Kombinasi
  3. Alarm Tanaman Peringatan Haus
  4. Jam Kata Italia
  5. Hanya Tiga Pin untuk Keypad 4x3
  6. Sigfox kWh Meter
  7. Pemantau Suhu Bluetooth
  8. IC Pendamping
  9. Input Analog Terisolasi untuk Arduino
  10. Ukur waktu reaksi Anda