La casa domotica con Arduino: Souliss

Schema di base: Souliss la casa domotica

Con l’idea di automatizzare determinate parti della casa, ho creato a grandi linee uno schema ed ho svolto una ricerca in rete per identificare una soluzione economica che ricoprisse tutte le mie necessità.
Immediatamente la soluzione, secondo me più valida, è stata la Souliss Framework per Arduino, in quanto open source con licenza GNU General Public License versione 3.
Souliss è un framework per soluzioni domotiche, SmartHome e Internet of Things, utilizzando svariate schede con base Arduino e la possibilità di un’interfaccia Android. E’ possibile controllare dispostivi elettrici con pulsanti o interfacce grafiche su smartphone e tablet, gestisce e programmi le azioni da effettuare con molte opzioni.
Nella figura qui sotto è visualizzata a blocchi l’idea del mio progetto.

Schema PR_Souliss

Souliss, come descritto nel GibHub di appartenenza, è progettato per essere leggero e scalabile ed è installato su più nodi sfruttando diversi mezzi di comunicazione come Ethrnet, RS485, Wi-Fi, ZigBee.

Si può iniziare prendendo spunto dalla sua wiki sul sito di appartenenza.

Come riportato nello schema il nodo principale è Nodo01 ossia il gateway di Souliss dove fanno capo tutte  le informazioni provenienti dai vari nodi. Questo è connesso via LAN al router con IP statico.Nei prossimi articoli pubblicherò l’esploso di ogni nodo elencando l’hardware utilizzato e il software dedicato a ogni singolo nodo; il primo preso in esame sarà il gateway.

Programmare un ATmega328 standalone con ArduinoISP (Arduino Mega 2560)

Come programmare con l’Arduino Mega 2560 un nuovo ATmega328 (o ATmega168 ) utilizzando il clock interno :

Se si usa un nuovo ATmega328 (o ATmega168 ), avrete bisogno di programmare prima il bootloader e poi lo sketch ed è possibile farlo utilizzando una scheda Arduino mega come un programmatore ISP.

Condizioni di test:

  • Arduino mega2560
  • Condensatore 47uF
  • Led + resistenza da 1k
  • Versione 1.0.5 di arduino installata

Dopo aver installato la versione 1.0.5 di arduino o se l’avete già installata in precedenza bisogna aggiungere nel file boards.txt che si trova nella cartella di arduino sotto hardwarearduinoboards.txt  la seguente configurazione:

(NB: si consiglia di aprire il file boards.txt con WordPad)

##############################################################
 atmega328bb.name=ATmega328 on a breadboard (8 MHz internal clock)
 atmega328bb.upload.protocol=stk500
 atmega328bb.upload.maximum_size=30720
 atmega328bb.upload.speed=57600
 atmega328bb.bootloader.low_fuses=0xE2
 atmega328bb.bootloader.high_fuses=0xDA
 atmega328bb.bootloader.extended_fuses=0x05
 atmega328bb.bootloader.path=arduino:atmega
 atmega328bb.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
 atmega328bb.bootloader.unlock_bits=0x3F
 atmega328bb.bootloader.lock_bits=0x0F
 atmega328bb.build.mcu=atmega328p
 atmega328bb.build.f_cpu=8000000L
 atmega328bb.build.core=arduino:arduino
 atmega328bb.build.variant=arduino:standard

 

Per programmare il bootloader, attenersi alla seguente procedura:

  1. Caricare lo sketch ArduinoISP sulla vostra scheda Arduino che lo trovate in File>Esempi>ArduinoISP.
  2. È necessario selezionare la scheda in uso dal menu Strumenti>Tipo di Arduino, in questo caso sarà “Arduino Mega 2560 o Mega ADK” e la porta seriale sempre dal menu Strumenti corrispondente alla vostra configurazione.
  3. Caricare ArduinoISP su Arduino Mega 2560 selezionando File>Carica.

Si vedranno i led di comunicazione della Arduino Mega 2560 lampeggiare e non dovrebbe generare errori. A questo punto la scheda di arduino e programmata per funzionare da programmatore ISP.

  1. Cablare la scheda Arduino al microcontrollore ATmega328 su breadboard, come mostrato nella FIGURA 1, attenzione per ora non collegare il condensatore.
  2. Selezionare dal menu Strumenti>Tipo di Arduino>”ATmega328 on a breadboard (8 MHz internal clock) “
  3. Selezionare dal menu Strumenti>Programmatore>Arduino as ISP
  4. Esegui Strumenti>Scrivi il Bootloader

FIGURA 1 : Utilizzando una scheda Arduino per programmare il bootloader su un ATmega su una breadboard con o senza clock esterno.

Una volta che il vostro ATmega328P ha il bootloader caricato, è possibile caricare i programmi utilizzando l’Arduino Mega 2560 come programmatore ISP, per fare questo è importante inserire il condensatore da 47uF tra RESET e GND su Arduino Mega 2560.

L’ IDE di Arduino comprende avrdude, che è il programma che scrive il programma generato nel micro. Prima di iniziare a programmare, avrdude verifica la “signature” del chip, un codice che identifica un particolare modello di ATmega. Queste signature sono memorizzati in un file, ma quello incluso nell’ IDE di Arduino può essere superata. Quindi andando a modificare la signature al più recente, è necessario modificare il file di avrdude.conf (in linux è /usr/share/arduino/hardware/tools/avrdude.conf, in Windows è hardware/toolsavretcavrdude.conf), si deve cercare ATmega328, e, in quel blocco di linee, modificare la riga della “signature” con

signature = 0x1e 0x95 0x14;

Ora aprite il vostro sketch e con l’opzione File> “Carica con il programmatore” si può programmare il micro sulla breadboard.

Trasmettirore DTT di 4 canali video

Ecco come creare una stazione DTT a 4 canali video da trasmettere sulle frequenze TV.

Il progetto è molto interessante e nemmeno molto complicato, ma la realizzazione ha un costo molto elevato.
Gli encoder MPEG2 (TR391AVH) hanno un costo di 335€ per ogni canale e il Transmodulatore da DVB-S/S2/C/C2 a DVB-T con remultiplexer integrato costa 285€.

http://www.open-electronics.org/dtt-tv-transmitter/