Innehållsförteckning:
- Steg 1: Plastkomponenter
- Steg 2: Bryt ner komponenter som inte är 3D -tryckta
- Steg 3: Elektronik
- Steg 4: Montering
- Steg 5: Kod
- Steg 6: Filer
Video: En automatisk telefonladdare: 6 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
"Denna instruerbara skapades för att uppfylla projektkravet för Makecourse vid University of South Florida (www.makecourse.com)"
Tanken bakom detta projekt var att skapa en enhet som kan ladda en telefon och sedan koppla ur den när telefonen når 100%. Detta skulle stoppa problem med överladdning.
Steg 1: Plastkomponenter
Det fanns några komponenter som användes som 3D -utskrivna. Dessa komponenter bestod av en bas, en hållare för laddaren, en kuggstångsväxel (en normal växel och en linjär bit som ändrar rotationen till linjär rörelse) och en bas för allt att arbeta på. Dessa komponenter kommer att förklaras i de följande styckena. I ordningsföljd
Laddare Hållare
Syftet med detta är att hålla telefonladdaren, eller åtminstone ge den en bättre och jämnare bas att vara på.
Bas
Basen har ringar för telefonhållaren samt ett spår för växelsatsen.
Telefonhållare
Håller i telefonen, uppenbarligen
Telefonarm
Rör sig och håller telefonen
Kugghjulssats
Används för att flytta telefonladdaren fram och tillbaka
Steg 2: Bryt ner komponenter som inte är 3D -tryckta
Det här är komponenterna som antingen köptes för projektet eller redan ägdes. För några av delarna länkade jag till dem/liknande föremål på amazon, men köp dem gärna var som helst.
Micro Servo:
Standard 0-180 Servo:
HC-05 Bluetooth-seriemodul:
Telefon och telefonladdare
Arduino
Bakbord
Låda eller soptunna för bas
Touch-sensor:
Steg 3: Elektronik
Kretsen för detta projekt kan dock kräva en del, främst på grund av HC-05-modulen. Många av modulerna av denna typ har en hastighet på ungefär 3,3V till 6V, vilket är inom Arduino: s arbetsområde. Men för seriell kommunikation fungerar Rx -stiftet ibland bättre med endast 3,3V. Som framgår av diagrammet ovan är de två servon anslutna till Vin -stiftet på Arduino. Denna extra spänning kan levereras av vad som helst, jag använde ett 9 volts batteri. Pekssensorn var ansluten till 5V på Arduino. Detta berodde på att alla komponenter hade problem med att köra av samma spänning. Beröringssensorn är ansluten till stift 2 så att den kan användas som ett stiftavbrott. Sedan är Bluetooth -modulen ansluten till Rx- och Tx -stiften för seriell kommunikation. Mellan Rx -stiftet på modulen och Tx på Arduino finns ett 2 kilo ohm motstånd med ett 1 kilo ohm som ansluts till marken. Detta hjälper till att reglera spänningen som går in.
Steg 4: Montering
Monteringen är ganska enkel.
- med lite superlim monterar du dina servon i sina positioner, en för redskapet vid utskärningen på basen och en nära där basen på telefonen är.
- Fäst touchsensorn på telefonhållaren så att den kan veta när telefonen är där.
- Fäst sedan växeln och armen på sina respektive servon
- Se till att ledningar inte stör andra komponenter när du fyller i din elektronik
Steg 5: Kod
Det finns tre uppsättningar kod som kommer att presenteras, en kod för Arduino, som skapades i Arduino IDE och två koder som gjordes i Android Studio. Android -apparna är desamma förutom att en är hela appen som spårar batteritid och en inte. Den andra är för teständamål.
Arduino -kod
Huvudpunkten med den här koden är att styra beröringssensorn och motorerna, den tar emot ett kommando från telefonen och agerar på den.
#include // kallar servobiblioteket så att vi kan styra de två servoservo servo1; Servo servo2; // skapar två servoobjekt för varje servomotor int a = 0; // spårningsvariabel för att testa int q = 0; // en variabel som gör att det kan finnas en fördröjning innan pluggprocessen börjar char c; // variabel som innehåller det seriella meddelandet från telefonens tomrumsinställning () {attachInterrupt (digitalPinToInterrupt (2), AH, FALLING); // bifogar ett fallande avbrott för att veta exakt när pekssensorn ser när telefonen är ute på servo1.attach (10); servo2.attach (9); // initierar de två servon Serial.begin (9600); // börjar seriekommunikationen med en hastighet som liknar den för bluetooth -modulen servo2.write (20); // auto ställer in servon till en startposition servo1.write (180); }
void loop () {
if (Serial.available ()) {// detta kontrollerar om det kommer något från telefonen över seriepinnarna Tx och Rx c = Serial.read (); // läser vad som kommer in if (c == 't') {// om den seriella enheten läser då betyder det att telefonen är fulladdad, kopplingsprocessen börjar servo2.write (120); // kopplar ur laddarens fördröjning (5000); // väntar på att se till att det finns tid för borttagning servo1.write (110); // flyttar telefonen till upprätt läge för att signalera //Serial.println("here "); attachInterrupt (digitalPinToInterrupt (2), AH, FALLING); // fäster avbrottet igen}} if (q == 1) {// om villkoret för plug -in är ture börjar sedan med att ansluta laddningsfördröjningen (10000); servo2.write (0); // flyttar servo till position q = 0; // återställer villkor}}
ogiltigt AH () {
//Serial.println("in "); servo1.write (180); // tappar telefonplattformen till laddningsläget q = 1; // startar villkoret för att fortsätta processen // a = 1; detachInterrupt (digitalPinToInterrupt (2)); // tar bort avbrottet så att det inte uppstår några problem med avbrottet som börjar när det inte ska}
Android App
Här kommer jag bara att visa rätt app men testkodfilen kommer också att ges, den enda skillnaden är att ta bort klassen som kan köras och getBattery. Den nämnda seriekoden är den som är standard för telefoner som ansluter till enheter som modulen.
paket com.example.daniel.make; importera android.bluetooth. BluetoothAdapter; importera android.bluetooth. BluetoothDevice; importera android.bluetooth. BluetoothSocket; importera android.os. Handler; importera android.support.v7.app. AppCompatActivity; importera android.os. Bundle; importera android.content. Intent; importera android.content. IntentFilter; importera android.os. BatteryManager; importera java.io. IOException; importera java.io. OutputStream; importera java.util. Set; importera java.util. UUID;
public class MainActivity utökar AppCompatActivity {
// skapa nödvändiga objekt Handler handler; // hjälper till med slingan Runnable runnable; // kör kontinuerligt BluetoothAdapter mBluetoothAdapter; BluetoothSocket mmSocket; Bluetooth -enhet mmDevice; OutputStream mmOutputStream; flyktigt booleskt stoppWorker; privat OutputStream outputStream; privat slutsträng DEVICE_NAME = "HC-05"; privat slutlig UUID PORT_UUID = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); privat BluetoothAdapter -enhet; privat Bluetooth -uttag; @Override protected void onCreate (Bundle savedInstanceState) {// är en uppsättning instruktioner som körs när appen skapas super.onCreate (saveInstanceState); // displya creation setContentView (R.layout.activity_main); runnable = new Runnable () {@Override public void run () {// körs upprepade gånger int level = (int) getBattery (); // får den aktuella batterinivån om (level == 100) {// om batterinivån når 100% försök {getBT (); // ansluter till bluetooth -modulen openBT (); // öppnar den sendData (); // skickar nödvändig data closeBT (); // stänger objekt} catch (IOException ex) { }} handler.postDelayed (körbar, 5000); // en fördröjning}}; handler = new Handler (); handler.postDelayed (körbar, 0); }
public float getBattery () {
Intent batteryIntent = registerReceiver (null, new IntentFilter (Intent. ACTION_BATTERY_CHANGED)); // skapar åtgärden som ansluter till batteriets int -nivå = batteryIntent.getIntExtra (BatteryManager. EXTRA_LEVEL, -1); // får bättre nivå int skala = batteryIntent.getIntExtra (BatteryManager. EXTRA_SCALE, -1); // hämtar batteriets skala om (nivå == -1 || skala == -1) {// vid felavkastning 50.0f; } float batt = (nivå/(float) skala)*100.0f; // får rätt skala retur batt; // returnerar nivån}
void getBT () {// får möjliga bluetooth -anslutningar
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter (); // får adaptern om (! mBluetoothAdapter.isEnabled ()) {// ser till att telefonen har en blå tand på Intent enableBluetooth = new Intent (BluetoothAdapter. ACTION_REQUEST_ENABLE); // begär att den ska vara aktiverad om inte startActivityForResult (enableBluetooth, 0); } Ange pairedDevices = mBluetoothAdapter.getBondedDevices (); // hämtar listan över bonded bluetooth om (pairedDevices.size ()> 0) {// ser till att det finns några enheter för (BluetoothDevice device: pairedDevices) {// slingrar genom enheter om (device.getName (). är lika med "HC-05")) {// kontrollerar om det är rätt mmDevice = device; // sparar det avbrott; }}}}
void openBT () kastar IOException {
UUID uuid = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); // Standard // SerialPortService ID mmSocket = mmDevice.createRfcommSocketToServiceRecord (uuid); // ansluter till enheten med rätt id mmSocket.connect (); // ansluter mmOutputStream = mmSocket.getOutputStream (); // startar möjligheten att skicka data till arduino -modulen}
void sendData () kastar IOException {// klass som skickar t till arduino
mmOutputStream.write ('t'); }
void closeBT () kastar IOException {// stänger alla anslutningar till arduino
stopWorker = true; mmOutputStream.close (); mmSocket.close (); }}
Steg 6: Filer
Tack för att du läser, bifogade filer som användes i detta projekt
Rekommenderad:
Designa och bygga ett kraftledningsfilter för en Android -telefonladdare: 5 steg
Designa och bygga ett kraftledningsfilter för en Android -telefonladdare: I den här instruktionsboken kommer jag att visa hur du tar en vanlig USB -till -mini -USB -kabel, separerar den i mitten och sätter i en filterkrets som minskar alltför högt ljud eller hash producerad av en typisk Android -strömförsörjning. Jag har en bärbar m
Li-ion telefonladdare från papperskorgen: 4 steg
Li-ion telefonladdare från papperskorgen: Detta är en snabb och enkel powerbank från saker som de flesta redan har liggande i sitt hus
Bärbar telefonladdare-En illustrerad guide: 5 steg
Bärbar telefonladdare-En illustrerad guide: Beskrivning: Följande är en illustrerad guide om hur du gör en vanlig Altoids-behållare till en bärbar mobiltelefonladdare i bara några enkla steg. Detta batteri är perfekt för studenter, proffs eller utomhus män som är på språng. Time N
Cykeldriven telefonladdare: 6 steg (med bilder)
Cykeldriven telefonladdare: Detta är en cykeldriven telefonladdare som är billig, 3D -utskrivbar, enkel att göra och installera, och telefonladdaren är universell. Det är en användbar sak att ha om du cyklar mycket och behöver ladda din telefon. Laddaren designades och byggdes
DIY trådlös telefonladdare och LED -kontroll: 11 steg (med bilder)
DIY trådlös telefonladdare och LED -kontroll: I den här instruktionsboken kommer jag att visa hur du gör en trådlös telefonladdare och aktiverade lysdioder. telefonladdare. Särskild anmärkning: Inte