Jump to content
Festivalanlæg dk
monkeyjens

WIP: Real-time analytics på solceller med IoT

Recommended Posts

Hej FA

Jeg tænkte at en tråd omhandlende mit nuværende projekt både kunne hjælpe både mig og skabe interesse/debat for nysgerrige og specialister. Alle input modtages glædeligt. 

Da det er første gang jeg har med solceller at gøre, blev jeg fanget i besværligheden i at optimere sine solcellers output. Heldigvis har jeg et IoT fag på mit uni(handelsskole) dette semester og tænkte da at jeg kunne slå to fluer med et smæk og skrive en opgave om hvordan man kan optimere sin solcelle/ dens output ved hjælp af IoT ( mest gennem real-time analytics) og samtidigt spare penge. Det er første gang jeg arbejder med IoT og Raspberry PI så læringskurven er lidt stejl omend meget interessant. Det skal sige jeg er bekendt med kodning men ikke er teknisk specialist på nogen punkter, så bær over med mig. Samtidigt med dette skrives der er en teoretisk opgave om IoT og solceller mv. i organisationer som RF så input hertil er også velkomne. 

Jeg vil introducere mit setup og derefter forklare mit nuværende standpunkt samt fremgangmåde og nuværende begræsninger:


Mit anlæg består pt af

Og solcelle setuppet

https://imgur.com/a/lfYJg0E - billeder af solcellesetup ( jeg ved godt at sikringen sidder i den forkerte ende)

Der er få der har lavet tilsvarende setups, inspiration er meget draget fra denne fyr: http://www.solarpoweredhome.co.uk/

Overordnede mål: 

  1. Få sendt data fra solcelle controlleren til en server gennem en raspberry Pi hvorfra jeg kan analysere på det real-time og historisk set med tiden. 
    1. At få lavet en end-to-end guide omkring hvordan man kan lave real time analytics via IoT og sine solceller (open source)
    2. Bringe noget tilbage til FA da der virkeligt er meget lærerigt indholdt herinde. 

 

Den overordnede "salgs ide" med projektet er at spare RF for strøm og sig selv for penge/kræfter da man ikke skal have opladt sine batterier og ikke behøver at slæbe dem rundt. 

I min tekniske analyse fokuserer jeg på få elementer hvor dette projekt kan hjælpe på RF

  1. At vide hvornår man skal flytte sin solcelle ift. solen (manglende output ved fx. direkte sol)
  2. At vide hvornår man skal rense sin solcelle ift. støv (manglende output ved fx. direkte sol)
  3. At vide der er noget galt med sit setup (manglende output ved fx. direkte sol)
  4. ...?

 

Teknisk del :                                                                                                                    

Raspberry Pi er linux og da jeg bruger mac skriver jeg alt kode i python gennem terminalen. Jeg regner med at bruge Modbus protocollen til at hente data fra controlleren da det er anbefalet fra fabrikanten og brugt i lignende cases. 

Jeg har pt. modtaget controlleren og PI i tirsdags og er igang med at få hul igennem til at bruge netværket så jeg kan hente modbus biblioteket. Mit udgangspunkt er at prøve at bruge nedenstående kodestykke og bygge videre på det. Pt virker det ikke, da modbus biblioteket endnu ikke er indlæst på Pi'en(regner jeg med at få bugt med i aften eller imorgen formiddag) 

_____________________

from pymodbus.client.sync import ModbusSerialClient as ModbusClient

client = ModbusClient(method = 'rtu', port = '/dev/ttyUSB0', baudrate = 115200)
client.connect()

result = client.read_input_registers(0x3100,6,unit=1)
solarVoltage = float(result.registers[0] / 100.0)
solarCurrent = float(result.registers[1] / 100.0)
batteryVoltage = float(result.registers[4] / 100.0)
chargeCurrent = float(result.registers[5] / 100.0)


# printing the output

print('solar voltage:', solarVoltage)
print('solar current:', solarCurrent)

print('battery voltage:', batteryVoltage)
print('charge current:', chargeCurrent)
client.close()
_______________

Jeg håber projektet falder i nogens interesse - Og at der kan komme en fed diskussion op at køre med lignende projektet der måske ikke har været oppe og vende på FA før. 

PT søger jeg hjælp til (opdateres løbende):

  • Mulige use-cases på hvor det kan være brugbart med IoT og solceller på Festivaller el. lignende
  • Input til kode-delen
    • gode forslag til videreudviklinger
  • Generelle input/diskussion til faldgrupper/mangler/fordele/ulemper ved sådan et her projekt. Alt fra industri indsigter til praktiske ting. Jeg ved i er dygtige i hver jeres felt så skyd mig endeligt ned eller hjælp mig i retning af noget bedre! 
  • Erfaringer med Raspberry PI og gode fif's
  • Hvad betyder det for strømforbruget (jf. viktors batteriberegner) når man bruger en kondensator? Nogen der har en teoretisk udlægning af hvor meget strøm den trækker?

Vil man gerne læse den endelige opgave kan man skrive mig en besked. 

Please - lad være med at Quote hele denne wall of text! Jeg mangler måske noget så spørg endeligt!
Mvh Jens!  :D

Share this post


Link to post
Share on other sites
Hold dig opdateret på nyheder fra Canopy Sound - smid et like!


57 minutes ago, monkeyjens said:
  • Hvad betyder det for strømforbruget (jf. viktors batteriberegner) når man bruger en kondensator? Nogen der har en teoretisk udlægning af hvor meget strøm den trækker?

En kondensator bruger som sådan ikke strøm. Det er bare en midlertidig opbevaring af strømmen fra dit batteri.
Der vil dog altid være en mindre modstand i sådan en, som vil resultere i et mindre strømforbrug (når der trækkes strøm fra den eller den oplades: hvis ingen strøm løber igennem, vil den ikke bruge noget: slukket anlæg eks.). Det er dog ikke noget jeg overhovedet ville overveje at regne på, da det er forsvindende lidt.
Hvis du har lyst til at grave dig ned i det, kan du finde masser af svar på google. Det bliver dog noget langhåret hvis du virkelig vil forstå det.
Som rule of thumb: bliver dine elektriske komponenter varme, bliver der afsat strøm i dem. Jeg vil garantere for at din kondensator ikke bliver det mindste varm, selvom du kører dit setup til max.


EDIT: nu hvor jeg tænker over det, kan det faktisk være at det er en fordel med en kondensator: hvis den interne modstand i dit batteri er "stor" i forhold til kondensatoren (jeg vil tro den er større), er det en fordel at det er kondensatoren der giver de mange ampere og batteriet kun giver mindre men en mere jævn strøm.

Share this post


Link to post
Share on other sites

Spændende projekt. Er stor fan af alt hvad der involverer Linux, pi's og generel hobbyelektornik :D

Vi har selv købt en Victron SmartSolar der har indbygget bluetooth som kan noget af det samme i en app med at vise data omkring opladning osv. https://www.victronenergy.com/solar-charge-controllers/smartsolar-mppt-75-10-75-15-100-15-100-20

Jeg har selv en del erfaring med Linux og pi's og bruger gerne Python når jeg skal lave nogle småscripts. Skriv endelig hvis du har nogle specifikke problemer :D

Share this post


Link to post
Share on other sites

@Skoven Tak for svaret - det var lige sådan noget jeg havde brug for. Jeg kommer ikke til at dykke ned i det, så en blød forklaring er nok til at fortælle at det ikke påvirker energiforbruget markant - og at det måske endda hjælper. 

@Kostecki Haha - det er rigtigt sjovt legetøj. Jeg så også godt at min controller havde tilsvarende løsninger, men det fjernede lidt IoT projektet hvis jeg skulle bruge deres løsning og ikke en pi. Det kan meget vel være at jeg smider dig en pm eller lignende når jeg har mere konkrete problemer. 

Share this post


Link to post
Share on other sites

Jeg kunne ikke få wifi til at virke på raspberry pi zero w. Så jeg tog ind go købte en Pi 3b+ (og SD kort) da den har netstik og fremadrettet kan tage 5.0Ghz signaler. Og den spiller.

Jeg fik booted et nyt image på det nye SD, smidt ssh på, tilsatte et netværkskabel og fik installeret alle de pakker han anbefaler her

Og ved i hvad. Det fungerede sku med kodestykket. Jeg fik mit første output og herunder er et billede af outputtet med dårligt formateret kode og dårlig opsat solcelle (data er fra kl. 18.11 halv overskyet). Har edit'ed koden i teksten så det passer med outputtet herunder. 

395696253_Skrmbillede2018-05-18kl_18_11_34.png.dcf488c7b6943b42d61f58a2532333fc.png

Jeg kan desværre kun teste setuppet af ved min solcelle der fylder lidt for meget, så hvis nogen har en lille de vil låne ud eller ved hvor man kan købe en 10w i københavnsområdet tager jeg glædeligt imod tilbud. 

PT. er de næste skridt

  • Få ordnet at terminalen lagger pga. SSH
  • Få testet mere komplekse kodestykker af der løbende henter data og sender det til server
  • Få skrevet opgaven

Share this post


Link to post
Share on other sites

Mega fedt!

Har først set posten nu. Lige mig :D

Kunne være super sprødt at integrere "Current dB" og lave sammenligninger mellem lysstyrke fra solen over tidspunktet på døgnet så vi får en masse data indsamlet.
Kanont fedt projekt.

Share this post


Link to post
Share on other sites

Fed tråd!

Har du koden på et github/bitbucket repo evt? Hjælper gerne med at skrive noget kode, selvom det er nogle år siden jeg brugte python sidst :) 

 

Share this post


Link to post
Share on other sites
On 18/5/2018 at 21:42, monkeyjens said:
  • Få testet mere komplekse kodestykker af der løbende henter data og sender det til server

Hvad kører du serveren med?

Share this post


Link to post
Share on other sites

Tak for interessen! Det er så fedt med input. Dog har viderudviklingen af koden været på hold for at have fokus på eksamener. 

Jeg er retard til git/bitbucket men har nu uploadet det kode jeg har arbejdet med på bitbucket.  https://bitbucket.org/monkeyjens/iot-analytics/src/master/ 

@William hvad mener du præcist med 'current dB'? jeg tror jeg forstår og det er nemlig sådanne ting jeg gerne vil trække ud med dette projekt

@viktor Jeg er ikke nået til server integrationen endnu. Jeg vurderede at fokus på at få det skriftlige i opgaven samt dokumentering af at det fungerede var bedre end json kald. Jeg har tænkt en del over det - både i forhold til eksamen, men også til brug på roskilde - og jeg regner pt. ikke med at have min PI koblet til nettet under RF - men derimod vil jeg meget gerne skrive outputtet fra solpanelet til en logfil eller lignende på PI'en som jeg derefter kan lave analyse på. Optimalt set så sendes data direkte ind i en tabel. 

Jeg har prøvet uden succes at tilpasse et kodestykke, så nu har jeg smidt det rent ind i bitbucket. Det er tyvstjålet fra ham her (http://www.solarpoweredhome.co.uk/) . det skal modificeres til at skrive til en lokal fil/tabel med timestamps. Kodestykke: https://bitbucket.org/monkeyjens/iot-analytics/src/master/realtime

Share this post


Link to post
Share on other sites

Hvis det skal blive rigtig fedt, så kan du opsætte en "TICK-stack" (Telegraf, InfluxDB, Chronograf, Kapacitor)

Tick-Stack-Complete.png

På den måde kan du f.eks. skrive din lokale data til en fil eller whatever og lade Telegraf raportere tidsserie-data'en til en server med InfluxDB kørende. Det er måske lidt en forchromet løsning, og der er helt sikkert andre måder at gøre det på, så lad det ikke skræmme dig :) 

Men start med at få dit program til løbende at skrive din data til en log fil (json eller andet). Derfra kan du så se nærmere på at køre telegraf, som f.eks. kan læse og videresende dit data efter behov (en gang i timen/døgnet/etc)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Hvem er online?   0 Members, 0 Anonymous, 10 Guests (See full list)

    There are no registered users currently online

×

Important Information

Festivalanlaeg.dk bruger egne cookies samt cookies fra tredjepart til statistik, indholdsoptimering, præferencer og målrettet indhold fra Festivalanlaeg.dk. Tredjepart kan anvende cookies til målrettet markedsføring. Ved at klikke "I Accept" giver du dit samtykke. Læs mere om Festivalanlaeg.dk's We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..