Introduction to Home Automation with Raspberry Pi and Fhem
Home Automation is a cool subject - Its futurity, energy efficient, everything is everywhere under control and at least its a little bit nerdy/geeky. So concerning sizing, power and pricing the Raspberry Pi is qualified for an house-controller. The additional hard- and software requirements can be achieved by already existing hardware modules and open source software - the setup itself is no rocket science.
Raspberry Pi Caller and Answering Machine
For some purposes i thought it would be very nice to enable some telecommunication abilities on raspberry pi. For example if something does not work as it should (e.g. average load too high, temperature/humidity too high) raspberry pi can call you. Or if you just want to control something quickly via phone (e.g. starting a process, reboot or open the door) - raspberry pi can answer your calls and made it for you. Of course you can make it via SMS or web-interface, too - but for example a call often gets more attention than a sms.
Raspberry Pi Watchdog Timer
Since i’m familiar with using a watchdog timer in some microcontroller-projects, i’ve been thinking about watchdog-support for Raspberry Pi. Generally a watchdog timer is nothing else than a timer-register which can be realized on hardware- and/or software-side. It’s main purpose is to trigger a system reset or other corrective action if something doesn’t works anymore as it should be. In detail the timer-register needs to get resetted in a functional workflow before its filled up and triggers the reset or special action.
This means that the functional system must trigger a heartbeat to the watchdog (“feeding the dog”) within a hard (hardware, not changeable) or soft (software, self-definable) time period. An absence of some heartbeats results in reaching the time limit and triggering the reset/action.
Raspberry Pi with I2C-Arduino-Slave
Since Raspberry Pi has only about 8 GPIO’s (or up to 17 if you reconfigure UART, SPI and I2C as GPIO) or for some other reasons, it may be helpful to combine Raspberry Pi with another μC or PIC (or even a ready-to-use μC-/PIC-Board like Arduino, Netduino or Pinguino) e.g. to get more I/O’s or just to seperate two different application areas. Such a combination is surely easy to setup via serial or usb - but at least if serial/usb is already in use or if you are thinking about using more than one further μC or PIC its getting a bit clumsy. Much more flexible and cleaner will be a solution via I2C - in this case you can easily address up to 128 slaves.
I2C-Level-Shifter / I2C-Bridge
For some scenarios you need to enable communication over two or more different voltage levels. For example, if you want to use an ATmega168/328 or Arduino running @ 16MHz/5V as an i2c-slave with a RaspberryPi running @ 3V3 you need to shift/translate/isolate intercommunication levels between both devices. (Remember that RaspberryPi only runs 3V3 logic levels and a higher voltage may destroy the board.)
Raspberry Pi and I2C
I2C (Inter-Integrated Circuit) (see wikipedia), also known as two-wire interface
(TWI), is a very handy bus protocol. It enables communication of multiple devices over just two wires: SCL (clock line) and SDA (data line).
Generally the RPi supports I2C over GPIO assumed that the kernel supports it and a driver is loaded. For this requirement i use the kernel of Chris Boot which is based on a 3.2 kernel, supports SPI and I2C out of the box and has some more features and advantages in comparison to the official RPi 3.1 kernel.
Raspberry Pi Fritzing Part
For doing some prototyping stuff it maybe really helpfull to use Raspberry Pi within’ Fritzing*. Since i haven’t found a part of the board until today i’ve spent some time and created the svg-files for building the appropriate part of the board, model b.
PCD8544 Library for Raspberry Pi
(Nokia 3310/5110 Display)
For some Arduino/ATmega328p/µC-based projects i’ve used a PCD8544-based Nokia 3310/5110 Display. The main advantages of this display are the low price and the simplicity of driving it. So since i’ve got my first Raspberry Pi and discovered the GPIO-functionality i wanted to drive this display with my RPi.