User Tools

Site Tools


Home Environmental Sensor Array


Summary Status

After experiencing a minor flood in the basement when the water softener turned on and the sump pump was not installed, I realized that my water softener runs without electricity. So, I changed the design of the HESA to turn on power to a submersible pump when it detects water rather then turn off power to the water softener. I also added graphing capability to the web page and made the code more reliable.

Click here to read the latest updates on my blog.

Final Solution


  • Auto-startup on power up.
  • Auto-recovery on program failure
  • Status light that shows when pi is running.
  • Check for water in the basement. If found:
    • Turn on power to submersible pump
    • Send email to mail address. If internet is down, wait until it is up to send message.
    • Update local status page and internet database
  • Send all clear email when water clears
  • Read temperature and humidity in basement
  • Store hourly readings to SQL tables on internet
  • Web-based status page with graphs
  • All components mounted in enclosure that is mounted on wall and connected to 120v power

External Features

  • Email address that forwards mail to several email addresses as well as texting



Bill of Material


  • 120v to 5v USB power converter and USB cable for Raspberry Pi
  • Duplex power outlet
  • Power plug for input with power cord for PC
  • Power switch
  • Powerswitch tail to control power
  • Water sensor cable
  • Connector plugs (2)
  • Ethernet cable
  • Enclosure


  • Wires to connect Raspberry Pi ports to devices
  • 100k resistor for LED in enclosure
  • Flat edge connectors for electrical wires
  • Eyelet connectors for electrical wires
  • Wires to carry 120 volts of electricity
  • Solder

Phase 1


Create a device that will sense when water is spilling in to the basement. The device will shut off power to the water softener and notify people that there is a problem.


  1. Order Raspberry Pi and its components – Done
  2. Order Powerswitch tail – Done
  3. Setup Raspberry Pi with basic configuration – Done. View the blog entry.
  4. Create email group on my website to redirect email to multiple accounts – Done. View the blog entry.
  5. Write Python module to send email – Done. View the blog entry.
  6. Assemble Powerswitch tail – Done. View the blog entries here, here, and here.
  7. Write Python module to control Powerswitch tail – Done
  8. Write Python program to incorporate all features for phase 1 – Done
  9. Design a sensor to detect water – Done. Decided to go with bare wires.
  10. Design portable test system – Done
  11. Obtain materials for portable test system – Done
  12. Ensure that the basic design works 100% – Done
  13. Design enclosure – Done
  14. Obtain materials for enclosure – Done
  15. Build enclosure – Done
  16. Mount device in basement and test – Done
  17. Install FTP on raspberry pi – Done
  18. Install website files to the raspberry pi – Done

Follow-up tasks

  1. Make a backup of the SD card – Done
  2. Publish on Instructables – Done
  3. Install Avahi to be able to access the pi by its host name rather than IP address – Done
  4. Print a raspberry pi base on the 3D printer – Done
  5. Replace ethernet faceplate with one with one or two openings rather than four – Done
  6. Install MySQL administration tool – Done
  7. Populate MySQL tables – Done
  8. Make HESA store all events to a local file or table
  9. Store readings to local table, then update internet table, if available
  10. Make monthly graphs
  11. Make daily routine to consolidate daily temp and humidity data to a summary table
  12. Test development web server – Not started

Phase 2


Make the device more user-friendly and interactive. Replace the Pi with a Beaglebone Black to make it able to connect to more things. It should record daily data and statuses in a web-based database. It should check the internet connection regularly. If there are any non-standard conditions, alert the humans with email (if possible), lights, and sound until the problem conditions are gone.


  • Record resistance readings multiple times a day in a web-based database
  • Record system statuses in a web-based database
  • Check internet connectivity
  • Display status on LCD screen
  • Turn on light if internet connection is lost
  • Turn on siren if flood condition recognized
  • Repeat messaging every 24 hours

External Features

  • Web site that displays reading results in tabular and graphical form


  • Beaglebone Black
  • Green LED for normal operating conditions
  • Yellow LED for internet lost
  • Red LED for hazardous condition
  • 16×2 display
  • Siren
  • Manual power switch for siren
  • Reset button


  1. Obtain Beaglebone Black – Done
  2. Obtain 4gb or larger mini-SD card – Done
  3. Update O/S on BBB – Done
  4. Figure out how to power up BBB without USB cable – Done. It needs a power supply that can provide 5v, 1A (or more), 2.1mm, CENTER POSITIVE.
  5. Obtain power supply for BBB – Done. An old Linksys PPP device had an appropriate PSU.
  6. Install Debian image on eMMC – Done
  7. Make support / case for BBB – Done
  8. Get HESA python program working on BBB – Not started
  9. Make HESA start automatically when BBB boots up – Not started
  10. Create MySQL tables to store status updates – Done
  11. Make HESA program update status in MySQL table – Done
  12. Make web page on to display HESA status Done
  13. Find working 16×2 LCD display – Done
  14. Get LCD display working with BBB – Not started
  15. Add LCD code to HESA python program – Not started
  16. Install LCD screen in HESA enclosure front panel – Not started
  17. Design circuit that includes reset button – Not started
  18. Obtain components for reset button circuit – Not started
  19. Install reset button circuit in HESA enclosure – Not started

Phase 3


Add a battery backup feature so the system can send alerts and shutdown gracefully in case of a catastrophe. Detect other environmental problems, record regular readings and send alerts.


  • Battery backup
  • Detect power outage and send email alert
  • Add a button to shutdown the Pi, then shutoff power
  • Add a button to reboot the Pi
  • Low temperature detector
  • Monitor carbon monoxide levels
  • Monitor radon levels


  • Battery power supply
  • Device that detects primary power outage
  • Temperature sensor
  • Carbon monoxide sensor
  • Radon sensor

Members: Ken Becker

projects/home_environmental_sensor_array.txt · Last modified: 2014/10/24 19:04 by kennethsbecker