Innholdsfortegnelse:
- Trinn 1: Plastkomponenter
- Trinn 2: Bryt ned komponenter som ikke er 3D -trykte
- Trinn 3: Elektronikk
- Trinn 4: Montering
- Trinn 5: Kode
- Trinn 6: Filer
Video: En automatisk telefonlader: 6 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:25
"Denne instruerbare ble opprettet for å oppfylle prosjektkravet til Makecourse ved University of South Florida (www.makecourse.com)"
Ideen bak dette prosjektet var å lage en enhet som kunne lade en telefon, og deretter koble den fra når telefonen når 100%. Dette ville stoppe problemer med overlading.
Trinn 1: Plastkomponenter
Det var noen komponenter som ble brukt som ble 3D -trykt. Disse komponentene besto av en base, en holder for laderen, et tannhjulssett (et normalt gir og et lineært stykke som endrer rotasjonen til lineær bevegelse), og en base for alt å operere på. Disse komponentene vil bli forklart i de følgende avsnittene. I rekkefølge etter utseende
Laderholder
Hensikten med dette er å holde telefonladeren, eller i det minste gi den en bedre og jevn base å være på.
Utgangspunkt
Basen har ringer for telefonholderen, samt et spor for giret.
Telefonholder
Holder telefonen, åpenbart
Telefonarm
Beveger seg og holder telefonen
Tannhjulssett
Brukes til å flytte telefonladeren frem og tilbake
Trinn 2: Bryt ned komponenter som ikke er 3D -trykte
Dette er komponentene som enten ble kjøpt for prosjektet eller allerede eide. For noen av delene koblet jeg til dem/lignende varer på amazon, men kjøp dem gjerne hvor som helst.
Micro Servo:
Standard 0-180 Servo:
HC-05 Bluetooth-seriemodul:
Telefon og telefonlader
Arduino
Brødbrett
Eske eller kasse for base
Berøringssensor:
Trinn 3: Elektronikk
Kretsen for dette prosjektet kan imidlertid kreve noe, hovedsakelig på grunn av HC-05-modulen. Mange av modulene av denne typen har en hastighet på omtrent 3,3V til 6V, som er i driftsområdet til Arduino. Men for seriell kommunikasjon fungerer Rx -pinnen noen ganger bedre med bare 3,3V. Som vist i diagrammet ovenfor er de to servoene koblet til Vin -pinnen på Arduino. Denne ekstra spenningen kan leveres av alt, jeg brukte et 9 volt batteri. Berøringssensoren ble koblet til 5V på Arduino. Dette var fordi alle komponentene hadde problemer med å løpe av den samme spenningen. Berøringssensoren er festet til pinne 2, slik at den kan brukes som en pinneavbrudd. Deretter kobles bluetooth -modulen til Rx- og Tx -pinnene for seriell kommunikasjon. Mellom Rx -pinnen på modulen og Tx på Arduino er en 2 kilo ohm motstand med en 1 kilo ohm som kobles til bakken. Dette bidrar til å regulere spenningen som går inn.
Trinn 4: Montering
Monteringen er ganske enkel.
- med litt superlim monterer du servoene i posisjonene sine, en for giret ved utskjæringen på basen og en nær der basen på telefonen er.
- Fest berøringssensoren til telefonholderen, slik at den kan vite når telefonen er der.
- Fest deretter utstyret og armen til sine respektive servoer
- Sørg for at ledninger ikke forstyrrer andre komponenter når du fyller elektronikken din
Trinn 5: Kode
Det vil bli presentert tre sett med kode, en kode for Arduino, som ble opprettet i Arduino IDE og to koder som ble laget i Android Studio. Android -appene er de samme bortsett fra en er den fulle appen som sporer batterilevetid og en ikke. Den andre er for testformål.
Arduino -koden
Hovedpoenget med denne koden er å betjene berøringssensoren og motorene, den mottar en kommando fra telefonen og virker på den.
#include // ringer til servobiblioteket slik at vi kan kontrollere de to servoServo servo1; Servo servo2; // lager to servoobjekter for hver servomotor int a = 0; // sporingsvariabel for testing int q = 0; // en variabel som gjør at det kan være en forsinkelse før pluggprosessen begynner med char c; // variabel som inneholder den serielle meldingen fra telefonens ugyldige oppsett () {attachInterrupt (digitalPinToInterrupt (2), AH, FALLING); // legger ved et fallende avbrudd for å vite nøyaktig når berøringssensoren ser når telefonen er ute på servo1.attach (10); servo2.attach (9); // initialiserer de to servoene Serial.begin (9600); // starter seriekommunikasjonen med en hastighet som ligner den på bluetooth -modulen servo2.write (20); // setter automatisk servoen til en startposisjon servo1.write (180); }
void loop () {
if (Serial.available ()) {// dette sjekker om det kommer noe fra telefonen over seriepinnene Tx og Rx c = Serial.read (); // leser hva som kommer inn fra hvis (c == 't') {// hvis den serielle enheten leser på da betyr det at telefonen er fulladet, frakoblingsprosessen starter servo2.write (120); // kobler fra laderen forsinkelse (5000); // venter på å være sikker det er tid for fjerning av servo1.write (110); // flytter telefonen i oppreist posisjon for å signalere //Serial.println("here "); attachInterrupt (digitalPinToInterrupt (2), AH, FALLING); // fester avbruddet igjen}} if (q == 1) {// hvis betingelsen for plugg -in er ture, start deretter med å feste laderen forsinkelse (10000); servo2.write (0); // flytter servoen til posisjon q = 0; // tilbakestiller tilstand}}
ugyldig AH () {
//Serial.println("in "); servo1.write (180); // slipper telefonplattformen til ladeposisjonen q = 1; // starter betingelsen for å fortsette prosessen // a = 1; detachInterrupt (digitalPinToInterrupt (2)); // løsner avbruddet, slik at det ikke blir noen problemer med avbruddet som starter når det ikke skal}
Android App
Her vil jeg bare vise den riktige appen, men testkodefilen vil også bli gitt, den eneste forskjellen vil være fjerning av runnable og getBattery -klassen. Den nevnte seriekoden er den som er standard for telefoner som kobles til enheter som modulen.
pakke com.example.daniel.make; importer android.bluetooth. BluetoothAdapter; importer android.bluetooth. BluetoothDevice; importer android.bluetooth. BluetoothSocket; importer android.os. Handler; importer android.support.v7.app. AppCompatActivity; importer android.os. Bundle; importer android.content. Intent; importer android.content. IntentFilter; importer android.os. BatteryManager; importer java.io. IOException; importer java.io. OutputStream; import java.util. Set; import java.util. UUID;
public class MainActivity utvider AppCompatActivity {
// lage nødvendige objekter Handler handler; // hjelper med løkken Runnable runnable; // kjører kontinuerlig BluetoothAdapter mBluetoothAdapter; BluetoothSocket mmSocket; Bluetooth -enhet mmDevice; OutputStream mmOutputStream; flyktig boolsk stopWorker; private OutputStream outputStream; private final String DEVICE_NAME = "HC-05"; privat endelig UUID PORT_UUID = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); privat BluetoothAdapter -enhet; privat Bluetooth -kontakt; @Override protected void onCreate (Bundle savedInstanceState) {// er et sett med instruksjoner som kjøres når appen opprettes super.onCreate (saveInstanceState); // displya creation setContentView (R.layout.activity_main); runnable = new Runnable () {@Override public void run () {// kjører gjentatte ganger int level = (int) getBattery (); // får gjeldende batterinivå hvis (level == 100) {// hvis batterinivået når 100% prøve {getBT (); // kobler til bluetooth -modulen openBT (); // åpner den sendData (); // sender de nødvendige dataene closeBT (); // lukker objektet} catch (IOException ex) { }} handler.postDelayed (kjørbar, 5000); // en forsinkelse}}; handler = new Handler (); handler.postDelayed (kjørbar, 0); }
public float getBattery () {
Intent batteryIntent = registerReceiver (null, new IntentFilter (Intent. ACTION_BATTERY_CHANGED)); // oppretter handlingen som kobles til batteri int nivå = batteryIntent.getIntExtra (BatteryManager. EXTRA_LEVEL, -1); // får det bedre nivået int skala = batteryIntent.getIntExtra (BatteryManager. EXTRA_SCALE, -1); // får skalaen til batteriet hvis (nivå == -1 || skala == -1) {// i tilfelle feilstopp 50.0f; } float batt = (nivå/(float) skala)*100.0f; // får den riktige skala retur batt; // returnerer nivå}
void getBT () {// får de mulige Bluetooth -tilkoblingene
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter (); // får adapteren hvis (! mBluetoothAdapter.isEnabled ()) {// sørger for at telefonen har en blå tann på Intent enableBluetooth = new Intent (BluetoothAdapter. ACTION_REQUEST_ENABLE); // ber om at den skal være slått på hvis ikke startActivityForResult (enableBluetooth, 0); } Angi pairedDevices = mBluetoothAdapter.getBondedDevices (); // får listen over bonded bluetooth hvis (pairedDevices.size ()> 0) {// sørger for at det er noen enheter for (BluetoothDevice -enhet: pairedDevices) {// går gjennom enheter hvis (device.getName (). er lik ("HC-05")) {// sjekker om den er den riktige mmDevice = device; // lagrer den pause; }}}}
void openBT () kaster IOException {
UUID uuid = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); // Standard // SerialPortService ID mmSocket = mmDevice.createRfcommSocketToServiceRecord (uuid); // kobler til enheten med riktig id mmSocket.connect (); // kobler til mmOutputStream = mmSocket.getOutputStream (); // starter muligheten til å sende data til arduino -modulen}
void sendData () kaster IOException {// klasse som sender t til arduinoen
mmOutputStream.write ('t'); }
void closeBT () kaster IOException {// lukker alle forbindelsene til arduinoen
stopWorker = true; mmOutputStream.close (); mmSocket.close (); }}
Trinn 6: Filer
Takk for at du leser, vedlagte er filene som ble brukt i dette prosjektet
Anbefalt:
Design og bygg et strømlinjefilter for en Android -telefonlader: 5 trinn
Designe og bygge et strømlinjefilter for en Android -telefonlader: I denne instruksen vil jeg vise hvordan du tar en standard USB til mini USB -kabel, skiller den i midten og setter inn en filterkrets som reduserer overdreven støy eller hash produsert av en typisk android strømforsyning. Jeg har en bærbar m
WiFi automatisk plantemater med reservoar - Innendørs/utendørs dyrking Oppsett - Vannplanter automatisk med fjernovervåking: 21 trinn
WiFi automatisk plantemater med reservoar - Innendørs/utendørs kultiveringsoppsett - Vannplanter automatisk med ekstern overvåking: I denne opplæringen vil vi demonstrere hvordan du konfigurerer et tilpasset innendørs/utendørs plantefôringssystem som automatisk vanner planter og kan overvåkes eksternt ved hjelp av Adosia -plattformen
Sykkeldrevet telefonlader: 6 trinn (med bilder)
Sykkeldrevet telefonlader: Dette er en sykkelstyrt telefonlader som er billig, 3D -utskrivbar, enkel å lage og installere, og telefonladeren er universell. Det er nyttig å ha hvis du sykler mye og trenger å lade telefonen. Laderen ble designet og bygget
DIY trådløs telefonlader og LED -kontroll: 11 trinn (med bilder)
DIY trådløs telefonlader og LED -kontroll: I denne instruksjonsboken vil jeg demonstrere hvordan du lager en trådløs telefonlader og aktiverte lysdioder. Jeg vil inkludere kode, PDF -filer, koblingsskjemaer og Gerber -filer samt en oversikt over materialer for å lage din egen trådløse telefon telefonlader. Spesiell merknad: Ikke
Retro telefonlader: 10 trinn (med bilder)
Retro telefonladestasjon: Jeg elsker utseendet på en vintage roterende telefon og hadde et par av dem liggende og tigget om å bli vakt til live. I et anfall av inspirasjon bestemte jeg meg for å gifte meg med form og funksjon. Dermed er Retro Phone Phone Charging Station født