Daftar Isi:
- Langkah 1: Komponen Plastik
- Langkah 2: Hancurkan Komponen Cetakan Non 3D
- Langkah 3: Elektronik
- Langkah 4: Perakitan
- Langkah 5: Kode
- Langkah 6: File
Video: Pengisi Daya Telepon Otomatis: 6 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:58
"Instruksi ini dibuat untuk memenuhi persyaratan proyek Makecourse di University of South Florida (www.makecourse.com)"
Ide di balik proyek ini adalah untuk membuat perangkat yang dapat mengisi daya telepon, dan kemudian mencabutnya ketika telepon mencapai 100%. Ini akan menghentikan masalah pengisian berlebih.
Langkah 1: Komponen Plastik
Ada beberapa komponen yang digunakan yang dicetak 3D. Komponen-komponen ini terdiri dari alas, dudukan untuk pengisi daya, satu set roda gigi rak dan pinion (roda gigi normal dan bagian linier yang mengubah rotasi menjadi gerakan linier), dan alas untuk segala sesuatu untuk beroperasi. Komponen-komponen ini akan dijelaskan dalam paragraf berikut. Dalam urutan penampilan
Pemegang pengisi daya
Tujuan dari ini adalah untuk menahan pengisi daya telepon, atau setidaknya memberikannya basis yang lebih baik dan rata.
Basis
Basis memiliki cincin untuk dudukan telepon serta trek untuk set roda gigi.
Pemegang Telepon
Memegang telepon, jelas
Lengan Telepon
Memindahkan dan memegang telepon
Set Perlengkapan Rak dan Pinion
Digunakan untuk memindahkan pengisi daya telepon bolak-balik
Langkah 2: Hancurkan Komponen Cetakan Non 3D
Ini adalah komponen yang dibeli untuk proyek atau sudah dimiliki. Untuk beberapa bagian yang saya tautkan ke mereka/barang serupa di amazon, tetapi jangan ragu untuk mendapatkannya di mana saja.
Servo Mikro:
Standar 0-180 Servo:
Modul Serial Bluetooth HC-05:
Pengisi Daya Telepon dan Telepon
Arduino
Papan tempat memotong roti
Kotak atau tempat sampah untuk alas
Sensor Sentuh:
Langkah 3: Elektronik
Sirkuit untuk proyek ini mungkin memerlukan beberapa, terutama karena modul HC-05. Banyak dari modul jenis ini memiliki kecepatan sekitar 3.3V hingga 6V, yang berada dalam jangkauan operasi Arduino. Tapi, untuk komunikasi serial pin Rx terkadang bekerja lebih baik hanya dengan 3.3V. Seperti yang terlihat pada diagram di atas, kedua servo terhubung ke pin Vin di Arduino. Tegangan ekstra ini dapat disupply oleh apa saja, saya menggunakan baterai 9 volt. Sensor sentuh dicolokkan ke 5V di Arduino. Ini karena semua komponen mengalami kesulitan menjalankan tegangan yang sama. Sensor sentuh terpasang pada pin 2 sehingga dapat digunakan sebagai interupsi pin. Kemudian modul bluetooth dihubungkan ke pin Rx dan Tx untuk komunikasi serial. Antara pin Rx pada modul dan Tx pada Arduino adalah resistor 2 kilo ohm dengan 1 kilo ohm yang terhubung ke ground. Ini membantu mengatur tegangan yang masuk.
Langkah 4: Perakitan
Perakitannya cukup sederhana.
- dengan beberapa lem super pasang servos Anda di posisinya, satu untuk roda gigi dengan potongan di alas dan satu di dekat tempat dasar telepon.
- Pasang sensor sentuh ke dudukan ponsel, sehingga bisa mengetahui saat ponsel ada.
- Kemudian pasang roda gigi dan lengan ke servo masing-masing
- Pastikan kabel tidak mengganggu komponen lain saat Anda mengisi perangkat elektronik Anda
Langkah 5: Kode
Ada tiga set kode yang akan disajikan, satu kode untuk Arduino yang dibuat di Arduino IDE dan dua kode yang dibuat di Android Studio. Aplikasi Android sama kecuali satu adalah aplikasi lengkap yang melacak masa pakai baterai dan yang lainnya tidak. Yang kedua adalah untuk tujuan pengujian.
Kode Arduino
Poin utama dari kode ini adalah untuk mengoperasikan sensor sentuh dan motor, ia menerima perintah dari telepon dan menindaklanjutinya.
#include //memanggil perpustakaan servo sehingga kita dapat mengontrol dua servosServo servo1; Servo servo2;//membuat dua objek servo untuk setiap motor servo int a=0;//variabel pelacakan untuk pengujian int q=0;//variabel yang memungkinkan adanya penundaan sebelum proses pluggin dimulai char c;// variabel yang berisi pesan serial dari telepon void setup() { attachInterrupt(digitalPinToInterrupt(2), AH, FALLING);// melampirkan interupsi jatuh untuk mengetahui dengan tepat kapan sensor sentuh melihat saat telepon sedang keluar di servo1.attach (10); servo2.attach(9);// menginisialisasi dua servo Serial.begin(9600);// memulai komunikasi serial dengan kecepatan yang mirip dengan modul bluetooth servo2.write(20);//auto menyetel servo ke posisi awal servo1.write(180); }
lingkaran kosong() {
if (Serial.available()){// ini memeriksa apakah ada sesuatu yang masuk dari telepon melalui pin serial Tx dan Rx c=Serial.read();//membaca apa yang masuk dari if (c== 't'){//jika perangkat serial membaca pada saat itu berarti ponsel terisi penuh, proses mencabut dimulai servo2.write(120);//mencabut charger delay(5000);//menunggu untuk memastikan ada waktu untuk menghilangkan servo1.write(110);//memindahkan telepon ke posisi tegak untuk memberi sinyal //Serial.println("di sini"); attachInterrupt(digitalPinToInterrupt(2), AH, FALLING);//menyambungkan kembali interupsi } } if (q==1){//jika kondisi pluggin in sudah terpenuhi maka mulailah dengan memasang charger delay(10000); servo2.write(0);//memindahkan servo ke posisi q=0;//mengatur ulang kondisi } }
batal AH(){
//Serial.println("dalam"); servo1.write(180);// menjatuhkan platform telepon ke posisi pengisian q=1;//memulai kondisi untuk melanjutkan proses //a=1; detachInterrupt (digitalPinToInterrupt(2));//melepaskan interupsi, sehingga tidak akan ada masalah dengan interupsi yang dimulai ketika tidak seharusnya }
Aplikasi Android
Di sini saya hanya akan menampilkan aplikasi yang tepat tetapi file kode pengujian juga akan diberikan, satu-satunya perbedaan adalah penghapusan kelas runnable dan getBattery. Kode serial yang disebutkan adalah yang standar untuk ponsel yang terhubung ke perangkat seperti modul.
paket com.example.daniel.make; impor android.bluetooth. BluetoothAdapter; impor android.bluetooth. BluetoothDevice; impor android.bluetooth. BluetoothSocket; impor android.os. Handler; impor android.support.v7.app. AppCompatActivity; impor android.os. Bundle; impor android.content. Intent; impor android.content. IntentFilter; impor android.os. BatteryManager; impor java.io. IOException; impor java.io. OutputStream; impor java.util. Set; impor java.util. UUID;
MainActivity kelas publik memperluas AppCompatActivity {
// membuat objek yang diperlukan Handler handler;//membantu dengan loop Runnable runnable;//berjalan terus menerus BluetoothAdapter mBluetoothAdapter; BluetoothSocket mmSocket; BluetoothPerangkat mmPerangkat; OutputStream mmOutputStream; stopWorker boolean yang mudah menguap; OutputStream outputStream pribadi; String final pribadi DEVICE_NAME="HC-05"; private final UUID PORT_UUID=UUID.fromString("00001101-0000-1000-80000-00805f9b34fb"); perangkat BluetoothAdapter pribadi; soket BluetoothSocket pribadi; @Override protected void onCreate(Bundle savedInstanceState) {//adalah sekumpulan instruksi yang dijalankan saat aplikasi dibuat super.onCreate(savedInstanceState);//displya creation setContentView(R.layout.activity_main); runnable = new Runnable() { @Override public void run() {//berjalan berulang kali int level = (int) getBattery();// mendapatkan level baterai saat ini jika (level==100){//jika level baterai mencapai 100% try { getBT();//menghubungkan ke modul bluetooth openBT();//membukanya sendData();//mengirim data yang diperlukan closeBT();//menutup objek } catch (IOException ex) { } } handler.postDelayed(dapat dijalankan, 5000);//penundaan } }; penangan = penangan baru(); handler.postDelayed(dapat dijalankan, 0); }
getBattery pelampung publik() {
Intent batteryIntent= registerReceiver(null, new IntentFilter(Intent. ACTION_BATTERY_CHANGED));// membuat tindakan yang menghubungkan ke level baterai int = batteryIntent.getIntExtra(BatteryManager. EXTRA_LEVEL, -1);//mendapatkan skala int level yang lebih baik = batteryIntent.getIntExtra(BatteryManager. EXTRA_SCALE, -1);//mendapatkan skala baterai if (level == -1 || scale == -1) {//dalam kasus salah langkah kembali 50.0f; } float batt = (level/(float)scale)*100.0f;//mendapatkan skala pengembalian batt yang tepat;//mengembalikan level }
void getBT(){//mendapatkan kemungkinan koneksi bluetooth
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();//mendapatkan adaptor if(!mBluetoothAdapter.isEnabled()) {//memastikan telepon memiliki gigi biru pada Intent enableBluetooth = new Intent(BluetoothAdapter. ACTION_REQUEST_ENABLE);//memintanya dihidupkan jika tidak startActivityForResult(enableBluetooth, 0); } Set PairedDevices = mBluetoothAdapter.getBondedDevices();//mendapatkan daftar bonded bluetooth if(pairedDevices.size() > 0) {//memastikan ada beberapa perangkat untuk(BluetoothDevice device: PairedDevices) {//loop melalui devices if(device.getName().equals("HC-05")) {//memeriksa apakah itu yang benar mmDevice = device;//menyimpannya rusak; } } } }
void openBT() melempar IOException {
UUID uuid = UUID.fromString("00001101-0000-1000-80000-00805f9b34fb"); //Standar //SerialPortService ID mmSocket = mmDevice.createRfcommSocketToServiceRecord(uuid);//menghubungkan ke perangkat dengan id yang tepat mmSocket.connect();//menghubungkan mmOutputStream = mmSocket.getOutputStream();//memulai kemampuan untuk mengirim data ke modul arduino }
void sendData() melempar IOException {//class yang mengirimkan t ke arduino
mmOutputStream.write('t'); }
void closeBT() melempar IOException {//menutup semua koneksi ke arduino
stopWorker = benar; mmOutputStream.close(); mmSocket.close(); } }
Langkah 6: File
Terima kasih telah membaca, terlampir adalah file yang digunakan dalam proyek ini
Direkomendasikan:
Pengisi Daya/Pengisi Daya Baterai Pro: 9 Langkah
Pengisi Daya / Pengisi Daya Baterai Pro: Anda harus mendapatkan sendiri komponen-komponen ini terlebih dahulu untuk membuat proyek ini, jadi jika Anda merasa murah hati, gunakan tautan saya sehingga saya dapat menghasilkan lebih banyak video
Pengisi Daya Telepon Iron Throne: 17 Langkah (dengan Gambar)
Pengisi Daya Telepon Iron Throne: Saya sangat senang dengan musim ke-7 Game of Thrones yang akan keluar, saya harus membuat proyek terkait - pengisi daya telepon Iron Throne! Daftar pasokan: Pengisi daya USBPedang koktail plastik Cat akrilik perak Cat akrilik perunggu Cat semprot hitam Busa 2 mmFoa tebal
Pengisi Daya Telepon Mobil Wiggle-Loose-Be-Gone: 4 Langkah (dengan Gambar)
Car Phone Charger Wiggle-Loose-Be-Gone: Berikut adalah cara sederhana untuk menjaga charger mobil Anda tetap terhubung ke kendaraan Anda; letakkan selotip di ujungnya sebelum Anda mencolokkannya
NiCd - Pengisi Daya Cerdas Berbasis PC NiMH - Pengisi Daya: 9 Langkah
NiCd - Pengisi Daya Cerdas Berbasis PC NiMH - Discharger: Cara membuat fitur hebat berbiaya rendah Pengisi daya pintar berbasis PC- Discharger yang dapat mengisi baterai NiCd atau NiMH apa pun.- Sirkuit menggunakan catu daya PC, atau sumber daya 12V apa pun.- Rangkaian ini menggunakan metode "Suhu kemiringan" yang merupakan
Pengisi Daya / Pengisi Daya Baterai Nikel Kadmium Mudah: 3 Langkah
Pengisi Daya / Pengisi Daya Baterai Nikel Kadmium Mudah: Saya membuat pengisi daya / pelepasan sederhana ini untuk baterai telepon nirkabel Nikel Kadmium 3,7 volt. Ini dapat dengan mudah ditingkatkan untuk mengisi baterai Nickel Cadmium yang lebih besar. Anda yang bekerja dengan paket baterai ini tahu bahwa mereka harus