17.11.2012 Codemotion Venezia.
La casa aperta: domotica Open Source dal'hardware al software.
In questo talk racconteremo l'esperienza di realizzazione di un impianto di domotica interamente basato su tecnologie Open Source. L'impianto realizzato comprende il controllo di un impianto di riscaldamento a zone di temperatura, luci, finestre motorizzate e un sistema di rilevazione di presenza. Racconteremo come siamo partiti dall'hardware realizzato con Arduino fino ad arrivare alla piattaforma software basata su OSGI (openhab).
1. La casa aperta: domotica Open Source
dal'hardware al software
Francesco Guidieri e Sandro Salari
francesco.guidieri@rcp-vision.com - RCP Vision
sandro.salari@gmail.com – RCP Vision
Francesco Guidieri e Sandro Salari
francesco.guidieri@rcp-vision.com - RCP Vision
sandro.salari@gmail.com - RCP Vision
2. Presentiamoci
Guidieri Francesco(@fraguid)
Francesco is co-founder of RCP-Vision, an Italian Eclipse-based
company. He has working with RCP Development in several customer
assignments. His main areas of expertise cover also modeling, testing,
headless builds and continuous integration.
Salari Sandro (@CodeStudio_SS)
Sandro is an independent consultant software architect. He derives
broad expert knowledge from about 10 years of software development.
His expertise areas covers the development of Eclipse RCP, enterprise
web, and embedded firmware applications.
Works together at
Francesco Guidieri e Sandro Salari
francesco.guidieri@rcp-vision.com - RCP Vision
sandro.salari@gmail.com - RCP Vision
3. Perchè DIY (Do It Yourself)
Obiettivi:
Ottenere un sistema economico e flessibile
Soluzioni:
Hardware : Arduino
Software: OpenHab
4. Open Source Electronics
Physical computing Prototyping platform
Sensori Documentata
Elaborazione Economica
Attuatori Flessibile
Comunicazione Open source
Francesco Guidieri e Sandro Salari
francesco.guidieri@rcp-vision.com - RCP Vision
sandro.salari@gmail.com - RCP Vision
5. Arduino Platform : hardware
●
Microcontrollore ATmega328
●
Tensione di lavoro 5V
●
14 pin I/O digitali
●
6 pin analogici
●
32 KB di memoria Flash
●
Interfaccia USB, I2C, SPI
●
Shields (ethernet, motor...~288)
●
Prezzo board Uno : 20€
Francesco Guidieri e Sandro Salari
francesco.guidieri@rcp-vision.com - RCP Vision
sandro.salari@gmail.com - RCP Vision
6. Arduino Platform : software
●
Linguaggio di programmazione (Wiring)
●
Ambiente di sviluppo (Processing)
●
Librerie(EEPROM,Ethernet,LiquidCrystal,
,SD,Servo,SPI,SoftwareSerial,WiFi, Wire)
Francesco Guidieri e Sandro Salari
francesco.guidieri@rcp-vision.com - RCP Vision
sandro.salari@gmail.com - RCP Vision
7. Arduino Platform : software
//TMP36 Pin Variable
int sensorPin = 0; //the analog pin the TMP36's Vout (sense) pin is connected to
//the resolution is 10 mV / degree centigrade with a
//500 mV offset to allow for negative temperatures
/*
* setup() - this function runs once when you turn your Arduino on
* We initialize the serial connection with the computer
*/
void setup()
{
Serial.begin(9600); //Start the serial connection with the computer
//to view the result open the serial monitor
}
void loop() // run over and over again
{
int reading = analogRead(sensorPin);
float voltage = reading * 5.0;
voltage /= 1024.0;
// print out the voltage
Serial.print(voltage);
Serial.println(" volts");
// now print out the temperature
float temperatureC = (voltage - 0.5) * 100 ; //converting from 10 mv per degree wit 500 mV offset
//to degrees ((volatge - 500mV) times 100)
Serial.print(temperatureC); Serial.println(" degrees C");
delay(1000); //waiting a second
}
Francesco Guidieri e Sandro Salari
francesco.guidieri@rcp-vision.com - RCP Vision
sandro.salari@gmail.com - RCP Vision
8. Atmel Chips
ATtiny85 8-Bit Processor Arduino Mega 2560 R3
●
8 pin (~2€) ●
ATmega2560 microcontroller
●
Programmabile con Uno ●
Input voltage - 7-12V
●
8K Program space ●
54 Digital I/O Pins
●
6 I/O lines ●
16 Analog Inputs
●
4-channel 10 bit ADC ●
16Mhz Clock Speed
Francesco Guidieri e Sandro Salari
francesco.guidieri@rcp-vision.com - RCP Vision
sandro.salari@gmail.com - RCP Vision
9. Go remote with XBee
●
2.4GHz XBee from Digi (~ 20€)
●
802.15.4 stack (Zigbee basis)
●
Point to point and multi-point networks (mesh: leaf,
coordinator, router)
●
Remote serial port; API mode (local and remote); AT
command
●
Low power (3.3V @ 50mA) and sleep mode (sleep
sync/async ~ 10uA)
●
Range (whip antenna): Out(pro)/In(pro): 250m
(1300m) / 25m (108m)
●
6 / 10-bit ADC input pins ; 8 digital IO pins
●
X-CTU GUI, JAVA API (http://code.google.com/p/xbee-
java-api/)
Francesco Guidieri e Sandro Salari
francesco.guidieri@rcp-vision.com - RCP Vision
sandro.salari@gmail.com - RCP Vision
10. Open Source Home Automation
Cosa cercavamo Cosa abbiamo trovato
Un sistema di Home Automation Tecnologie open source altamente
open, customizzabile e facilmente integrate con un ambiente di sviluppo
estendibile
Lo standard OSGI permette di
Elaborazione e rappresentazione dei pluggare il sistema con diversi moduli
dati non vincolata ad una tecnologia di interfaccia, al momento Web,
di visualizzazione native Mobile o ... (REST)
Capacità di interazione con dispositivi Diversi tipo di comunicazione con
hardware eterogenei e supporto a l'hardware supportati tramite un
diversi tipi di comunicazione Event Bus applicativo
Francesco Guidieri e Sandro Salari
francesco.guidieri@rcp-vision.com - RCP Vision
sandro.salari@gmail.com - RCP Vision
11. OpenHAB
●
GPL, un progetto ospitato a Google Code
●
OSGI-based Runtime
●
Eclipse RCP Condiguration Tool
Event Admin
Eclipse Modeling
Jetty
Xtext
Declarative
Jboss Drools
Services
Francesco Guidieri e Sandro Salari
francesco.guidieri@rcp-vision.com - RCP Vision
sandro.salari@gmail.com - RCP Vision
12. OpenHAB Event Bus
Francesco Guidieri e Sandro Salari
francesco.guidieri@rcp-vision.com - RCP Vision
sandro.salari@gmail.com - RCP Vision
13. OpenHAB features
User Interfaces: Bindings hardware:
●
Smartphone UI ●
KNX
●
Console via XMPP ●
One-Wire
●
Google Calendar Events ●
RS-232
●
REST-API ●
Bluetooth
Rule Actions ●
HTTP In/Out
●
Mails via SMTP ●
Exec (Command line)
●
XMPP / Jabber Notifications ●
NTP (Network Time Player)
●
Prowl Notifications Persistence:
●
Text-to-Speech ●
DB4O
●
Soundfile / Stream Player ●
RDD4j
●
Volume Control ●
Open.Sen.Se
Francesco Guidieri e Sandro Salari
francesco.guidieri@rcp-vision.com - RCP Vision
sandro.salari@gmail.com - RCP Vision
14. OpenHAB UI features
Francesco Guidieri e Sandro Salari
francesco.guidieri@rcp-vision.com - RCP Vision
sandro.salari@gmail.com - RCP Vision
15. DEMO: controllo carichi
Status
Updates
Commands
Francesco Guidieri e Sandro Salari
francesco.guidieri@rcp-vision.com - RCP Vision
sandro.salari@gmail.com - RCP Vision
16. Demo : Rilevazione intrusioni
Francesco Guidieri e Sandro Salari
francesco.guidieri@rcp-vision.com - RCP Vision
sandro.salari@gmail.com - RCP Vision
17. Demo : Rilevazione intrusioni
Francesco Guidieri e Sandro Salari
francesco.guidieri@rcp-vision.com - RCP Vision
sandro.salari@gmail.com - RCP Vision
18. Impianto reale
Francesco Guidieri e Sandro Salari
francesco.guidieri@rcp-vision.com - RCP Vision
sandro.salari@gmail.com - RCP Vision