Sadržaj:
- Korak 1: Plastične komponente
- Korak 2: Razbijte komponente koje nisu 3D ispisane
- 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 promjena: 2024-01-30 09:37
"Ova instrukcija nastala je u skladu sa zahtjevima projekta Makecoursea na Sveučilištu 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štene su neke komponente koje su 3D tiskane. 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 podloge za sve na čemu treba raditi. Ove će komponente biti objašnjene u sljedećim odlomcima. Redom 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
Ruka za telefon
Pomiče i drži telefon
Set zupčanika i zupčanika
Koristi se za pomicanje punjača telefona naprijed -natrag
Korak 2: Razbijte komponente koje nisu 3D ispisane
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:
Punjač telefona i telefona
Arduino
Oglasna ploča
Kutija ili kanta za podnožje
Senzor dodira:
Korak 3: Elektronika
Krug za ovaj projekt možda će ipak zahtijevati neke, uglavnom zbog HC-05 modula. Mnogi moduli ovog tipa imaju brzinu 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 servo pogona 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 zato što su sve komponente imale problema s istjecanjem istog napona. Senzor dodira pričvršćen je na pin 2 pa se može koristiti kao prekid pina. Zatim je bluetooth modul spojen na Rx i Tx pinove za serijsku komunikaciju. Između Rx pina na modulu i Tx na Arduinu nalazi se otpornik od 2 kilo ohma s kilogramom spojenim 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 servosisteme na njihove položaje, jedan za zupčanik 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 druge 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 u svrhu testiranja.
Arduino kod
Glavna točka ovog koda je rukovanje senzorom dodira i motorima, on prima naredbu s telefona i djeluje na njega.
#include // poziva servo knjižnicu kako bismo mogli kontrolirati dva servaServo servo1; Servo servo2; // stvara dva servo objekta za svaki servo motor int a = 0; // varijabla praćenja za testiranje int q = 0; // varijabla koja dopušta da dođe do kašnjenja prije početka procesa priključivanja char c; // varijabla koja sadrži serijsku poruku iz telefona void setup () {attachInterrupt (digitalPinToInterrupt (2), AH, FALLING); // pridružuje padajući prekid kako bi točno znao kada senzor dodira vidi kada je telefon na servo1.attach (10); servo2.attach (9); // inicijalizira dva serva Serial.begin (9600); // započinje serijsku komunikaciju brzinom sličnom onoj kod modula bluetooth servo2.write (20); // auto postavlja servo na servo1.popis početnog položaja (180); }
void loop () {{100} {101}
if (Serial.available ()) {// ovo provjerava dolazi li nešto s telefona preko serijskih pinova Tx i Rx c = Serial.read (); // čita ono što dolazi if (c == 't') {// ako serijski uređaj čita tada, to znači da je telefon potpuno napunjen, započinje postupak isključivanja 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); // ponovno postavlja prekid}} if (q == 1) {// ako je uvjet za dodatak uključen, tada započnite s 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 s pokretanjem prekida kad 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 standardni je za telefone koji se povezuju s uređajima poput modula.
paket com.example.daniel.make; uvoz android.bluetooth. BluetoothAdapter; uvoz android.bluetooth. BluetoothDevice; uvoz android.bluetooth. BluetoothSocket; uvoz android.os. Handler; uvoz android.support.v7.app. AppCompatActivity; uvoz android.os. Bundle; uvoz android.content. Intent; uvoz android.content. IntentFilter; uvoz android.os. BatteryManager; import java.io. IOException; import java.io. OutputStream; uvoz java.util. Set; uvoz java.util. UUID;
javna klasa MainActivity proširuje AppCompatActivity {
// stvaranje potrebnih objekata Handler handler; // pomaže u petlji Runnable runnable; // neprekidno radi BluetoothAdapter mBluetoothAdapter; BluetoothSocket mmSocket; Bluetooth uređaj 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 utičnica BluetoothSocket; @Override protected void onCreate (Bundle savedInstanceState) {// je skup uputa koje se pokreću pri stvaranju aplikacije super.onCreate (savedInstanceState); // displya stvaranje setContentView (R.layout.activity_main); runnable = new Runnable () {@Override public void run () {// opetovano radi int level = (int) getBattery (); // dobiva trenutnu razinu napunjenosti baterije ako (level == 100) {// ako je razina napunjenosti baterije dostiže 100% try {getBT (); // povezuje se s bluetooth modulom 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)); // stvara radnju koja se povezuje s razinom baterije int = batteryIntent.getIntExtra (BatteryManager. EXTRA_LEVEL, -1); // dobiva ljestvicu bolje razine int = batteryIntent.getIntExtra (BatteryManager. EXTRA_SCALE, -1); // dobiva skalu baterije ako (razina == -1 || ljestvica == -1) {// u slučaju pogrešnog povratka 50.0f; } float batt = (level/(float) scale)*100.0f; // dobiva odgovarajuću skalu return batt; // vraća razinu}
void getBT () {// dobiva moguće bluetooth veze
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter (); // dobiva adapter ako (! mBluetoothAdapter.isEnabled ()) {// osigurava da telefon ima plavi zub na Intent enableBluetooth = new Intent (BluetoothAdapter. ACTION_REQUEST_ENABLE); // zahtijeva da to bude uključeno ako nije startActivityForResult (enableBluetooth, 0); } Set pairedDevices = mBluetoothAdapter.getBondedDevices (); // dobiva popis povezanog bluetootha ako (pairedDevices.size ()> 0) {// provjeri postoje li neki uređaji za (BluetoothDevice device: pairedDevices) {// kruži kroz devices if (device.getName (). equals ("HC-05")) {// provjerava je li to ispravno 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 u 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 privitku su datoteke koje su korištene u ovom projektu
Preporučeni:
Punjač za solarno napajanje telefona: 4 koraka
Stanica za punjenje telefona na solarni pogon: Ispražnjeni telefon uobičajeni su problemi prvog svijeta. Srećom, s ovim krugom možete koristiti snagu sunca za napajanje telefona. Ovaj vodič je SAMO za stranu kruga. Svako stvarno zadržavanje sustava mora se nabaviti na drugom mjestu
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 punjač od 12 V Kliknite ovdje da biste vidjeli videopočetak
Jednostavan 5 -minutni USB solarni punjač/opstanak USB punjač: 6 koraka (sa slikama)
Lagani 5 -minutni USB solarni punjač/opstanak USB punjač: Pozdrav dečki! Danas sam upravo napravio (vjerojatno) najjednostavniji USB punjač za solarne ploče! Kao prvo, žao mi je što nisam učitao neke upute za vas. Dečki sam dobio neke ispite u posljednjih nekoliko mjeseci (zapravo ne nekoliko možda tjedan dana …). Ali
Kako napraviti automatski punjač za 12V: 6 koraka (sa slikama)
Kako napraviti automatski punjač od 12 V: 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 ih je ležalo i molilo da ih vrate u život. U naletu inspiracije odlučio sam se udati za formu i funkciju. Tako je nastala Retro Phone Charging Station stanica