I thought I should provide a brief overview of my project that I'll submit for Arduino Day.  Tariq sent me an Arduino Nano 33 IoT to use in my project.  Thanks Tariq!  I was a bit surprised that it was shipped directly from Farnell in the UK, but I'm guessing there wasn't any US stock - probably a pandemic side effect....


A few years ago the Energy Trust of Oregon was offering incentives to install upgrades to reduce energy usage and I took the opportunity to add thermal reflective material over the insulation in my attic and also added a solar powered attic vent fan and a solar powered crawlspace (under house) vent fan.  Unfortunately, there wasn't much opportunity to customize the fan installations and I got a fairly basic setup (no switches - manual or thermal).  I noticed an immediate improvement in my energy utilization and I haven't had any significant issues even though the fans always run whenever the sun is shining.  It's great during the summer, but on really cold (below freezing) winter days you don't want to be drawing cold air through the attic or crawlspace.  Luckily we don't have many cold sunny days like that - maybe a week or two every year.  The added energy loss in that case is problematic, but I'm mainly concerned with the pipes under the house freezing.  The pipes are embedded in the insulation, but my neighbor had a problem with an interior pipe bursting due to freezing (not sure how well his pipes are insulated).


A recent spell of freezing temperatures and small amounts of snow have given me the incentive to add some intelligent control to the fans (currently if I'm really worried, I crawl under the house and manually disconnect the power).


Snow on my doorstep, the day before Valentine's Day this year.


The crawlspace vent fan viewed from the crawlspace.


The power connectors are Molex Mini-Fit Jr, so I'm going to wire the controller using the same connectors.


The vent from the exterior.  I found a weatherproof box that's shown on the right to house the electronics.  I'll probably mount it to the siding above the vent.  The cables above the box are for internet and telephone (not used anymore).


The styrofoam blocks used to weatherize the vent (of course, the fan has to be off).  I'm planning to put a set of louvers over the vent as part of the upgrade.


Fan Controller


Project configuration

  1. Power source - LM2596 buck converter to step down the solar panel voltage (nominally 20V) to 5V for the control electronics
  2. Fan power switch - HW-803 optically isolated relay module (5V single form C relay) to connect/disconnect solar panel voltage to the fan
  3. Local temperature sensor - BME280 I2C sensor attached to control processor
  4. Control processor -  Arduino Nano 33 IoT
  5. Remote temperature sensor in crawlspace - ESP32 with BME280 via WiFi
  6. Remote monitor and control - MQTT via WiFi
  7. MQTT broker - RPi4 (this is already available)


Here is a picture of the boards that I am using:

I've started to wire a proto board for the Arduino Nano 33 IoT - you can see the BME280 on the right.  The relay module is in the middle and the buck converter is at the bottom. I've also added a slide switch to the buck converter input to disconnect the solar panel voltage manually.


Control features

  1. If the local temperature is below 40 F, shut off power to the fan by de-energizing relay.  Re-energize relay when temperature reaches 40
  2. Periodically report temperature, relay state, and solar panel voltage via MQTT
  3. Remote override control via MQTT (force relay on or off)
  4. Receive remote temperature/humidity via MQTT - in the initial implementation I won't use this data for control


I'll elaborate on the implementation when I document the project for Arduino day.