Sadržaj:
- Korak 1: Plastične komponente
- Korak 2: Razbijte komponente koje nisu 3D štampane
- Korak 3: Elektronika
- Korak 4: Montaža
- Korak 5: Kodirajte
- Korak 6: Datoteke
Video: Automatski punjač telefona: 6 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
"Ova instrukcija nastala je u skladu sa zahtjevima projekta Makecoursea na Univerzitetu Južne Floride (www.makecourse.com)"
Ideja iza ovog projekta bila je stvoriti uređaj koji bi mogao puniti telefon, a zatim ga isključiti iz utičnice kada telefon dosegne 100%. Time bi se zaustavili problemi prekomjernog punjenja.
Korak 1: Plastične komponente
Korišćene su neke komponente koje su 3D štampane. Ove komponente sastojale su se od osnove, držača za punjač, zupčastog zupčanika (normalnog zupčanika i linearnog komada koji mijenja rotaciju u linearno kretanje) i osnove za rad na svemu. Ove komponente bit će objašnjene u sljedećim paragrafima. Po redoslijedu pojavljivanja
Nosač punjača
Svrha ovoga je držati punjač za telefon ili mu barem dati bolju i ravnu podlogu.
Baza
Baza ima prstenje za držač telefona, kao i traku za komplet opreme.
Držač telefona
Očigledno drži telefon
Telefon Arm
Pomera i drži telefon
Komplet zupčanika i zupčanika
Koristi se za pomicanje punjača telefona naprijed -natrag
Korak 2: Razbijte komponente koje nisu 3D štampane
To su komponente koje su ili kupljene za projekt ili su već u vlasništvu. Za neke dijelove koje sam povezao s njima/slične stavke na Amazonu, ali slobodno ih nabavite bilo gdje.
Mikro servo:
Standardni servo 0-180:
HC-05 Bluetooth serijski modul:
Telefon i punjač telefona
Arduino
Breadboard
Kutija ili kanta za podlogu
Senzor dodira:
Korak 3: Elektronika
Krug za ovaj projekt može zahtijevati neke, uglavnom zbog HC-05 modula. Mnogi moduli ovog tipa su za otprilike 3,3 V do 6 V, što je u radnom rasponu Arduina. No, za serijsku komunikaciju Rx pin ponekad radi bolje sa samo 3.3V. Kao što se vidi na gornjem dijagramu, dva serva su spojena na Vin pin na Arduinu. Ovaj dodatni napon može se napajati bilo čime, koristio sam bateriju od 9 volti. Senzor dodira je priključen na 5V na Arduinu. To je bilo zbog toga što su sve komponente imale problema s radom istog napona. Senzor dodira je pričvršćen na pin 2 tako da se može koristiti kao prekid pina. Zatim se bluetooth modul povezuje sa Rx i Tx pinovima za serijsku komunikaciju. Između Rx pina na modulu i Tx na Arduinu nalazi se otpornik od 2 kilo ohma sa 1 kiloomom spojen na masu. To pomaže u regulaciji ulaznog napona.
Korak 4: Montaža
Montaža je prilično jednostavna.
- s nekim super ljepilom montirajte svoje servo upravljače na njihove položaje, jedan za zupčanike uz izrez na podnožju i jedan blizu mjesta gdje se nalazi baza telefona.
- Pričvrstite senzor dodira na držač telefona kako bi mogao znati kada se telefon nalazi.
- Zatim spojite zupčanik i ruku na odgovarajuće servo sisteme
- Pazite da žice ne ometaju ostale komponente dok punite elektroniku
Korak 5: Kodirajte
Bit će predstavljena tri seta koda, jedan kod za Arduino, koji je kreiran u Arduino IDE -u i dva koda koja su napravljena u Android Studiju. Android aplikacije su iste, osim što je jedna potpuna aplikacija koja prati trajanje baterije, a jedna ne. Drugi je za potrebe testiranja.
Arduino kod
Glavna poanta ovog koda je upravljanje senzorom dodira i motorima, on prima naredbu od telefona i djeluje na nju.
#include // poziva servo biblioteku kako bismo mogli kontrolirati dva servaServo servo1; Servo servo2; // stvara dva servo objekta za svaki servo motor int a = 0; // varijabla za praćenje za testiranje int q = 0; // varijabla koja dopušta da dođe do kašnjenja prije početka procesa uključivanja char c; // varijabla koja sadrži serijsku poruku iz telefona void setup () {attachInterrupt (digitalPinToInterrupt (2), AH, FALLING); // pridružuje padajući prekid da bi tačno znao kada senzor dodira vidi kada je telefon van servo1.attach (10); servo2.attach (9); // inicijalizira dva serva Serial.begin (9600); // započinje serijsku komunikaciju brzinom sličnom onoj kod bluetooth modula servo2.write (20); // auto postavlja servo na početni položaj servo1.write (180); }
void loop () {{100} {101}
if (Serial.available ()) {// ovo provjerava da li nešto dolazi s telefona preko serijskih pinova Tx i Rx c = Serial.read (); // čita ono što dolazi iz if (c == 't') {// ako serijski uređaj čita na to znači da je telefon potpuno napunjen, proces isključivanja počinje servo2.write (120); // isključuje kašnjenje punjača (5000); // čeka da se uvjeri ima vremena za uklanjanje servo1.write (110); // premješta telefon u uspravan položaj da signalizira //Serial.println("here "); attachInterrupt (digitalPinToInterrupt (2), AH, FALLING); // ponovo postavlja prekid}} if (q == 1) {// ako je uslov za dodatak uključen, tada započnite sa kašnjenjem punjača (10000); servo2.write (0); // pomiče servo u položaj q = 0; // resetira stanje}}
void AH () {
//Serial.println("in "); servo1.write (180); // postavlja telefonsku platformu u položaj za punjenje q = 1; // pokreće uvjet za nastavak procesa // a = 1; detachInterrupt (digitalPinToInterrupt (2)); // odvaja prekid, tako da neće biti problema sa pokretanjem prekida kada ne bi trebao}
Android aplikacija
Ovdje ću prikazati samo odgovarajuću aplikaciju, ali bit će navedena i datoteka testnog koda, jedina razlika bit će uklanjanje klase runnable i getBattery. Spomenuti serijski kod je standardni za telefone koji se povezuju na uređaje poput modula.
paket com.example.daniel.make; uvoz android.bluetooth. BluetoothAdapter; uvoz android.bluetooth. BluetoothDevice; uvoz android.bluetooth. BluetoothSocket; import android.os. Handler; uvoz android.support.v7.app. AppCompatActivity; import android.os. Bundle; import android.content. Intent; import android.content. IntentFilter; uvoz android.os. BatteryManager; import java.io. IOException; import java.io. OutputStream; import java.util. Set; import java.util. UUID;
javna klasa MainActivity proširuje AppCompatActivity {
// kreiranje potrebnih objekata Handler handler; // pomaže u petlji Runnable runnable; // neprekidno radi BluetoothAdapter mBluetoothAdapter; BluetoothSocket mmSocket; BluetoothDevice mmDevice; OutputStream mmOutputStream; volatile boolean stopWorker; privatni OutputStream outputStream; privatni završni niz DEVICE_NAME = "HC-05"; privatni završni UUID PORT_UUID = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); privatni BluetoothAdapter uređaj; privatna BluetoothSocket utičnica; @Override protected void onCreate (Bundle savedInstanceState) {// je skup instrukcija koje se izvršavaju prilikom kreiranja aplikacije super.onCreate (savedInstanceState); // displya kreiranje setContentView (R.layout.activity_main); runnable = new Runnable () {@Override public void run () {// radi više puta int level = (int) getBattery (); // dobija trenutni nivo baterije ako (level == 100) {// ako je nivo napunjenosti baterije dostiže 100% try {getBT (); // povezuje se na bluetooth modul openBT (); // otvara sendData (); // šalje potrebne podatke closeBT (); // zatvara objekt} catch (IOException ex) { }} handler.postDelayed (runnable, 5000); // kašnjenje}}; handler = novi Handler (); handler.postDelayed (runnable, 0); }
public float getBattery () {
Intent batteryIntent = registerReceiver (null, new IntentFilter (Intent. ACTION_BATTERY_CHANGED)); // kreira radnju koja se povezuje sa nivoom baterije int = batteryIntent.getIntExtra (BatteryManager. EXTRA_LEVEL, -1); // dobiva bolji nivo int scale = batteryIntent.getIntExtra (BatteryManager. EXTRA_SCALE, -1); // dobiva skalu baterije ako (level == -1 || scale == -1) {// u slučaju pogrešnog povratka 50.0f; } float batt = (level/(float) scale)*100.0f; // dobija odgovarajuću skalu return batt; // vraća nivo}
void getBT () {// dobiva moguće bluetooth veze
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter (); // dobiva adapter ako (! mBluetoothAdapter.isEnabled ()) {// osigurava da telefon ima plavi zub na Intent enableBluetooth = nova namjera (BluetoothAdapter. ACTION_REQUEST_ENABLE); // zahtijeva da to bude uključeno ako nije startActivityForResult (enableBluetooth, 0); } Set pairedDevices = mBluetoothAdapter.getBondedDevices (); // dobiva listu povezanih bluetootha ako (pairedDevices.size ()> 0) {// provjeri postoje li neki uređaji za (BluetoothDevice device: pairedDevices) {// petlja kroz uređaji if (device.getName (). equals ("HC-05")) {// provjerava da li je ispravan mmDevice = device; // sprema prekid; }}}}
void openBT () baca IOException {
UUID uuid = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); // Standardno // SerialPortService ID mmSocket = mmDevice.createRfcommSocketToServiceRecord (uuid); // povezuje se s uređajem s odgovarajućim id mmSocket.connect (); // povezuje mmOutputStream = mmSocket.getOutputStream (); // pokreće mogućnost slanja podaci u arduino modul}
void sendData () baca IOException {// klasu koja šalje t na arduino
mmOutputStream.write ('t'); }
void closeBT () baca IOException {// zatvara sve veze na arduino
stopWorker = istina; mmOutputStream.close (); mmSocket.close (); }}
Korak 6: Datoteke
Hvala vam na čitanju, u prilogu se nalaze datoteke koje su korištene u ovom projektu
Preporučuje se:
Kako napraviti automatski 12V punjač baterija: 16 koraka (sa slikama)
Kako napraviti automatski 12V punjač baterija: Hej! svi moje ime je Steve.Danas ću vam pokazati kako napraviti 12V punjač baterija Kliknite ovdje da vidite videopočetak
Punjač telefona Iron Throne: 17 koraka (sa slikama)
Punjač za telefon Iron Throne: Tako sam uzbuđen što izlazi sedma sezona Igre prijestolja, morao sam napraviti srodan projekt - punjač za telefon Iron Throne! Lista zaliha: USB punjačPlastični mačevi za kokteleSrebrna akrilna bojaBronzana akrilna bojaČrna boja u sprejuDebela foa
JavaStation (potpuno automatski automatski IoT aparat za kavu sa automatskim punjenjem): 9 koraka (sa slikama)
JavaStation (Automatski aparat za kavu sa stvarima koje se sam puni): Cilj ovog projekta bio je napraviti potpuno automatski aparat za kavu s glasovnom kontrolom koji se automatski dopunjava vodom i sve što trebate učiniti je zamijeniti korisnike i popiti kavu; ))
Kako napraviti automatski punjač za 12V: 6 koraka (sa slikama)
Kako napraviti automatski 12V punjač baterija: Pozdrav svima u ovim uputama pokazat ću vam kako napraviti automatski punjač baterija
Stanica za punjenje telefona retro telefona: 10 koraka (sa slikama)
Punjač za retro telefone: Obožavam izgled starinskog rotacijskog telefona i nekoliko njih je ležalo i molilo da ih ožive. U naletu inspiracije, odlučio sam se udati za formu i funkciju. Tako je nastala stanica za punjenje telefona retro telefona