Solcell och batteri (LiFePO4) med wifi (ESP8266 12E)

Under en längre tid har jag testat en annan typ av batteri av typen LiFePO4. Spänningen är standard 3.2V för ett AA istället för 1.5V som brukar vara standard på AA. Optimalt spänning för wifi kortet ESP8266 12E är runt ~3 .0 – 3.3V. Testade batteriet med en ESP8266 i 14 dagar utan problem. Över 4000 Wifi skickningar med temperatur, wifi signal och tidsåtgång levererades till ThingSpeak, Vera (UI7) och loggservern.

LiFePO4 AA batteri på 3.2V uppladdningsbart.

LiFePO4 AA batteri @ 3.2V uppladdningsbart 2000ggr.

2016-11-15 – 13:38 verkar det som att batteriet tog slut. Kan bero på att jag har 3 dioder i serie. Tar in och kontrollerar den nu.

2016-08-16 – Temperatursensorn med solcellsladdning är nu färdig. I bästa fall räcker den året om utan batteribyte utomhus!

 

Projektlogg:

Senast Uppdaterad 2016-12-28

  • Solen är inte nog stark på vintern för att köra 3 dioder i serie.
  • Bytte de tre dioderna mot en diod och en zener diod på 4.3V, vilket bör göra att batteriet börjar ladda från 3.3v Sol!

 

Uppdaterad 2016-08-27

  • Uppgraderat firmware i ESP8266 12E till V 2.2 av min kod (finns här på Github)
  • Optimerat koden för att minska tiden att skicka, från 2200ms ner till ca 1460ms
  • Delat koden på Github
  • Verifierat att batteriet laddas mer! vid start hade batteriet 3.2V, 11 dagar senare hade batteriet 3.35V!
  • Ändrat koden för att lösa ett problem med ThingSpeak.

Uppdaterad 2016-08-16

  • Färdigställt sensorn och paketerat den i vattentät låda.
  • Påbörjar nu en guide för hur jag har byggt sensorn i detalj, kommer att uppdateras löpande. Har du några funderingar eller bra tips? skriv gärna i kommentarsfältet så försöker jag svar så gott det går.

Uppdaterad: 2016-08-15

  • Lägger till ThingSpeak, länkar och nya bilder.

Uppdaterad: 2016-08-11

  • Skapar sidan och lägger in information om projektet. ESP8266 12E har nu kört i 14 dagar på ett AA batteri utan problem. Börjar addera en solcell på 1.25W för att ladda batteriet.

 

Info om projektet

Följande sida innehåller information om mitt projekt med att skapa en wifi-temperatursensor som klarar att köras på ett AA batteri året om utomhus. Rapportering sker för tillfället var 5:E minut till ThingSpeak, Vera och en loggserver. Övrig tid sover sensorn. Min förhoppning är att det ska gå att bygga en egen med hjälp av informationen på sidan. Kommer kontinuerligt att ladda upp kod och skapa en guide alla steg som behöver utföras. Gilla och dela gärna sidan och tipsa andra så vi ser att det uppskattas.

2016-08-15: ESP8266 12E skickar nu information till loggservern och till ThingSpeak. Länk till kanalen på ThingSpeak (samma data som nedan). All data som visas i graferna nedan är LIVE från sensorn och uppdateras var 5:e minut.

Jag har valt att skicka 4 olika sorters data:

    • Temperaturen vid ESP:n.
    • ESP8266:s Wifi styrka.
    • Hur många volt Solcellen ger för tillfället.
    • Hur många ms det tog att starta sensorn och skicka data.

Graferna nedan är “live” och inlänkade från Thingspeak. Det behövs inte någon hemautomationskontroller för att skicka informationen till internet.

2016-11-15-21:29 – Sensorn hade ramlat ner i snön, fick dålig signal och försökte skicka igen efter 2.5 sekunder, tror detta är nått som behöver ändras i koden sedan… Laddar Batteriet fullt nu och monterar fästen på sensorn.

2016-12-26-03:02 – Slut på batteri. bytte till endast en diod samt en zener diod på 4.3V mellan plus på och jord på solpanelen. Detta bör ge 4.3v – 0,7v = 3.6V som max på Batteriet, resterande går tillbaka i solcellen. Den värme som eventuellt blir kanske tinar av panelen om det är nog stark sol, eventuellt nått man får ta höjd för i sommar.

Graferna tills den stannade.

Graferna tills den stannade.

2016-11-15 – 13:38 – Sensorn fick nu slut på batteri som det verkar, kommer att in den och se hur batteriet mår.

2016-08-20 – 10:06 – Sensorn verkar inte uppdatera till Thingspeak, kan vara nått fel mot thingspeak. Loggserver och Vera får fortfarande värden.

Om graferna har stannat eller är helt tomma, skriv gärna en kommentar om detta! Eftersom detta är version 1.0 av sensorn kan det hända. Verkar även som att ThingSpeak ibland tar tid att ladda information i ramarna, högergklicka i ramen som saknar data och välj “uppdatera ramen”.

LiFEPO4 batterier

Fördelen med LiFeP04 batteriet är att helt slipper en spänningsregulator till ESP8266 projekten. Batteriet ger en mycket stabil spänning på 3.2v tills ~90% av batteriets kapacitet är nyttjad. Batteriet klarar urladdning ner till 2V, den klarar även överladdning mycket bättre än andra batterier. Batteriet är dessutom uppladdningsbart ca 2000ggr! Standardladdning görs med med 300mA @ 3.6V. Det är även möjligt att snabbladda med 600mA @ 3.6V, batteriet innehåller Litiumjärnfosfat (Läs mer om LiFeP04)

Batteriet klarar en konstant urladdning  på 1.2A vilket är helt ok för detta projektet. Jag har valt att testa batteriet med formfaktorn AA, LiFePO4 finns i flera andra formfaktorer med. I mitt projekt valdes AA för att kunna fortsätta använda vanliga batterihållare som redan fanns.

En sak att tänka på OM man väljer formfaktorn AA är: Batterierna passar där AA batterier på 1.5V passar… dvs man BÖR märka batterierna TYDLIGT med VARNING 3.2V! Ett av dessa batterier ger lika mycket spänning som två vanligt AA batteri. Dvs undvika att kopplar in två LiFePO4 batterier i fel utrustning.

 

EPS8266 @ 3.2V med LiFePO4

Under 14 dagar har ett LiFePO4 AA drivit en ESP8266 utan problem, vilket inte är allt för länge. Det gav tillräckligt bra resultat för att jag ska tycka att det är värt att fortsätta att labba med batteriet och solceller.

Nedan är lite av datat wifi sensorn har skickat var 5:e minut. Totalt har den skickat information 4062ggr under de 14 dagarna.

Temperaturdata har skickats till Vera, ThingSpeak och loggservern. Wifi styrkan och hur lång tid det tog att skicka varje gång har även rapporterats, i snitt tar det 2.2 – 2.4 sekunder att skicka all data.

      • 2016-07-27 20:03:27.720 | xxx.xxx.xxx.xxx | ESP8266-NR8 | 1.5 | -57 | 27.81 | TID: | 2215
      • 2016-08-10 14:27:28.071 | xxx.xxx.xxx.xxx | ESP8266-NR8 | 1.5 | -71 | 17.87 | TID: | 2206

Loggarna ovan kommer från följande program jag skrivit. Esp:n rapporterar till den var 5:e minut (utöver ThingSpeak och Vera:n)

ESP8266 med ett 3.2V batteri

ESP8266 med ett 3.2V batteri, ett av batterierna är en metall hylsa.

Lite statistik från sensorn 😀

      • Antal skickningar från ESP: 4062
      • Medel på wifi signalen: -64,86
      • Max på wifi signalen: -85
      • Min på wifi signalen: -48
      • Snitt temperatur: 23,09
      • Max temperatur: 56,75 (sensorn har medvetet legat i solen i ett uterum!)
      • Min temperatur: 12,25
      • Batterispänning: 3,18V (efter 14 dagar)

2016-08-27:

Efter att ha kört sensorn i ca 11 dagar tog jag in den och uppgraderade firmware till V2.2 av min kod och mätte batteriet. När ESP:n placerades i lådan var batterispänningen 3.2V, nu 11 dagar senare hade batteriet 3,35V, vilket tydlig visar att projektet fungerar med laddningen! Det som återstår att se nu med den nya firmwaren är om batteriet håller för den typen av laddning jag gör. kommer att återkomma med info om den INTE gör det.

Solcellen

Solcellen jag valt att nyttja ger ~5V @ 250mA, dvs 1.25W ska den klara att leverera. Planen är att använda två dioder tre dioder för att få ner spänningen från  ~5V ner till ~3.6V 3,4V. Utöver att minska spänningen så förhindrar dioderna att batteriet laddas ur mot solpanelen på natten.

Konfigurationen bör ge mig en sensor som kan sitta permanent ute och laddas kontinuerligt när solen lyser nog starkt. Kommer att behöva leta lite mer information om detta är ett bra sätt att ladda batteriet kontinuerligt eller om risken är att batteriet går söner för fort. Enligt datablad ska batteriet klara 2000 laddningar, men det gäller laddning enligt rekommendationerna vilket detta inte är.

solcell med lysdiod en moldning dag

Testade att driva en lysdiod med solcellen en molnig dag utan problem.

2016-08-11 – Solpanelen gav 190mA vid direkt sol. Spänningen blev 6,1V utan last.

Tester med Dioder

När jag kopplar multimetern för att mäta förbrukning från batteriet drar sensorn 00.02mA, dvs 20uA med programmet som lägger sensorn sovandes i 5 minuter. Efter 5 minuter vaknar sensorn och skickar ny data och somnar sedan om igen

ESP8266 i Deep Sleep drar 20uA, dvs 00.02mA.

ESP8266 i Deep Sleep drar 20uA, dvs 00.02mA.

När solpanelen kopplas i serie med två dioder blir strömmen och spänningen  för klen för att ladda batteriet inomhus. Detta är inte så konstigt eftersom solcellen enbart drivs via bordslampan. Konfigurationen visar att ingen energi dras ur batteriet när solcellen inte ger energi. Detta tack vare dioderna hindras batteriet att skicka ström till panelen när det är för mörkt.

Test 1 – 1 Diod kopplad i serie med solpanelen

Med enbart en diod och solcellen tog batteriet emot laddning på 10 uA. Dvs 30uA laddning kom via solcellen, 20uA drog ESP8266 vid deep sleep och 10uA skickades till batteriet.

En Diod i serie med solpanel gav 10uA laddning, dvs 30uA

En Diod i serie med solpanel gav 10uA laddning, dvs 30uA

Test 2 – Solpanel kopplad i serie med Batteriet

Med enbart solpanelen inkopplad till batteriet parallellt med batteriet tar batteriet en laddning på 290uA, totalt ger panelen 310uA från bordslampan.  Detta är dock inte en optimal konfiguration eftersom batteriet kommer att ladda ur mot solcellen när panelen ger mindre spänning än batteriet.

ESP8266 i serie med Solcellen.

 

2016-08-16 – Färdigställt solcellsladdad sensor.

Har nu färdigställt och paketerat sensorn i en vattentät låda, sensorn laddas när den hamnar i direkt solljus och rapporterar +5v. Orsaken till att direkt solljus behövs är att jag satt tre dioder i serie för att undvika att esp:n får mer än ~3.5V. Detta resulterar i att batteriet enbart laddas med ~30mA, istället för de ~180mA som är möjligt med solcellen.

ESP8266 12E solcells laddad sensor

Färdig sensor VS prototyp.

Jag valde att montera allt på ett kretskort med enbart lödpunkter på baksidan, därav behovet av kablar på ovansidan. Jag har även valt att exponera RX & TX pin med stift. En extra brytare kopplas mellan Pin0 och jord, detta för att enkelt kunna uppdatera mjukvaran i framtiden utan att behöva bryta några kopplingar.

ESP8266 12e monterad i vattentät låda.

ESP8266 12e monterad i vattentät låda (V1.0)

  • Knappen längst upp till vänster går till Pin0, om den sätts i läge “ON” sätts enheten i flash mode.
  • Knappen längst upp till höger aktiverar eller inaktiverar laddning via solpanelen.
  • Knappen längst ner till vänster kopplar reset till pin16, detta behövs för att deep sleep ska fugnera.

 

Vid tester visade det sig att tre dioder behövdes istället för de två jag tänkte först, orsaken är för hög spänning med enbart två (i direkt solljus). Eventuellt skulle en konfiguration med enbart två dioder kunna skada batteriet eller ESP:n om spänningen gick över ~3.6V.

Det som vara lite negativt med detta är att laddströmmen nu blir ca 30mA istället för de 180mA som jag fick med enbart två Dioder.

Laddning av batteriet med tre dioder i serie gav 27mA till batteriet.

Laddning med solcell med tre dioder i serie gav 27mA till LiFePo batteriet.

Detta innebär att i soligt väder får sensorn nu +25,59mA i timmen (borträknat sensorn förbrukning på 1,750mA). En solig dag med 6 timmars sol skulle ge 153mA+ till batteriet.  Räknas sensorns förbrukning bort de övriga 18 timmarna blir det ändå ett plus på 124mA i bästa fall, vilket förlänger drifttiden med ca 4 dagar.

Kommer nog att byta två av dioderna mot någon effektivare laddning i framtiden. Någon som har tips eller någon bra idé??? hjälp mottages gärna! 🙂

Batteriet har 700mA och bör kunna driva sensorn tills 90% av kapaciteten är förbrukad, vilket är 630mA. ESP8266 bör klarar sig med enbart batteriets kapacitet i  22 dagar utan laddning.

Det bör gå att räkna med att när sensorn rapporterar +5V laddas batteriet i sensorn.

Med hjälp av scriptet fick jag fram att sensorn än så länge “bör” ha laddat ca 150mA.

2016-08-27

Som snabbast rapporterade koden för den gamla firmwaren in alla temperaturer på 2438ms, vilket nu har minskat till 1450 mot till thingspeak och ca 1700 totalt mot alla destinationer i V 2.2 av koden. Som sämst har den rapporterat in på 5886ms, vilket inte är allt för illa ändå.

Temperaturen som rapporterats in är mellan 31,44 grader till 3,75 grader. Vilket verkar stämma mot övriga sensorer. Temperaturen har i snitt varit 15,1 grader under dessa dagar.

Solcellen har i snitt haft en spänning på 3,37v. Maximalt värde som rapporterats in är 5,52v enligt omräkningen i koden gör.  Räknar jag då med att sensorn har 3 dioder med ett spänningsfall på 0,7V / för varje diod hamnar spänningen på batteriet på 3,42V. Vilket är helt ok eftersom batteriet ska laddas med maximalt 3.6V.

Komponenter

  • 1X – Ds18B20 – Temperatur sensor
  • 1X – ESP8266 12E – Wifi Chip
  • 1X – LiFePo4 AA batteri – Uppladdningsbart batteri.
  • 1X – Kondensator 220uF
  • 1X – Solcell 5V 1.25W – OBS 6V på sidan, bör dock fungera!
  • Resistorer –
    • 1X – 100k
    • 1X – 10K
    • 1X – 4.7K (obs kit med den i!)
  • 3X – Dioder (5,7V), tror dessa ska fungera.
  • 1X – Kretskort
  • 1X – Låda

Koden

Inom kort kommer koden att återfinns på vår github (Koden behövde städas, dyker snart upp 2016-08-16!)

Koden finns nu att hämta på vår Github (Direktlänk till projektet)

Kopplingsschema:

Version 1.0 av schemat, Kommer inom kort att förklara mer i detalj om komponenterna som nyttjats.

ESP826612E med LiFePO4 batteri och solcell

Schemat över viktiga komponenter som nyttjats.

Kommer att försöka göra ett schema och lägga ut.

 

Summering

Tidigare har jag gjort en uträkning på hur mycket esp8266 12E drar vid skickning av data var 5:e minut, kostnaden i energi från batteriet blev 1,570mAh, dvs ett LiFePO4 batteriet på 700mAh skulle då räcka (700mAh / 1,570mAh =  445 timmar),  dvs efter 18 dagar är batteriet slut.

Solpanelen gav i molnigt väder 17,45mA, viket ger +15,68mA i timmen (borträknat 1,570mA som sensorn drar). Levererar solpanelen minst det i 6 timmar varje dag bör batteriet få tillbaka +94,08mAh. Räknas EPN:s förbrukning bort övriga 18 timmarna varje dag blir det +65mA varje dag (94,08mA – 28,26mA = +65mA  varje dag). Mest troligt ger solpanelen mer än 17.45mA vilket kommer att ge mig ett batteri som alltid är fullt! Skulle solpanelen sluta ge energi i två veckor är det fortfarande inte ett problem! Batteriet har nog med energi för att hålla sensorn levande.

Fungerar detta kommer batteriet aldrig få slut på ström och mitt wifi kort kan vara ute året om! Det är inte optimalt att småladda ett batteri, men samtidigt håller det längre än befintliga batterier så tror jag att jag accepterar detta. 

(2016-08-27) – Jag har nu uppgraderat sensorn med ny kod och placerat samma batteri i lådan igen utan att ladda något alls, dvs jag har inte tillfört någon mer energi än det som den fått via solcellen. Kommer nu att låta sensorn rapportera till thingspeak, vera och loggservern. Nu återstår det bara att se om batteriet håller med den här typen av laddning.  Men som sagt 3.2V när jag startade sensorn för 11 dagar sedan och nu 3.35V! Under den tiden rapporterades ca 3180 temperaturer till 3 olika destinationer.

 

(2016-08-11) – Jag kommer att bygga klart wifi sensorn och försöka få den att logga solcellens spänningsnivå och temperatur till Thingspeak. Kommer att ladda upp all kod och hur det går inom kort.

Har du några idéer eller ser nått som är galet , skriv gärna vad som felar eller kan göras bättre 🙂

Kom ihåg att gilla och Dela sidan som vi ser att det är av intresse det vi håller på med!

// Ispep

 

Solcell och batteri (LiFePO4) med wifi (ESP8266 12E)
5 (100%) 5 votes

14 kommentarer

  1. Joakim Gustafsson

    2016-08-16 at 12:19

    Hej,

    Jag tycker ni har många riktigt bra inlägg med spännande läsning. Men jag saknar väldigt ofta det som behövs för att bygga egna kopior. Jag skulle vilja ha kopplingsscheman (fritzing.org) och listor på vilka komponenter som används, helst med länkar till onlinebutiker. Hoppas se mer sånt, så blir det lättare för oss mindre erfarna att bygga själva.

    • Ispep

      2016-08-16 at 15:02

      Tackar 🙂
      Har inte alltid haft tid att göra informationen så pass bra som jag önskat. Tänkte försöka göra en komplett guide till denna dock. Har just driftsatt den färdiga sensorn ute, därav lite diffande värden i ThingSpeak under 15 minuter.

      Vad gäller länkar till butiker ska jag försöka hitta länkar till de produkter jag valt att använda.
      ( mer uppdateringar kommer inom de närmaste dagarna )
      // Ispep

      • Joakim Gustafsson

        2016-10-10 at 13:38

        Hej,

        Vart beställde du LiFePo4-batteri? Vet du om t.ex. m.nu planerar att ta hem detta?

        //Jocke

        • Ispep

          2016-10-11 at 19:34

          Hej
          Tyvärr fick jag beställa dessa från Kina. pratade lite med M.nu om det skulle vara möjligt att ta in dessa, tyvärr skulle priset st bli långt över 50:- /st.
          Jag ska skapa en poll för att se hur stort intresse det finns för LiFePO4, kanske blir nått m.nu kan ordna i framtiden om det är stort intresse 🙂

          // Ispep

  2. Laddkretsen tp4056 har funkat bra för mig för li-ion-batterier. Den kanske funkar för lifepo4 också?

    • Ispep

      2016-08-17 at 08:04

      Tack för tipset!
      Kollad lite på den kretsen tidigare, utan modifikationer ger den för hög spänning. Men med en diod i serie med batteriet skulle det kanske fungera.
      4.2V laddspänning – 0.7 diodspänning = 3,5V vilket är laddspänningen för LiFePo4.
      Måste då se hur den beter sig om inspänningen varierar mellan 0 – 5.2V.

      Läste lite bra info om den här med: http://lygte-info.dk/review/Review%20Charger%20TP4056%20UK.html

      // Ispep

      • Kjell Lindström

        2016-09-20 at 20:03

        CN3063 kretsen fungerar också bra. Den är designad för solladdning och kan styras till önskad utspänning med en resistor. Drar 3uA om det inte kommer in något från solcellen (sovläge).

        • Ispep

          2016-09-21 at 19:23

          Mycket intressant, ska kolla mer på den där kretsen! Är det nått du själv testat tillsammans med just LiFePO4 ?
          Tackar för tipset 🙂
          // Ispep

  3. Joakim Gustafsson

    2016-10-12 at 15:06

    Hej,
    Jag har funderingar på att bygga några såna här för att hålla koll på när det är dags att vattna i trädgårdslandet. Tänkte i så fall använda sensorer liknande dessa:
    http://www.ebay.com/itm/Soil-Humidity-Hygrometer-Moisture-Detection-Sensor-Module-Arduino-w-Dupont-Wires-/400985207745

    Problemet är att den kopplas in på analogporten. ESP:n har ju bara en analogport, som du så snyggt använder för att mäta batteriet. Hittade ett tips hur man kan koppla flera analoga sensorer till en och samma port, och en bit ner i kommentarerna så diskuteras även att mäta batteriet. Men jag begriper inte hur det går till.

    Guiden:
    http://www.instructables.com/id/ESP8266-with-Multiple-Analog-Sensors/?ALLSTEPS

    • Ispep

      2016-10-12 at 18:02

      Har någon liknande fuktsensor liggande som aldrig blivit nyttjad, det finns en digital port som går att få som ON/OFF om värdet är över X. Men då tappar man möjligheten att skapa en graf och se hur långt det är kvar tills det är dags att vattna 🙂

      Smart sätt att aktivera/inaktivera analoga enheter via en digital pinne för att få stöd för flera analoga sensorer. Att han seden nyttjar en diod i serie för varje enhet förhindrar sensorerna från att störa varandra, men ger ett spänningsfall på ~0.7V.
      Läste en bit ner och om uträkningen av spänningen på batteriet störs av dioden som nyttjas för att blockera de olika analoga sensorerna.

      Rent spontant borde detta inte va ett problem, eftersom sensorn fungerar dåligt när batterispänningen går under 2.8v börjar, bland annat börjar ds18b20 skicka konstiga värden.
      Borde då räkna att räkna om spänningsdelaren och koden som ska skicka in batterivärdet:
      (“Batterispänning” 3.3V – “Dioden” 0.7V) = 2.6V
      För att få 1V av de 2.6V behöver man 40k Ohm och 25K ohm i serie (typ).
      Innan detta skickas via wifi räknar man fram spänningen och addera 0.7V på värdet som ska skickas 🙂

      Är nu upp i 16705 inrapporteringar från ESP:n, tänkte jag skulle försöka skriva om nått bra sätt att visualisera inom kort 🙂

      // Ispep

  4. Ronny Lövstrand

    2016-10-12 at 16:21

    ” Två av dessa batterier ger dubbelt så starka spänning som ett vanligt AA batteri.”

    Där ska det väl stå att ett av dessa batterier ger dubbel spänning jämfört med ett vanligt AA-batteri. Alternativt kan man skriva att ett av dessa batterier ger lika stark spänning som två vanliga AA-batterier.

    • Ispep

      2016-10-12 at 17:23

      Tackar! Helt rätt blev en felskrivning där, detta är nu uppdaterat 🙂

      // Ispep

  5. Hej skulle det inte fungera med en http://www.ebay.com/itm/272331824017?_trksid=p2057872.m2749.l2649&var=571186476991&ssPageName=STRK%3AMEBIDX%3AIT ? ger Max 3.3V men den kanske drar för mycket

    • Ispep

      2016-11-02 at 18:23

      Beror på om den slutar dra ström när spänningen är för låg från solcellen. I så fall skulle det kunna vara ett bra alternativ att testa. Som det ser ut just nu verkar det som att tre dioder i serie fungerar relativt ok, men samtidigt har jag stora förluster med att köra på det sättet så alla tips är välkomna 🙂

      // Ispep

Kommentera

E-postadressen publiceras inte.

*

© 2017

Tema av Anders NorenUpp ↑

%d bloggare gillar detta: