The Raspberry Pi is a single board computer that was originally created
      as an inexpensive computer science learning tool. I have owned several of
      these devices that I have used for a number of projects and experiments.
      Most of these projects are not my original ideas, but I thought some
      people might find it informative to read about some ways this inexpensive
      computer can be utilized. This article is just a list and short
      description of the projects I have done. Some research on the Internet
      should provide more detailed information on how to actually implement any
      of these projects.
    Weather Station Server
     In 2007 I got hooked on the idea of running a personal weather station
      at my home. After some research I assembled a weather station using a
      combination of commercial sensors, kits, and some home brewed parts. I
      also developed software to communicate with the weather station, store the
      data in a database, compile statistics, and update a web site I created to
      display the weather data. I went through several hand me down and
      discarded computers to run my weather software until I learned about the
      Raspberry Pi. It appeared to be a perfect fit for my needs, small, low
      power, and capable of running a Linux derived operating system. So in
      March of 2014 I purchased a Raspberry Pi Model B, added an external hard
      drive, and moved my weather station software to a Raspberry Pi. It has
      been running continually on the same Raspberry Pi since then.
      Clopper Mill Weather
    Database Server (PostgreSQL)
     One feature of my weather station software is that it saves the raw data
      from the weather station hardware in an SQL database. I chose to use
      PostgreSQL as the database server and run that on the same Raspberry PI
      Model B I am using for my weather station software. Since this model of
      the Raspberry Pi is one of the earlier models it is not up to the task of
      calculating statistics that require traversing the volume of data the
      weather station generates. A newer model Raspberry PI is most likely up to
      the task, so I may eventually choose to upgrade to one of the newer and
      more capable models.
      PostgreSQL
    Home Automation Server (OpenHAB)
     Another of my hobbies is experimenting with home automation. It started
      out with some X10 lighting with a simple controller and then expanded from
      there. In addtion to the lights and motion sensors, I now have integrated
      Z-Wave and Zigbee controllers, ceiling fans, a smart thermostat, Z-Wave
      door lock, Kodi media center, and Amazon Echo devices into my system. To
      control all of these devices I needed a software package that can
      integrate and control all of these devices. While there are more than one
      choice of software packages, I chose to use OpenHAB. I run this software
      on a Raspberry Pi 3 Model B, along with all of the other projects listed
      here except the weather station and database servers.
      OpenHAB
    Robocall Blocking (NCID)
     I was searching for a way to block unwanted telephone calls and found
      NCID or Network Caller ID. The software's original purpose was to share
      caller ID information on a LAN. However it also had the capability of
      pattern matching against the caller ID information using regular
      expressions and executing commands, such as hanging up on the call. I had
      an old modem hanging around that was capable of receiving caller ID data
      so I installed NCID on my shared Raspberry Pi 3 Model B and connected the
      modem to give it a try. I use it to screen calls using a combination of
      whitelists and blacklists, as well as pop up call alerts on my laptop
      computer and Kodi media center. 
      NCID
    Network Monitoring (Nagios)
     My home network is probably a bit more complex than your average home
      network. I have a dedicated firewall that runs several services, three
      MOCA bridges, a dedicated NAS server, several managed switches, a home
      theater PC, my weather station server, the Raspberry PI running all of the
      projects listed here, and several hosted web sites on the Internet. While
      searching for a solution for monitoring the health of all of these servers
      and the services running on them I discovered Nagios. Nagios is a network
      monitoring solution that has a free version that will run on a Raspberry
      Pi. I currently use it to monitor 47 services running across 17 different
      hosts. Nagios sends me email notifications when it detects issues with any
      of these services. I highly recommend this software package for network
      monitoring.
      Nagios
    Email server (Exim)
     Several of my software packages and servers either require or have the
      ability to send emails. I had previously consolidated email access for all
      of these servers to my firewall where I ran an email server that could
      filter any email traffic being sent to and from the Internet. When I
      upgraded my firewall the newer software retained some of the email
      filtering capabilities but no longer included the email server (is that
      really an upgrade or a downgrade?). As an experiment I setup Exim on my
      Raspberry Pi and used that as my consolidated email server. All of my IOT
      apps and services use this as their email server. My firewall still
      filters all the mail processed by Exim. I must caution anybody
      experimenting with running an email server that it is a security concern
      as it can be an easy target for abuse if the server is misconfigured
      and/or subsequently compromised. Use this with a great deal of caution
      Exim
    IP Camera Server
     As a part of my weather station I have an IP camera for remote visual
      monitoring of the current weather conditions at my home. I didn't want to
      provide direct access to the camera hardware, so I setup the nginx web
      server to act as a proxy. This permitted me to allow external access
      without exposing the camera or its' login credentials directly the
      Internet. Since nginx is a full web server you could also create a web
      site on a Raspberry Pi for home use or development. 
      Nginx
    Gateway Service for Amazon Alexa and IP Camera
     I wanted to be able to view my IP cameras on my Amazon Echo.
      Unfortunately, the cameras I own do not integrate directly with the Amazon
      Alexa service. Monocle is a software service that provides that type of
      integration. In order for it to work with the more recent Echo versions
      you need to run a small gateway service on your local network. I chose to
      run this gateway on my Raspberry Pi. Now I can ask Alexa to show me the IP
      cameras and see them displayed on the Echo screen.
      Monocle
    DDNS Updater
    I use a free Dynamic DNS service to allow accessing my home server
      through the Internet. Since my server's external IP address is assigned by
      my ISP using DHCP it can periodically change. In order to keep my DDNS
      provider updated I run a small daemon application on my Raspberry Pi that
      will update the dynamic DNS provider when my external IP address changes.
      You will need to find the update client that works with your DNS provider.
      I use noip.com.
      No-IP dynamic DNS update client