#[1]Louwrentius Full Atom Feed [2]Louwrentius Full RSS Feed
  [3]Louwrentius Categories Atom Feed [4]Louwrentius Categories RSS Feed

[5]Louwrentius

    * [6]Home
    * [7]Contact

[8]This Blog Is Now Running on Solar Power

  July 06, 2020 Category: solar

Introduction

  This blog is now running on solar power.

  I've put a solar panel on my balcony, which is connected to a solar
  charge controller. This device charges an old worn-out car battery and
  provides power to a Raspberry Pi 3b+, which in turn powers this
  (static) website.

  [9]solar

  Some statistics about the current status of the solar setup is shown in
  the sidebar to the right.

Low-tech Magazine as inspiration

  If you think you've seen a concept like this before, you are right.

  The website [10]Low-tech Magazine is the inspiration for my effort. I
  would really recommend visiting this site because it goes to incredible
  length to make the site energy-efficient. For example, images are
  dithered to save on bandwidth!

  Low-tech Magazine [11]goes off-line when there isn't enough sunlight
  and the battery runs out, which can happen after a few days of bad
  weather.

  In January 2020, the site shared [12]some numbers about the
  sustainability of the solar-powered website.

The build

  My build is almost identical to that of Low-tech Magazine in concept,
  but not nearly as efficient. I've just performed a lift-and-shift of my
  blog from the cloud to a Raspberry Pi 3b+.

  I've build my setup based on some parts I already owned, such as the
  old car battery and the Pi. The solar panel and solar charge controller
  were purchased new. The LCD display and current/voltage sensor have
  been recycled from an earlier hobby project.

  [13]controller

  I've used these parts:
  Solar Panel             Monocrystalline 150 Watt 12V
  Battery                 12 Volt Lead Acid Battery (Exide 63Ah)
  Solar Charge Controller Victron BlueSolar MPPT 75|10
  Voltage/Current sensor  INA260
  LCD Display             HD44780 20x4
  Computer                Raspberry Pi 3b+
  Communications cable    VE.Direct to USB interface

The Solar Panel

  The panel is extremely over-dimensioned because my balcony is directed
  towards the west, so it has only a few hours a day of direct sunlight.
  Furthermore, the angle of the solar panel is sub-optimal.

  My main concern will be the winter. It is not unlikely that during the
  winter, the panel will not be able to generate enough energy to power
  the Pi and charge the battery for the night.

  I have also noticed that under great sunlight conditions, the panel can
  easily produce 60+ Watt^[14]1 but the battery cannot ingest power that
  fast.

  I'm not sure about the actual brand of the panel, it was the cheapest
  panel I could find on Amazon for the rated wattage.

The Solar Charger

  It's a standard solar charger made by Victron, for small solar setups
  (to power a shed or mobile home). I've bought the special data
  cable^[15]2 so I can get information such as voltage, current and power
  usage.

  chargecontroller

  The controller uses a documented protocol called ve.direct. I'm using a
  [16]Python module to obtain the data.

  According to the manual, this solar charger will assure that the
  battery is sufficiently charged and protects against deep discharge or
  other conditions that could damage the battery.

  I feel that this is a very high-quality product. It seems sturdy and
  the communications port (which even supports a bluetooth dongle) giving
  you access to the data is really nice.

  The controller is ever so slightly under-dimensioned for the solar
  panel, but since I will never get the theoretical full power of the
  panel due to the sub-optimal configuration, this should not be an
  issue.

The battery

  In the day and age of Lithium-ion batteries it may be strange to use a
  Lead Acid battery. The fact is that this battery was free and -
  although too worn down for a car - can still power light loads for a
  very long time (days). And I could just hook up a few extra batteries
  to expand capacity (and increase solar energy absorption rates).

  To protect against short-circuits, the battery is protected by a fuse.
  This is critical because car batteries can produce so much current that
  they can be used for welding. They are dangerous.

  If you ever work with lead acid batteries, know this: don't discharge
  them beyond 50% of capacity, and ideally not beyond 70% of capacity.
  [17]The deeper the discharge, the lower the life expectancy. A 100%
  discharge of a lead acid battery will kill it very quickly.

  You may understand why Lead Acid batteries aren't that great for solar
  usage, because you need to buy enough of them to assure you never have
  to deep discharge them.

Voltage, Current and Power Sensor

  I noticed that the load current sensor of the solar charge controller
  was not very precise, so I added an [18]INA260 based sensor. This
  sensor uses I2C for communication, just like the LCD display. It
  measures voltage, current and power in a reasonable presice resolution.

  Using the sensor is quite simple (pip3 install
  adafruit-circuitpython-ina260):
#!/usr/bin/env python3
import board
import adafruit_ina260
i2c = board.I2C()
ina260_L = adafruit_ina260.INA260(i2c,address=64)
print(ina260_L.current)
print(ina260_L.voltage)
print(ina260_L.power)

  Please note that this sensor is purely optional, the precision it
  provides is not really required. I've used this sensor to observe that
  the voltage and current sensing sensors of the solar charge controller
  are fairly accurate, except for that of the load, which only measures
  the current in increments of 100 mAh.

The LCD Display

  The display has four lines of twenty characters and uses a HD44780
  controller. It's dirt-cheap and uses the I2C bus for communications. By
  default, the screen is very bright, but I've used a resistor on a
  header for the backlight to lower the brightness.

  lcddisplay

  I'm using the Python RPLCD library (pip3 install RPLCD) for interfacing
  with the LCD display.

  Using an LCD display in any kind of project is very simple.
#!/usr/bin/env python3
from RPLCD.i2c import CharLCD
lcd = CharLCD('PCF8574', 0x27, cols=20, rows=4)
lcd.clear()
lcd.cursor_pos = (0,0) # (line,column)
lcd.write_string("Hello")

12 volt to 5 Volt conversion

  I'm just using a simple car cigarette lighter USB adapter to power the
  Raspberry Pi 3b+. I'm looking at a more power-efficient converter,
  although I'm not sure how much efficiency I'll be able to gain, if any.

Script to collect data

  I've written a small Python script to collect all the data. The data is
  send to two places:
    * It is send to Graphite/Grafana for nice charts (serves no real
      purpose)
    * It is used to generate the infographic in the sidebar to the right

  Because I don't want to wear out the SD card of the Raspberry Pi, the
  stats as shown in the sidebar to the right is written to a folder that
  is mounted on tmpfs.

The cloud as backup

  When you connect to this site, you connect to a VPS running HAProxy.
  HAproxy determines if my blog is up and if so, will proxy between you
  and the Raspberry Pi. If the battery would run out, HAProxy will
  redirect you an instance of my blog on the same VPS (where it was
  running for years).

  As you may understand, I still have to pay for the cloud VPS and that
  VPS also uses power. From an economical standpoint and from a
  ecological standpoint, this project may make little sense.

Possible improvements

VPS on-demand

  The obvious flaw in my whole setup is the need for a cloud VPS that is
  hosting HAProxy and a backup instance of my blog.

  A better solution would be to only spawn a cloud VPS on demand, when
  power is getting low. To move visitors to the VPS, the DNS records
  should be changed to point to the right IP-address, which could be done
  with a few API calls.

  I could also follow the example of Low-tech Magazine and just accept
  that my blog would be offline for some time, but I don't like that.

Switching to Lithium-ion

  As long as the car battery is still fine, I have no reason to switch to
  Lithium-ion. I've also purchased a few smaller Lead Acid batteries just
  to test their real-life capacity, to support projects like these. Once
  the car battery dies, I can use those to power this project.

The rest of the network is not solar-powered

  The switches, router and modem that supply internet access are not
  solar-powered. Together, these devices use significantly more power,
  which I cannot support with my solar setup.

  I would have to move to a different house to be able to install
  sufficient solar capacity.

Other applications

  During good weather conditions, the solar panel provides way more power
  than is required to keep the battery charged and run the Raspberry Pi.

  I've used the excess energy to charge my mobile devices. Although I
  think that's fun, if I just forget turning off my lights or amplifier
  for a few hours, I would already waste most of my solar gains.

  I guess it's the tought that counts.

Conclusion

  In the end, it it was a fun hobby project for me to realise. I want to
  thank Low-tech Magazine for the idea, I had a lot of fun creating my
  (significantly worse) copy of it.

  If you have any ideas on how to improve this project, feel free to
  comment below or email me.
    __________________________________________________________________

   1. the position of the panel is not optimal, so I will never get the
      panel's full potential.  [19]↩
   2. You don't have to buy the cable supplied by Victron, it's possible
      to create your own. The cable is not proprietary.  [20]↩

Comments

Solar Status

71 TiB NAS

[21][zfsnas01-small.jpg]

20C/40T 128G Server [22][dl380g8-sm.jpg]

18 TB NAS

[23][nas-small.jpg]

Projects

    * [24]fio-plot
    * [25]Grafana Dasboard for storage metrics
    * [26]Showtools
    * [27]Storage Fan Control
    * [28]PPSS - Parallel Processing Shell Script

Categories

    * [29]Apple
    * [30]Bash
    * [31]Blogging
    * [32]Debian
    * [33]FreeBSD
    * [34]Hardware
    * [35]Iptables
    * [36]Linux
    * [37]Lustre
    * [38]Microsoft
    * [39]Monitoring
    * [40]NAS
    * [41]Networking
    * [42]OpenVPN
    * [43]PPSS
    * [44]Proxy
    * [45]RAID
    * [46]Robotics
    * [47]Security
    * [48]Server
    * [49]Smartphone
    * [50]solar
    * [51]Solaris
    * [52]Storage
    * [53]Technology
    * [54]Uncategorized
    * [55]VMware
    * [56]Windows
    * [57]ZFS

Archive

    * [58]2020

    * [59]2019

    * [60]2018

    * [61]2017

    * [62]2016

    * [63]2015

    * [64]2014

    * [65]2013

    * [66]2012

    * [67]2011

    * [68]2010

    * [69]2009

    * [70]2008

Social

    * [71]louwrentius


   Proudly powered by [72]Pelican, which takes great advantage of
   [73]Python.
   Based on the [74]Gumby Framework

References

  Visible links
  1. https://louwrentius.com/feed/atom/all.atom.xml
  2. https://louwrentius.com/feed/rss/all.rss.xml
  3. https://louwrentius.com/feed/atom/solar.atom.xml
  4. https://louwrentius.com/feed/rss/solar.rss.xml
  5. https://louwrentius.com/
  6. https://louwrentius.com/
  7. https://louwrentius.com/pages/contact.html
  8. https://louwrentius.com/this-blog-is-now-running-on-solar-power.html
  9. https://louwrentius.com/static/images/solarpanelbalcony-large.jpg
 10. https://solar.lowtechmagazine.com/power.html
 11. https://solar.lowtechmagazine.com/about.html#offline
 12. https://solar.lowtechmagazine.com/2020/01/how-sustainable-is-a-solar-powered-website.html
 13. https://louwrentius.com/static/images/solarcontrollerboard-large.jpg
 14. https://louwrentius.com/this-blog-is-now-running-on-solar-power.html#fn:ideal
 15. https://louwrentius.com/this-blog-is-now-running-on-solar-power.html#fn:cable
 16. https://github.com/karioja/vedirect
 17. https://batteryuniversity.com/learn/article/lead_based_batteries
 18. https://learn.adafruit.com/adafruit-ina260-current-voltage-power-sensor-breakout
 19. https://louwrentius.com/this-blog-is-now-running-on-solar-power.html#fnref:ideal
 20. https://louwrentius.com/this-blog-is-now-running-on-solar-power.html#fnref:cable
 21. https://louwrentius.com/71-tib-diy-nas-based-on-zfs-on-linux.html
 22. https://louwrentius.com/my-home-lab-server-with-20-cores-40-threads-and-128-gb-memory.html
 23. https://louwrentius.com/20-disk-18-tb-raid-6-storage-based-on-debian-linux.html
 24. https://github.com/louwrentius/fio-plot
 25. https://grafana.com/grafana/dashboards/11801
 26. https://github.com/louwrentius/showtools
 27. https://github.com/louwrentius/storagefancontrol
 28. https://github.com/louwrentius/PPSS
 29. https://louwrentius.com/category/apple.html
 30. https://louwrentius.com/category/bash.html
 31. https://louwrentius.com/category/blogging.html
 32. https://louwrentius.com/category/debian.html
 33. https://louwrentius.com/category/freebsd.html
 34. https://louwrentius.com/category/hardware.html
 35. https://louwrentius.com/category/iptables.html
 36. https://louwrentius.com/category/linux.html
 37. https://louwrentius.com/category/lustre.html
 38. https://louwrentius.com/category/microsoft.html
 39. https://louwrentius.com/category/monitoring.html
 40. https://louwrentius.com/category/nas.html
 41. https://louwrentius.com/category/networking.html
 42. https://louwrentius.com/category/openvpn.html
 43. https://louwrentius.com/category/ppss.html
 44. https://louwrentius.com/category/proxy.html
 45. https://louwrentius.com/category/raid.html
 46. https://louwrentius.com/category/robotics.html
 47. https://louwrentius.com/category/security.html
 48. https://louwrentius.com/category/server.html
 49. https://louwrentius.com/category/smartphone.html
 50. https://louwrentius.com/category/solar.html
 51. https://louwrentius.com/category/solaris.html
 52. https://louwrentius.com/category/storage.html
 53. https://louwrentius.com/category/technology.html
 54. https://louwrentius.com/category/uncategorized.html
 55. https://louwrentius.com/category/vmware.html
 56. https://louwrentius.com/category/windows.html
 57. https://louwrentius.com/category/zfs.html
 58. https://louwrentius.com/archive/2020
 59. https://louwrentius.com/archive/2019
 60. https://louwrentius.com/archive/2018
 61. https://louwrentius.com/archive/2017
 62. https://louwrentius.com/archive/2016
 63. https://louwrentius.com/archive/2015
 64. https://louwrentius.com/archive/2014
 65. https://louwrentius.com/archive/2013
 66. https://louwrentius.com/archive/2012
 67. https://louwrentius.com/archive/2011
 68. https://louwrentius.com/archive/2010
 69. https://louwrentius.com/archive/2009
 70. https://louwrentius.com/archive/2008
 71. https://twitter.com/louwrentius
 72. http://getpelican.com/
 73. http://python.org/
 74. http://gumbyframework.com/

  Hidden links:
 76. https://louwrentius.com/this-blog-is-now-running-on-solar-power.html