Estrarre Archivio DEB

Il file .DEB è un archivio che contiene 3 files:

  • debian-binary
  • control.tar.gz
  • data.tar.gz

Di solito quello che serve è il data.tar.gz che contiene il programma.

Per prima cosa dobbiamo estrarre i 3 pacchetti sopraindicati dal file .DEB:

ar vx mypackage.deb

 

Poi estrarre il contenuto di data.tar.gz utilizzando tar:

tar -xzvf data.tar.gz

 

 

Package DEBPer più informazioni sui comandi tar e ar consultate le pagine man : tar(1) e ar(1).

Arduino per domotica, collegato in rete come client/server parte 2

Proseguendo col mio progetto di domotica/antifurto, aggiungo un secondo arduino con ethernet per prendere i vari sensori dall’altra parte della casa e inviarli al server via UDP.

Questo è il link dell’articolo precedente

 

I messaggi che manda sono nel formato “NUMERO SCHEDA” + “NUMERO SENSORE” + “STATO”

ad esempio la scheda 4 arduino con il sensore 6 e lo stato 00001 = 040600001

Come porte UDP ho utilizzato la solita 5055 per la trasmissione utilizzando il protocollo sopra indicato.

Al contrario della scheda illustrata prima questa non riceve comandi ma invia soltanto i dati dei vari sensori collegati

Nel mio caso ho utilizzato:

  • un arduino nano
  • un ENC28J60 Ethernet Shield V1.0 per scheda di rete
  • zoccolo per arduino (shield)

 

enc28j60-shield-variations base ArduinoNanoFront_3_sm
/* 
 * pin 10 -11 -12 -13 occupati da ethernet
 * pin 2 -3 -4 -5 -6 -7 -8 -9 digitali
 * da A0 ad A7 analogici
 */

#include <UIPEthernet.h>

EthernetUDP udpserver;
EthernetUDP udp;

int success;
char IRF;
int counter; //lo utilizzo per il conteggio del client per mandare i messaggi al server


void setup() {
  
  pinMode(2, INPUT); //
  pinMode(3, INPUT); //
  pinMode(4, INPUT); //
  pinMode(5, INPUT); //
  pinMode(6, INPUT);  //
  pinMode(7, INPUT);  //
  pinMode(8, INPUT);  //
  pinMode(9, INPUT);  //
  
  
  Serial.begin(9600); //imposto la porta seriale per debug
  uint8_t mac[6] = {0x02,0x03,0x04,0x05,0x06,0x07}; //imposto mac address

  Ethernet.begin(mac,IPAddress(10,0,0,254)); //imposto ip

  success = udpserver.begin(5056); // apro la porta udp
  }

void loop() {

// qui parto con le letture dei sensori
     
    delay(200);
    
    for (int i=2; i < 10; i++){
       success = udp.beginPacket(IPAddress(10,0,0,1),5055);
       String Messaggio = "060" + String(i-1) + "0000" + String(!digitalRead(i));
       success = udp.print(Messaggio);
       success = udp.endPacket();
       delay(100);
    } 
      
     for (int i=0; i < 8; i++){
       success = udp.beginPacket(IPAddress(10,0,0,1),5055);
       String Scheda;
       if ((i+9)>9) {
         Scheda="06";
       } else {
         Scheda="060";
       }
       String Messaggio = Scheda + String(i+9) + String(analogRead(i));
       success = udp.print(Messaggio);
       success = udp.endPacket();
       delay(100);
     } 
       

}

Sting – William and Mary Hall – Williamsburg, VA 1985-11-08

 

kirkland liveLast night at William and Mary Hall, Sting, the celebrated British bass guitar-playing rocker, actor and former member of the Police, packed a dynamic performance for a near-capacity crowd of 8,600.

Serving up offerings of rhythm and blues, jazz, blues

Recorded 08-11-1985
City:  Williamsburg, New York
Place: William and Mary Hall  VA 23185, USA

 

 

 

 

 

Tracks:

  1. Shadows in the Rain
  2. Driven to Tears
  3. Consider Me Gone
  4. Children’s Crusade
  5. One World > Love Is The Seventh Wave  > One World
  6. We Work The Black Seam
  7. Bring On The Night > When The World Is Running
  8. Audience participation > Another Day
  9. Moon Over Bourbon Street
  10. Fortress Around Your Heart
  11. Low Life
  12. Chat to fade

Personels:
Sting – voice
Kenny Kirkland: keyboards
Omar Hakim: Drums
Branford Marsalis : Sax

 

 

Concerto al Gran Buffet di Reggio Emilia

Era 08/02/2013 io e Gabriele Merli abbiamo suonato in duo al Gran Buffet di Reggio Emilia per la prima volta insieme in questa formazione, qualcosa di bello c’e’:

1. Intro

2. Softly

3. Mo’ Better Blues

4. Armando’s Rumba

5. A Child is Born

6. Devi May Care

7. In a Sentimental Mood

8. Sack of Blues

9. Lover Man

10. A Night in Tunisia

Raspberry Owncloud Client compiled ver.2.0.1

raspberry

The version shipped with raspbian not work with owncloud server 8 so I recompiled to arm the client version 2.

Since raspberry pi take long to compile and there are many dependencies to be installed for compile correctly I’ve decided to post here the version already compiled.

First you have to install the version provided by the repository and then overwrite the client with the downloadable version I’ve done

To install from repository you have to do the following:

sudo apt-get update
sudo apt-get install owncloud-client

Then download the client compiled and ready to install : Client 2.0.2 builded

copy this in /opt

sudo cp owncloud-client-build.tar.bz2 /opt
tar xvzf owncloud-client-build.tar.bz2
cd ./client-build
make install

In some case you must relink a library to the new one:

rm /usr/lib/arm-linux-gnueabihf/libowncloudsync.so.0
ln -s /usr/local/lib/libowncloudsync.so.2.0.2 /usr/lib/arm-linux-gnueabihf/libowncloudsync.so.0

 

This is the archive with compiled owncloud ready to install with instrucion wrote above: Client 2.0.2 builded

This is the only Owncloud 2.0.1 executable : owncloud

Also this the only cmd version: owncloudcmd

Arduino per domotica, collegato in rete come client/server

Con questo articolo parto a spiegarvi come utilizzare arduino e altri strumenti per autocostruirsi un impianto di domotica e relativo antifurto.

Con questo parte di progetto utilizzo arduino per inviare via UDP lo stato degli I/O e anche di ricevere pacchetti UDP per controllare 4 relay.
Tutto il progetto completo è formato da diversi blocchi come questo che comunicano con un server (raspberry pi) che in python controlla il tutto e agisce di conseguenza. Sul Rasberry è installato anche Asterisk che interfacciato con il mio programma python è in grado di ricevere telefonate per attivare l’antifurto o disattivarlo e decidere chi chiamare, tutto tramite voce i segnali DTMF.

Comunque senza perderci troppo con il primo pezzo, cioe’ arduino che invia e riceve pacchetti.

I messaggi che manda sono nel formato “NUMERO SCHEDA” + “NUMERO SENSORE” + “STATO”

ad esempio la scheda 5 arduino con il sensore 6 e lo stato 00001 = 050600001

In questo modo posso utilizzare quanti arduino voglio, di sensori in teoria fino a 99, teniamo conto che arduino si può facilmente espandere con I/O su i2c.
Per il valore utilizzo 5 cifre perchè oltre al segnale on/off posso trasmettere temperature, livello di Co2 e tutto quello può servirvi.

Come porte UDP ho utilizzato 5055 per la trasmissione e 5056 per la ricezione, poi potete comunque modificarle con altre se vi torna comodo.

Nel mio caso ho utilizzato:

  • un arduino nano
  • un ENC28J60 Ethernet Shield V1.0 per scheda di rete
  • un piccola espansione per fare dei collegamenti decenti
  • Scheda a 4 relay

 

baseenc28j60-shield-variations
relay
ArduinoNanoFront_3_sm

 

 

 

 

 

 

serve la libreria per gestire lo shield Ethernet, quindi scaricate la libreria qui: https://github.com/ntruchsess/arduino_uip

Installate la libreria in Arduino IDE e qui sotto c’e’ il programma ad hoc che utilizzo su una scheda, più’ sotto vi spiego i vari blocchi:

/*
 * pin 10 -11 -12 -13 occupati da ethernet
 * pin 2 -3 -4 -5 -6 -7 -8 -9 digitali
 * da A0 ad A7 analogici
 */

#include <UIPEthernet.h>

EthernetUDP udpserver;
EthernetUDP udp;

int success;
char IRF;
int counter; //lo utilizzo per il conteggio del client per mandare i messaggi al server


void setup() {
 
 pinMode(2, OUTPUT); //rele
 pinMode(3, OUTPUT); //rele
 pinMode(4, OUTPUT); //rele
 pinMode(5, OUTPUT); //rele
 pinMode(6, INPUT); // finestra cortile filo rosso
 pinMode(7, INPUT); // finestra vicino lavandino filo nero
 pinMode(8, INPUT); // porta cucina filo bianco
 pinMode(9, INPUT); // sensore lampada 500w portico
 
 
 Serial.begin(9600); //imposto la porta seriale per debug
 uint8_t mac[6] = {0x00,0x01,0x02,0x03,0x04,0x05}; //imposto mac address
 Ethernet.begin(mac,IPAddress(10,0,0,253)); //imposto ip
 success = udpserver.begin(5056); // apro la porta udp
 }

void loop() {
 
 //controllo nuovi udp-packet:
 int size = udpserver.parsePacket();
 if (size > 0) {
 do
 {
 char* msg = (char*)malloc(size+1);
 int len = udpserver.read(msg,size+1);
 msg[len]=0;
 Serial.print("received: ");
 Serial.println(msg);
 if (String(msg[0])=="1") {
 digitalWrite(2, HIGH);
 } else {
 digitalWrite(2, LOW);
 }

 if (String(msg[1])=="1") {
 digitalWrite(3, HIGH);
 } else {
 digitalWrite(3, LOW);
 }

 if (String(msg[2])=="1") {
 digitalWrite(4, HIGH);
 } else {
 digitalWrite(4, LOW);
 }

 if (String(msg[3])=="1") {
 digitalWrite(5, HIGH);
 } else {
 digitalWrite(5, LOW);
 }

 free(msg);
 }
 while ((size = udpserver.available())>0);
 //finish reading this packet:
 udpserver.flush();
 
 // restituisco la lettura delle uscite
 for (int i=20; i < 24; i++){
 success = udpserver.beginPacket(IPAddress(10,0,0,10),5056);
 String Messaggio = "050" + String(i) + "0000" + String(digitalRead(i-18));
 success = udpserver.print(Messaggio);
 success = udpserver.endPacket();
 delay(100);
 } 
 udpserver.stop();
 //restart with new connection to receive packets from other clients
 Serial.print("restart connection: ");
 Serial.println (udpserver.begin(5056) ? "success" : "failed");
 }

// qui parto con le letture dei sensori
 if (counter > 1200) {
 
 
 for (int i=6; i < 10; i++){
 success = udp.beginPacket(IPAddress(10,0,0,1),5055);
 String Messaggio = "050" + String(i-5) + "0000" + String(!digitalRead(i));
 success = udp.print(Messaggio);
 success = udp.endPacket();
 delay(100);
 } 
 
 for (int i=0; i < 2; i++){
 if (analogRead(i) > 300) { //leggo lo stato degli irf
 IRF='1';
 } else {
 IRF='0';
 }
 success = udp.beginPacket(IPAddress(10,0,0,1),5055);
 String Messaggio = "050" + String(i+5) + "0000" + IRF;
 success = udp.print(Messaggio);
 success = udp.endPacket();
 delay(100);
 } 

 counter=0;
 } else {
 counter = counter + 1;
 }

}

Lo shield per la scheda di rete utilizza i pin di Arduino 10 -11 -12 -13
Quindi questi non li possiamo utilizzare per la nostra domotica.

 uint8_t mac[6] = {0x00,0x01,0x02,0x03,0x04,0x05}; //imposto mac address
 Ethernet.begin(mac,IPAddress(10,0,0,253)); //imposto ip
 success = udpserver.begin(5056); // apro la porta udp

Dobbiamo impostare il mac address per la scheda di rete (utilizzare dei numeri esadecimali a caso), poi impostiamo un IP statico nel range della vostra rete; nella mia rete utilizzo 10.0.0.0/24 quindi ho preso un IP libero a caso  10.0.0.253.. Alla fine imposto la porta di ascolto 5056 per ricevere dati da server (utilizzare certe porte come uscite).

Nel ciclo di loop è tutto abbastanza semplice, leggo i valori degli input e li invio uno a uno via UDP al mio server.
Per la parte della gestione uscite in Arduino rimane in ascolto sulla porta 5056 e riceve una stringa di 4 caratteri che attivano o disattivano i relay (1 attiva 0 disattiva).
Quindi 0001 attiva il primo relay.

Questa è la prima parte del progetto, spero vi possa essere di spunto per i vostri progetti.

Nel prossimo articolo posterò un progetto quasi uguale per Arduino dove invece lo utilizzo solo per leggere ingressi e non ho uscite, quindi manca la parte server.

 

 

Tom Scott – Born Again

Tom Scott Born Again Label: GRP ‎– GRP 96752
Format: CD, Album
Country: Europe
Released: 1992
Genre: Jazz

Tracks: 
1 Children Of The Night
Alto Saxophone, Tenor Saxophone – Tom Scott
Bass – John Patitucci
Drums – William Kennedy
Piano – Kenny Kirkland
Tenor Saxophone – Pete Christlieb
Trombone – George Bohanon
Trumpet – Randy Brecker
Written-By – Wayne Shorter
6:16
2 Back Burner
Bass – John Patitucci
Drums – William Kennedy
Piano – Kenny Kirkland
Tenor Saxophone – Pete Christlieb, Tom Scott
Trombone – George Bohanon
Trumpet – Randy Brecker
6:07

3 Free Hand
Alto Saxophone – Tom Scott
Bass – John Patitucci
Drums – William Kennedy
Flugelhorn – Randy Brecker
Percussion – Mike Fisher*
Piano – Kenny Kirkland
Tenor Saxophone – Pete Christlieb
Trombone – George Bohanon
5:49

4 Close View
Bass – John Patitucci
Drums – William Kennedy
Piano – Kenny Kirkland
Soprano Saxophone – Tom Scott
4:24

5 Silhouettes
Alto Saxophone – Tom Scott
Bass – John Patitucci
Drums – William Kennedy
Piano – Kenny Kirkland
4:43

6 Way Bck When
Alto Saxophone – Tom Scott
Bass – John Patitucci
Drums – William Kennedy
Piano – Kenny Kirkland
Tenor Saxophone – Pete Christlieb
Trombone – George Bohanon
Trumpet – Randy Brecker
7:00

7 Song #1
Bass – John Patitucci
Drums – William Kennedy
Percussion – Mike Fisher*
Piano – Kenny Kirkland
Tenor Saxophone, Woodwind – Tom Scott
6:47

8 Born Again
Bass – John Patitucci
Drums – William Kennedy
Percussion – Mike Fisher*
Piano – Kenny Kirkland
Soprano Saxophone, Woodwind – Tom Scott

Sal Marquez – One For Dewey

 

Sal Marquez Genre: Jazz
Style: Hard Bop
Year: 1992
Label: GRP

Tracks:
If I Were A Bell 6:27
Round Midnight 6:17
In Your Own Sweet Way 9:14
I Could Write A Book 6:58
You’re My Everything 6:05
Solar 6:43
My Ship 7:46
Wayne 7:32
Miles 7:27

Personnel:
Kenny Kirkland - Piano
Sal Marquez – trumpet
John Beasley – piano
Jeff “Tain” Watts – drums
Doug Webb – tenor saxophone

 

Robert Hurst – Presents Robert Hurst

roberthurst
  • Label: Sony BMG
  • Genre: Jazz
  • Released: 1992

Tracks:
1. Down 4 The Cause
2. Detroit Red
3. Aycrigg
4. Joyce Faye
5. Incessant Lullaby
6. The Snake Charmer
7. Evidence
8. Walk Of The Negress
9. Blue Freeze
10. Bert’s Flirt
11. Devil’s Night In Motown
12. Incessant Lullaby… Bye

 

Artists:
Marcus Belgrave Flugelhorn, Trumpet
Tom Brick Mastering
Cary Butler Assistant Engineer
Ron Carter Liner Notes
Robert Hurst Arranger, Bass, Composer, Primary Artist, Producer
Ralph Jones Bassoon, Clarinet (Bass)
Kenny Kirkland Guest Artist, Piano
Branford Marsalis Clarinet, Guest Artist, Sax (Alto), Sax (Soprano), Sax (Tenor)
Patrick Smith Engineer, Mixing, Producer
Kazunori Sugiyama Producer
Jeff “Tain” Watts Drums, Guest Artist

Kenny Garrett – Black Hope

black hope Released September 8, 1992
Recorded Power Station, NYC
Genre: Jazz
Length: 65:40
Label: Warner Bros.
Producer: Donald Brown
Matt Pierson

Tracks:
1 “Tacit Dance” – 6:08
2 “Spanish-Go-Round” – 4:08
3 “Computer “G”” – 10:03
4 “Van Gogh’s Left Ear” – 7:39
5 “Black Hope” – 3:51
6 “Jackie & The Bean Stalk” – 7:02
7 “Run Run Shaw” – 4:45
8 “2 Step” – 5:24
9 “Bone Bop” – 4:53
10 “Books & Toys” – 5:41
11 “Bye Bye Blackbird” – 4:32
12 “Last Sax” – 1:34

Personnel:
Kenny Garrett: Soprano saxophone & Alto saxophone
Joe Henderson: Tenor saxophone
Kenny Kirkland: Piano, Synthesizer
Donald Brown: Synthesizer
Charnett Moffett: Bass
Brian Blade, Ricky Wellman: Drums
Don Alias: Percussion