Monitoring Home

Introduction

The requirements for my monitoring projects are simple:

  • Want to be mostly cabling free.

One of the things than makes a good monitoring system at home is don’t having to make new cabling all around the house each time you put a new sensor or want to check a new temperature room.

  • Want to use open-source products.

There are several reasons for that. Despite what most people think that we use open-source because is free (like free beer ;-)) in my case is not true. The fact of using open-source products is because the support, the driver availability, the modifications to adapt the product, etc. etc. Several times I did donations to products so at the end, has never be free as a free beer.

Requirements

  • Cheap sensors for temperature, humidity, electrical power consumption, digital status, barometric pressure,
  • Long distances > 20 meters
  • Cheap controllers.
  • Easy deployment
  • Mobile, distance and independent data display
  • Database for making complex requests if needed

Hardware

  • Sensors: DS18B20 with isolation for the heating system, normal one for standard temperatures, DHT21 for temperature and hygrometers, counters and opto-couplers  for electrical consumption, BMP085 Barometric Pressure,
  • Arduino Models: Uno, Mega, Mini Pro, Yún
  • Raspberry Pi: Version 2, 512 Model
  • Servers: Mac mini Server, Standard Desktop PC, HP Proliant.
  • Electronics: 433 Mhz radio transmitters, relays, resistors, diodes, etc.
  • Screens and displays: TV, Standard screens, 1.8″ TFT LCD Displays, Car Cameras

Software

  • ARM Compilers for Arduino, Raspberry Pi.
  • Raspbian
  • Debian with LAMP
  • Mac OS X with LAMP
  • MySQL, SQLite, RRDtools Databases

In the next posts I’ll explain all the projects.

Raspberry Pi and Oracle

Long time working with the Raspberry Pi and having a lot of interfaces I didn’t find anywhere how to make requested to the Oracle DB from the OS Raspbian.

Here are my experiences:

Install Raspbian as usual. There is thousand of how to all around.

Install Java SDK (I’m not a fan of Java… But I didn’t find another system.)  The OCI libraries from Oracle doesn’t work on ARM architectures. Now Java SDK is in the raspbian repositories.

I’ve been using Instant Client from Oracle on Debian host without problems but there are not drivers for Raspbian yet.

I’m using always root to avoid using sudo for all commands!

[bash][email protected]:~# apt-get install oracle-java7-jdk[/bash]

Get the ojdbc7 driver from Oracle

Test that java is working well with:

[bash][email protected]:~# java -version
java version “1.7.0_40”
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) Client VM (build 24.0-b56, mixed mode)[/bash]

Write a file Conn.java with the following code:

[code language=”java”]

import java.sql.*;
class Conn {
public static void main (String[] args) throws Exception
{
Class.forName (“oracle.jdbc.OracleDriver”);

Connection conn = DriverManager.getConnection
(“jdbc:oracle:thin:@//ip_or_dns_name_of_oracle_server:port_server/SID_Database”, “login_database”, “password_database”);
// @//machineName:port/SID,   userid,  password
try {
Statement stmt = conn.createStatement();
try {
ResultSet rset = stmt.executeQuery(“select BANNER from SYS.V_$VERSION”);
try {
while (rset.next())
System.out.println (rset.getString(1));   // Print colon 1
}
finally {
try { rset.close(); } catch (Exception ignore) {}
}
}
finally {
try { stmt.close(); } catch (Exception ignore) {}
}
}
finally {
try { conn.close(); } catch (Exception ignore) {}
}
}
}
[/code]

Now, you can compile with:

[bash]javac  Conn.java[/bash]

and run with:

[bash]java -cp /wherever_you_put_the_file/ojdbc7.jar:. Conn[/bash]

Correos de usar y tirar

Spam… el indeseable spam. Una buena parte del Spam se genera cuando nos registramos en algunos sitios para ver, obtener, mirar, opinar, etc.

…”por favor ingrese o registrese para ver este sitio” .
Porque quieres ver la información que hay detrás, pero yo no quiero unirme al sitio y dejar mi dirección de correo electrónico detrás!
Bueno, pues hay una solución. El concepto es conocido como “correo electrónico desechables” o utilizar direcciones de correo electrónico de usar y tirar.

Si tienes que registrarte en el sitio, usa una dirección de correo electrónico de un servicio de correo electrónico desechables (que se parece a “[email protected]). El correo electrónico de validación se enviarán a la dirección de correo electrónico desechable, lo lees ahí, haga clic en el enlace de validación y su cuenta está activa y puede llegar a la página con la información que necesitabas.

No se debe utilizar un servicio de correo electrónico desechables si vas a utilizar la cuenta para uso personal, por ejemplo, registrarse en un foro. Todo el mundo es capaz de leer los correos que se envían a la dirección de correo electrónico especificada, es decir, todo el mundo es capaz de solicitar una nueva contraseña y leer el correo electrónico que contiene. Hay que asegurarse de que cualquiera puede ocultar su correo electrónico de todos, excepto tal vez los administradores o un registro con un correo electrónico real.

He compilado una lista de servicios de correo electrónico desechables, algunos pueden ser prohibidas en el lugar que desea registrar, pero normalmente unos pocos están trabajando sin problemas. Yo utilizo regularmente mailinator.com

http://jetable.org – remite a la dirección de correo electrónico real por un tiempo predefinido.
http://mailinator.com – suprimido después de unas horas
http://spam.la – todo el correo nuevo de lectura para todo el mundo.
http://www.nsimm.org/ – remite a la dirección de correo electrónico real por un tiempo predefinido.