Din varukorg är för närvarande tom!
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.
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.
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)
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.
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.
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.
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.
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.
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.
- 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.
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.
# Räknar fram från httploggen hur många mA sensorn bör ha laddat idag: $sensorNamn = "esp8266-NR12" $loggFilen = ".\Automatiserar\Data\Data.log" $antalDagarTillbaka = 1 $laddning = 36 # anger hur mycket laddning sensorn får (i mA) $summa = 0 # summerar hur många ma som sensorn laddats med Write-Host "Kontrollerar nu hur mycket mycket laddning sensorn bör ha fått idag" if (Test-Path $loggFilen){ # hämta in och behandla datat: foreach ($rad in $(Get-Content $loggFilen | Select-String -Pattern $sensorNamn | Select-Object -ExpandProperty line)){ $tmp = $rad.split("|") Write-Verbose "kommer nu kontrollera $tmp" if (([datetime]$tmp[0]) -ge (Get-Date).AddDays(-$antalDagarTillbaka)) { Write-Verbose "Resultatet blev Samma dag!, testar nu $($tmp[-1])" if (($tmp[-1] -as [decimal]) -ge (5.00)){Write-Verbose "Laddade"; $summa++ } else { Write-Verbose "Resultatet blev mindre än 5.00 ( $($tmp[-1])" } } else { Write-Debug "Ej samma dag ( $tmp )" } } write-host "Sensorn har laddat $((($summa * $laddning) * 5) / 60 )mA totalt på $($summa * 5) Minuter" } else { Write-Warning "Kunde inte hitta filen $loggFilen" }
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 –
- 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.
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