lunedì 24 agosto 2015

DATA_LOG



#include <SPI.h>
#include <SD.h>
#include <dht11.h>
#include <Wire.h>
#include <DS3231.h>

#define DHT11_PIN 2
#define chipSelect_pin 4

DS3231 clock;
RTCDateTime dt;
dht11 DHT;

String SD_data = "";

void setup() {
  Serial.begin(9600);
  clock.begin();
  Serial.print("Preparazione SD card...");
  if (!SD.begin(chipSelect_pin)) {
    Serial.println("Preparazione fallita o SD non presente");
    return;
  }
  Serial.println("SD pronta.");
 SD_data +="Data \t Ora \t \t Temperatura in C \t \t Umidita' in %";
 File dataFile = SD.open("datalog.txt", FILE_WRITE);
   if (dataFile) {
    dataFile.println(SD_data);
    dataFile.close();
    // print to the serial port too:
     Serial.println(SD_data);

     SD_data="";
  }

}

void loop() {
  // preparo la stringa da scrivere nel SD
 
  dt = clock.getDateTime();

  SD_data +=dt.day;    SD_data +="-";
  SD_data +=dt.month;  SD_data +="-";
  SD_data +=dt.year;   SD_data +="\t";
  SD_data +=dt.hour;   SD_data +=":";
  SD_data +=dt.minute; SD_data +="\t";

/*  SD_data += "RTC Temperatura: ";
  SD_data += clock.readTemperature();
  SD_data += " C \t";*/
 
  DHT.read(DHT11_PIN);
  SD_data += "Temperatura in C: \t";
  SD_data += (DHT.temperature);
  SD_data += "\t Umidita' in %: \t";
  SD_data += (DHT.humidity);

  // open the file. note that only one file can be open at a time,
  // so you have to close this one before opening another.
   File dataFile = SD.open("datalog.txt", FILE_WRITE);

  // if the file is available, write to it:
  if (dataFile) {
    dataFile.println(SD_data);
    dataFile.close();
    // print to the serial port too:
     Serial.println(SD_data);

     SD_data="";
  }
  // if the file isn't open, pop up an error:
  else {
    Serial.println("File datalog.txt non accessibile");
  }
  delay(60000);
}










giovedì 20 agosto 2015

test funzionamento DS3231 RTC no library


#include "Wire.h"
#define DS1307_ADDRESS 0x68

void setup(){
  Wire.begin();
  Serial.begin(9600);
}

void loop(){
  printDate();
  delay(1000);
}

byte bcdToDec(byte val)  {
// Convert binary coded decimal to normal decimal numbers
  return ( (val/16*10) + (val%16) );
}

void printDate(){

  // Reset the register pointer
  Wire.beginTransmission(DS1307_ADDRESS);
  Wire.write(0);
  Wire.endTransmission();

  Wire.requestFrom(DS1307_ADDRESS, 7);

  int second = bcdToDec(Wire.read());
  int minute = bcdToDec(Wire.read());
  int hour = bcdToDec(Wire.read() & 0b111111); //24 hour time
  int weekDay = bcdToDec(Wire.read()); //0-6 -> sunday - Saturday
  int monthDay = bcdToDec(Wire.read());
  int month = bcdToDec(Wire.read());
  int year = bcdToDec(Wire.read());

  //print the date EG   3/1/11 23:59:59
  Serial.print(weekDay);
  Serial.print(" ");
  Serial.print(monthDay);
  Serial.print("/");
  Serial.print(month);
  Serial.print("/");
  Serial.print(year);
  Serial.print(" ");
  Serial.print(hour);
  Serial.print(":");
  Serial.print(minute);
  Serial.print(":");
  Serial.println(second);

}

mercoledì 19 agosto 2015

Arduino DTH11

#include <dht11.h>
dht11 DHT;
#define DHT11_PIN 4

void setup(){
  Serial.begin(9600);
  Serial.println("DHT TEST PROGRAM ");
  Serial.print("LIBRARY VERSION: ");
  Serial.println(DHT11LIB_VERSION);
  Serial.println();
  Serial.println("Type,\tstatus,\tHumidity (%),\tTemperature (C)");
}

void loop(){
  int chk;
  Serial.print("DHT11, \t");
  chk = DHT.read(DHT11_PIN);    // READ DATA
  switch (chk){
    case DHTLIB_OK: 
                Serial.print("OK,\t");
                break;
    case DHTLIB_ERROR_CHECKSUM:
                Serial.print("Checksum error,\t");
                break;
    case DHTLIB_ERROR_TIMEOUT:
                Serial.print("Time out error,\t");
                break;
    default:
                Serial.print("Unknown error,\t");
                break;
  }
 // DISPLAT DATA
  Serial.print(DHT.humidity,1);
  Serial.print(",\t");
  Serial.println(DHT.temperature,1);

  delay(1000);
}

Arduino primi programmi

/*
  DigitalReadSerial
 Reads a digital input on pin 2, prints the result to the serial monitor

 This example code is in the public domain.
 */

// digital pin 2 has a pushbutton attached to it. Give it a name:
int pushButton = 2;
int led = 13;

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  // make the pushbutton's pin an input:
  pinMode(pushButton, INPUT);
  pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input pin:
  int buttonState = digitalRead(pushButton);
  // print out the state of the button:
  if (buttonState==1) {
    Serial.println(buttonState);
    digitalWrite(led, HIGH);
  }
  else { 
    Serial.println(buttonState);
    digitalWrite(led, LOW);
  }
  delay(100);        // delay in between reads for stability
}

domenica 19 aprile 2015

abilitare ftp


Il server FTP si installa velocemente con
sudo aptitude install ftpd
Dopo un minuto circa, il server sarà già pronto e configurato, verifichiamo che stia funzionando con il comando
netstat -lt
che ci mostra quali porte sono aperte. Se tutto è andato come previsto, troveremo che ci sono servizi in ascolto sulla porta 21 (ftp) e 22 (ssh).
A questo punto scarichiamo un FTP client, consiglio totalcommander
 Adesso possiamo navigare tra le cartelle del Raspi comodamente e scambiare i file velocemente.

il primo led non si scorda mai

legato all'ultimo post consigli caldamente la visita alla pagina:
http://www.meccanismocomplesso.org/starting-raspberry-pi-python/

GPIO e python preparazione

la soluzione media center è funzionante e in produzione.
ora vediamo di spremere la schedina a fondo.
inserire una nuova SD con il sistema operativo 2015-02-16-raspbian-wheezy.img appena scaricato dal sito ufficiale
e impostarla con i soliti comandi per settarla e prepararla all'utilizzo di python

# cambio password

sudo passwd pi

# Mettere indirizzo statico

sudo nano /etc/network/interfaces

#sostituire iface eth0 inet dhcp con

#Static
iface     eth0 inet static
        address 192.168.0.22
        netmask 255.255.255.0
        gateway 192.168.0.254
       
#riavvio tutto       

sudo reboot

# comandi matematici
sudo apt-get install bc

#aggiornare tutto
sudo apt-get update

sudo apt-get upgrade -y

#tenere aggiornto il firmware
sudo apt-get install ca-certificates
sudo apt-get install git-core
sudo wget http://goo.gl/1BOfJ -O /usr/bin/rpi-update && sudo chmod +x /usr/bin/rpi-update
sudo rpi-update
sudo shutdown -r now

#installiamo python

sudo apt-get install python-pip
sudo apt-get install python3-dev
sudo pip install distribute
sudo pip install RPi.GPIO



Hardware

Prima di iniziare a giocare con la GPIO occorre capire come collegare eventuali perifiriche.

sotto due schemi trovati su internet che chiariscono meglio.



ricordo 2 cose:

1) La tensione alta è di 3.3V (con i classici 5V si brucia tutto)
2) il pin 1 è lato scheda sd

sabato 11 aprile 2015

Install Mybook Live Feature Pack Manager

http://www.highlevelbits.fr/index.php?option=com_content&view=article&id=606

4) Install the Feature pack manager
If you use static ip address , please, ensure that your Mybook has correct DNS, and gateway configured in the standard Western digital interface before you start installation.

Copy the following line in your clipboard : ( be carefull, it is a single line)
cd /root;wget -q http://highlevelbits.fr/download-MBLIVE/fpinstaller/fpkmgr_install.sh -O /root/fpkmgr_install.sh;sh /root/fpkmgr_install.sh

domenica 29 marzo 2015

comandi e configurazione raspberry pi

# Mettere indirizzo statico

sudo nano /etc/network/interfaces

#sostituire iface eth0 inet dhcp con

#Static
iface     eth0 inet static
        address 192.168.0.22
        netmask 255.255.255.0
        gateway 192.168.0.254
       
#riavvio tutto       

sudo reboot

#Installare VNC

sudo apt-get install tightvncserver

#lanciare il vnc

vncserver :1 -geometry 800x600 -depth 16 -pixelformat RGB565:

#--In questo modo si avvia il processo server VNC sulla Pi. Ciò significa che comincerà una sessione di X virtuale (un'istanza virtuale della GUI Raspberry Pi) sul Pi, in un modo molto simile a quando si esegue startx quando il Pi è collegato a un display. Quando VNC nella vostra Pi ci si vuole collegare a questa sessione X.
#: 1. Definisce la porta che il processo di VNC verrà avviato su - si può fare questo quello che volete, ma avrete bisogno di ricordarlo per garantire la connessione alla porta giusta. Vedrete maggiori dettagli su questo seguito.
#-geometry questo sarà la risoluzione che la sessione di X verrà eseguito con - si può fare questo più o meno quello che volete  
#-depth 16 bit

#chiudere il programma

vncserver -kill :1

#Creare script per avvio.

#Crea un nuovo file nella directory init.d con il nome tightvncserver:

sudo nano /etc/init.d/tightvncserver

#scrivi le seguenti linee di codice:

#!/bin/sh
### BEGIN INIT INFO
# Provides:                   thightvncserver
# Required-Start:             $syslog
# Required-Stop:              $syslog
# Default-Start:              2 3 4 5
# Default-Stop:               0 1 6
# Short-Description:          vnc server
# Description:
#
### END INIT INFO

# /etc/init.d/tightvncserver

VNCUSER='pi'
case "$1" in
    start)

   su $VNCUSER -c '/usr/bin/tightvncserver :1 -geometry 800x600'
        echo "Avvio di TightVNC Server per $VNCUSER "
        ;;
    stop)
        pkill Xtightvnc
        echo "TightVNC Server fermato"
        ;;
    *)
        echo "Uso: /etc/init.d/tightvncserver {start|stop}"
        exit 1
        ;;
esac
exit 0

#Dai al file i permessi di esecuzione:

sudo chmod 755 /etc/init.d/tightvncserver

#Ora puoi avviare o fermare il servizio manualmente con i comandi:

sudo /etc/init.d/tightvncserver start
sudo /etc/init.d/tightvncserver stop

#Per fare in modo che il server si avvii in automatico al boot digita il comando:

sudo update-rc.d tightvncserver defaults

#impostare SAMBA

#pacchetto per gestire NTFS

sudo apt-get install ntfs-3g

#per vedere i dispositivi connessi

sudo fdisk -l

#creare punto di montaggio

sudo mkdir /mnt/HD

#montare HD esterno

sudo nano /etc/fstab
#inserire la riga sotto
/dev/sda1    /mnt/HD ntfs-3g rw,auto,users 0 0
sudo reboot

#provare il montaggio
cd /mnt/HD
#testiamo i permessi
touch pippo
ls
rm pippo

#installiamo samba

cd
sudo apt-get install samba
sudo apt-get install cifs-utils

sudo service samba stop
sudo nano /etc/samba/smb.conf
#inserire
[Raspberry_HD]      #nome di condivisione
comment = XXXXXX
path = /mnt/HD         #percorso
public = yes
guest ok = yes
writable = yes

#opzione
#ATTENZIONE con guest ok = yes, rendete l’hard disk condiviso a chiunque è connesso alla vostra rete interna senza l’uso di username e password, se volete abilitare l’accesso con le credenziali dovete togliere quella riga e dopo aver salvato il file dare:
#sudo smbpasswd -a nomeutente
#e inserite la password.
#Nel caso vi restituisse l'erroe: il comando sudo smbpasswd -a nomeutente non esiste
#dovete installare il pacchetto samba-common-bin con il seguente comando:
#apt-get install samba-common-bin

sudo service samba start
sudo service samba status

#copiare file da locale ad HD esterno
cp /etc/transmission-daemon/settings.json /mnt/HD/

#installare server torrent

sudo apt-get install transmission-daemon
#creo le cartelle per i file (nell HD esterno)
mkdir /mnt/HD/complete
mkdir /mnt/HD/incomplete
mkdir /mnt/HD/watch

/etc/init.d/transmission-daemon stop
sudo nano /etc/transmission-daemon/settings.json

#modificare le seguenti righe
"download-dir": "/mnt/HD/complete",
"incomplete-dir": "/mnt/HD/incomplete",
"rpc-enabled": true,
"rpc-password": "raspberry",
"rpc-username": "pi",
"rpc-whitelist-enabled": false,


#inserire le seguenti righe
#Opzionalmente è possibile utilizzare la cartella che abbiamo chiamato watch come contenitore dei file .torrent che vogliamo aggiungere alla lista dei download. Ogni volta che metterete un file al suo interno Transmission-daemon lo aggiungerà automaticamente alla lista dei download.
#Per farlo dovrete aggiungere queste due righe alla fine del file, prima della parentesi graffa chiusa

"watch-dir": "/mnt/HD/watch",
"watch-dir-enabled": true

#salvare e lanciare

sudo /etc/init.d/transmission-daemon reload
sudo /etc/init.d/transmission-daemon restart
sudo /etc/init.d/transmission-daemon stop
sudo adduser pi debian-transmission
#Nella riga USER mettiamo il nostro nome utente
sudo nano /etc/init.d/transmission-daemon

sudo chown pi -R /var/lib/transmission-daemon/info/
sudo chown pi /etc/transmission-daemon/settings.json

sudo nano /etc/sysctl.conf
#Modifichiamo il valore dell'ultima riga con questo
vm.min_free_kbytes = 16384
#Abbiamo aggiunto il parametro smsc95xx.turbo_mode=N, il resto della riga rimane invariato.
sudo nano /boot/cmdline.txt


#aggiornare tutto
sudo apt-get update

sudo apt-get upgrade -y

#tenere aggiornto il firmware
sudo apt-get install ca-certificates
sudo apt-get install git-core
sudo wget http://goo.gl/1BOfJ -O /usr/bin/rpi-update && sudo chmod +x /usr/bin/rpi-update
sudo rpi-update
sudo shutdown -r now




#apache

sudo apt-get install apache2 php5 libapache2-mod-php5
#    Se ottieni un errore d'installazione, esegui:

sudo groupadd www-data
sudo usermod -g www-data www-data

# riavvia il dispositivo:

sudo service apache2 restart

#MYSQL root psw: mysqlraspberry

sudo apt-get install mysql-server mysql-client php5-mysql

#cambio password
sudo passwd pi


#temperatura

vcgencmd measure_temp

#come back up
sudo cp -R /var/www /mnt/HD/BK

sudo cp -R /mnt/HD/BK/www /var/


# comandi matematici
sudo apt-get install bc


cd /mnt/HD/'Shared Pictures'
sudo mkdir /mnt/NAS

//192.168.1.2/PUBLIC /mnt/storage cifs guest,rw,nounix,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0


http://rpy-italia.org/forum/index.php?topic=153.0
www.pastebin.com/edvFrpuD

http://arduinoelettronica.com/2013/05/05/ardudome-domotica-opensource-con-arduino-raspberrypi-php-json-jquery/

sabato 21 marzo 2015

controllo xbmc - kodi

Bellissa e funzionale app android per il controllo di kodi
https://play.google.com/store/apps/details?id=com.syncedsynapse.kore2

Simpatico case in cartone

Mi sono imbattuto in questo: http://sixes.net/rdcHQ/rdchq-extra-credit-raspi-b/

Raspberry pi + kodi

configurazione media center con raspberry b+

scaricare il file raspbmc-2014-11-24.img.gz dal sito ufficiale
scompattare il file (all'interno c'e' l'immagina .iso)
caricare la iso su una scheda uSD con il programma Win32DiskImager

all'avvio del dispositivo il sistema viene caricato e si riavvia più volte.

da interfaccia grafica impostare un ip statico.

verificare che ci si acceda da ssh (di default pi - raspberry)

impostare la lingua il fuso e gli indirizzi dei percorsi di rete

barix Exstreamer 100


DISPOSITIVO:
Connettere il pc al barix exstreamer 100 con un cavo seriale (più adattatore usb);
identificare la porta (nel mio caso com3)
aprire la cartella streaming_client_kit_v0313_20140408
entrare e lanciare il file legato alla com usata (com3)
streaming_client_kit_v0313_20140408\streaming_client_kit_v0313_20140408\update_rescue\serial3.bat
accendere il dispositivo
il .bat in automatico installa il firmware
collegare il cavo di rete
scollegare la seriale e riavviare il tutto
collegarsi con un browser al http://192.168.0.168/
assegnare un ip fisso dal tab configuration/advance 192.168.0.101 - 255.255.255.0 - 192.168.0.254
eliminare i percorsi radio di default (lasciare la prima riga di rtp port=4444)

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

PC:

installare VLC
creare il bat con il seguente contenuto:
echo off
cd c:\
cd "Program Files (x86)\VideoLAN\VLC\"
start vlc.exe --sout=#duplicate{dst=rtp{dst=224.0.0.1,port-audio=4444}}
lanciare il tutto