182    9    0  

Ladealarm Android/arduino

 3,210     Vestlandet     0
Jeg har en app på mobilen,som gir alarm når batteriet er x% fullt. Dermed kan avbryte ladingen på for eksempel 90%, for å øke levetiden på batteriet. Ladingen må avbrytes manuelt ved å dra ut kontakten, fordi ingen av disse batterialarm-appene har tilgang til å gjøre det.

I helga så jeg litt på muligheten for å få en arduino til å gjøre den elektriske frakoblingen med et rele. Utfordringen er å videreformidle signalet fra batteri-appen til arduinoen, om at nå skal ladingen avbrytes. Man kan legge inn egen alarmlyd, så jeg tenkte det går an å trigge på denne. Et signal på wifi eller bluetooth hadde vært det beste, men har ikke funnet noen apper som tilbyr det.

Jeg prøvde litt med å trigge på en lydfil i helga. 100ms sinus, så stille 60ms og så videre, altså "beep-beep". Utfordringen er å ikke trigge på alt annet enn lyden fra denne appen. Feks ringelyd. Selv om man tar lyden via jack-utgangen, blir det et problem. Dessuten er det mer praktisk med mikrofon, for da slipper man å plugge i en kontakt ekstra. Jeg brukte et sånt elektret mikrofon "breakout board", og brukte digitalutgangen (det blir en gate som lager et nivå-avhengig digitalt signal, over terskel = høy, under = lav), og så pulseIn-kommandoen for å lese pulslengden i mikrosekund. Jeg havna på ca 500mikrosekund, mens jeg skulle vært på 100 000. Er det noen som har innspill. Innafor eller utafor den løsningen jeg har begynt på Smile

O_K
   #1
 431     0
Tja, så lenge telefonen din ikke bruker altfor mye strøm på andre ting så kunne du kanskje bare måle strøm som går inn i telefonen med arduino, og så kutte når ladestrømmen når et visst punkt. Vil nok kreve litt kalibrering, og du må nok bruke en form for kurveglatting, men i hovedsak så vil jo telefonen din aldri bruke mindre strøm enn hva som går inn i batteriet, men i perioder (hvis du blir oppringt, eller den laster ned oppdateringer) så vil den burke mer. Ser derfor for meg at om du måler strøm som går inn i telefonen kontinuerlig, og f.eks. registrerer den laveste verdien hvert 15. sekund, og deretter sammenlikner disse med en kalibreringskurve så kunne du kanskje klare det.

Fordelen er at du kan integrere alt i laderen, og slipper usikkerheten med apper etc. Ulempen er at det nok blir vanskelig å få det 100% pålitelig, men om du klarer å stoppe ladningen på 90% 9 av 10 ganger burde det gjøre en stor forskjell for slitasjen på batteriet.

En typisk strømkurve for et ladeforløp finner du her
http://www.instructables.com/id/Li-ion-battery-charging/
   #3
 349     Hordaland     0
Skriv programmet til å måle høy/lav verdi på midtpunktet av lydsekvensene. Først må den detektere første start av lydgiver så bruke varierende forsinkelse til fortløpende sekvenser. Da får du Arduinoen til å detektere 100 % riktig. Bruker det når jeg bit banger rs232.
  (trådstarter)
   #4
 3,210     Vestlandet     0
Jeg er rimelig amatør på programmering, so bear with me! Er det noe sånn du tenker på?

Variablen a holder altså målinger på toppene, og b mellomrommene. Det er 80ms mellom a og b. Måler 10 pulser for å unngå å trigge på støy. Kan sikkert ha kortere pulser.

Ladealarm Android/arduino - IMG_20180620_185358126.jpg - Tovas
   #5
 1,231     Bergen     0
Min løsning på dette hadde vært å bruke en app på telefonen som rapporterer batterinivå pr MQTT til et sted (lokal MQTT-server i huset eller direkte til skyen). Det finnes nok flere apper som kan gjøre dette, jeg bruker Zanzito. En wifi-tilkoblet enhet (ESP8266) f.eks. kunne lyttet på batterinivået via MQTT og styrt reléet for mobilladeren.

(og etterpå har du det gående med smarthus som ny hobby)
   #6
 5,569     0
Har et veggmontert nettbrett, som ga meg samme utfordring som deg. Løste det med Tasker på brettet, og kontroll av strømtilførsel med Homeseer som er mitt valgte styringssystem for hjemmeautomasjon. Når batterinivået når 80%, slå av. Slå på ved 20%. Informasjon ble sendt med HTTP GET/json, med batterinivå som trigger i Tasker.

Forstår at du ikke har Homeseer, men prinsippet er kanskje overførbart.

Du kan jo også kikke på IFTTT, som egentlig er en tjeneste for å automatisere livet ditt, ikke duppedittene, men mange leverandører har IFTTT-kanaler. Sikkert noen som kan slå av/på en lader også, via en wall plug eller noe.

Kanskje Tasker og IFTTT kan kombineres også.
  (trådstarter)
   #7
 3,210     Vestlandet     0
Selve hardware-biten har jeg lyst å gjøre med arduino foreløbig. Jeg har en kode som fungerer på nexa 433Mhz.

Jeg har brukt Blynk-appen litt, så jeg tenkte å prøve denne metoden her. https://community.blynk.cc/t/battery-percentage-on-blynk-app/16725/14  

Det er kanskje litt av det samme du snakker om Anonym? Altså han sender batterinivå-verdien fra appen "Automate" til en variabel som skal holde denne på Blynk sin server. Men jeg skjønner ikke helt hvordan det foregår. Lager man en kode som ligger på serveren som henter data fra Automate? Er denne koden man lager i det RESTful API?

Tror jeg fikk den Automate appen til å gjøre det jeg ville. Hver gang batterinivået endres (det er vel hver hele %), oppdateres variabelen battery_level.

https://blynkapi.docs.apiary.io/#reference/0/write-pin-value-via-put/write-pin-value-via-put?console=1


Siste redigering: Wednesday, June 20, 2018 10:09:11 PM av Tovas

   #8
 5,569     0
Nja, ikke helt samme, tror jeg. I mitt tilfelle sendes ikke batteriverdien, men batterverdien trigger en event i Tasker, som igjen sender en html-streng. Så, kommandoen "slå på strøm" sendes, i stedet for batteriverdien. Så litt annen logikk, men resultatet burde bli det samme.
  (trådstarter)
   #9
 3,210     Vestlandet     0
Nå fungerer det. Det tok litt tid før jeg skjønte hvordan de API-greiene fungerer. Nå TROR jeg jeg skjønner det;) Men det viktigste er jo at det fungerer. Da er det bare å få hardwarebiten til å fungere. Tror det blir en ESP32. Og så må det vel inn et lite program der også.