Installare Java JDK su Raspberry Pi 2 (Debian Wheezy)

Questo articolo spiega come installare Oracle Java SE JDK8  su Raspberry Pi2 con Debian Wheezy, prima di installare OpenHab

Se si desidera utilizzare Oracle JDK 7 o 8 su un immagine  “Rasbian” Wheezy allora avete bisogno di ottenere la versione hardflaot scaricabile da java.net nella sezione Java SE Development Kit 8 Downloads per
esempio:  Linux ARM 32 Hard Float ABI
dimensione : 77.72 MB
con nome file:  jdk-8u91-linux-arm32-vfp-hflt.tar.gz

Prerequisiti
Un Raspberry Pi2 avviato con tastiera, mouse, monitor (io personalmente ho fatto tutto in SSH da remoto)
Una connessione di rete (Ethernet o WiFi).
Autorizzazione ad usare i privilegi di root.
Installazione del software

Da un computer accedere alla pagina di download di “Oracle Java SE”. Clicca sul link JDK download. Leggere e accettare il contratto di licenza “Oracle codice binario per Java SE”. Scaricare il file corrente per “Linux ARM v6 / v7 soft Float ABI” e salvare in una posizione in cui si ha accesso in scrittura.

Le seguenti istruzioni presuppongono che si stia installando la versione 8u91 del JDK. Cambiare i nomi dei file in modo appropriato se si è scaricato e si installa una versione diversa.

Digitare i seguenti comandi nel terminale (o via SSH) per creare una directory di installazione e decomprimere il file scaricato:

sudo mkdir -p /opt/java
sudo chown root:root /opt/java
cd /opt/java
sudo tar xvzf jdk-8u91-linux-arm32-vfp-hflt.tar.gz

Questo dovrebbe creare una directory  /opt/java/jdk1.8.0_91  (o simile, a seconda della versione che avete scaricato). Se il comando tar viene completato correttamente, il file scaricato nella propria home directory può essere cancellata col seguente comando:

rm jdk-8u91-linux-arm32-vfp-hflt.tar.gz

Il sistema a questo punto deve sapere che un JVM è stato installato, dove può essere trovato nel sistema, e che è la versione predefinita (se vi è più di una scelta disponibili). Digitare quanto segue nella finestra di comando:

sudo update-alternatives --install "/usr/bin/java" "java" "/opt/java/jdk1.8.0_91/bin/java" 1
 sudo update-alternatives --set java /opt/java/jdk1.8.0_91/bin/java

Java dovrebbe essere installato correttamente. Per verificare ciò, richiedere la versione Java con:

java -version

Si dovrebbe ottenere una risposta che mostra la versione che avete appena installato.

javaJDK-inst

Per utilizzare tutti i programmi Java, è necessario definire una variabile di ambiente JAVA_HOME e aggiungere la directory bin di java associato al percorso di sistema. Modificare il file /etc/environment con un editor di vostra scelta (ad esempio nano.):

sudo nano "/etc/environment"

e aggiungi:

JAVA_HOME=”/opt/java/jdk1.8.0_91″

Allo stesso modo, aggiungere la seguente riga in un luogo appropriato nel file ~/.bashrc:   (Nella vostra cartella home, troverete un file nascosto chiamato .bashrc che contiene alcuni configurazione da parte dell’utente. È possibile modificare questo file in base alle proprie esigenze.)

export JAVA_HOME="/opt/java/jdk1.8.0_91"
export PATH=$PATH:$JAVA_HOME/bin

Questo dovrà essere fatto per ogni nome utente sul sistema.

Per vedere i cambiamenti d’ambiente che avete fatto nei file di cui sopra. Digitare quanto segue:

export

Dovreste vedere le definizioni di cui sopra in JAVA_HOME e variabili d’ambiente PATH. Se lo si desidera, fare lo stesso dopo un riavvio:

reboot

Casa domotica Souliss – Nodo con RS-485

Nodo con RS-485: parte prima

Premessa prima di integrare il modulo nel progetto del nodo.

Con l’utilizzo del modulo di figura 1 si può implementare ad arduino la seriale RS-485 per inviare dati su lunghe distanze (fino a 1 Km) con un semplice doppino intrecciato.

RS485 Module.jpg

Figura 1

Lo schema elettrico relativo al modulo RS-485 è mostrato in figura 2.

RS-485 Arduino Module
Figura 2

La rete di periferiche RS-485, collegate tra loro con i pin A e B, vedi figura 3, ha resistenze da 120 ohm di terminazione ad ogni estremità, già incluse sul modulo (R7). Se si utilizzano più di 2 moduli sulla propria rete RS-485,  è necessario rimuovere la resistenza da 120 ohm (R7) su quei moduli intermedi.

Connessione RS-485
Figura 3 – Connessione RS-485

Teoria in breve.

La connessione seriale utilizzata è in configurazione a due fili twistati, half-duplex e multipunto. Lo standard specifica un sistema di gestione del segnale in forma differenziale: la differenza tra la tensione presente sui due fili costituisce il dato in transito. Una polarità indica un livello logico 1, quella inversa indica il livello logico 0. La differenza di potenziale deve essere di almeno 0,2 V per un’operazione valida, ma qualsiasi tensione compresa tra +12 V e −7 V permette il corretto funzionamento del ricevitore.

 

Sezione dedicata al progetto con Souliss

Casa domotica

Dopo l’update del motore WP migliorandone l’aspetto per essere più responsivo, ho integrato nella sezione progetti una serie di pagine dedicate al progetto casa domotica con il framework Souliss; pagine in continuo aggiornamento con l’evolversi del progetto.

Al progetto si può accedere in due modi:dal menu principale nella sezione progetti e lateralmente a destra degli articoli nella sezione “Casa domotica: S O U L I S S”

menu principale nella sezione progetti

wpsou01

lateralmente a destra degli articoli

wpsou02

Aggiornamento Blog a WordPress 4.4 e tema TwentySixteen

Con l’uscita del nuovo motore di WordPress ho aggiornato il blog integrando il nuovo tema Twenty Sixteen, questo è una versione modernizzata di un vecchio modello di WordPress molto popolare con una testata orizzontale e una barra laterale destra in opzione che funziona perfettamente per blog e siti web. I colori possono essere personalizzati o con combinazioni predefinite, è basato su una griglia fluida armoniosa che utilizza un approccio ottimizzato sia cellulari che tablet con l’inclusione in questo aggiornamento di un plugin per le immagini responsive ed è impeccabile in ogni dettaglio. Twenty Sixteen renderà la navigazione bella e pulita su qualsiasi dispositivo.
Inoltre tra le nuove caratteristiche vi è un supporto più ampio agli embed con la possibilità di “embeddare” (includere) dei post WordPress nei siti. Basterà incollare l’url di un post per vederlo incluso nelle nostre pagine.

WordPress 4.4 e tema TwentySixteen

Tema Twenty Sixteen DromegaWeb
Tema Twenty Sixteen DromegaWeb

Arduino Souliss e ESP8266

ESP8266: Primo test come gateway.

Con pochi euro ho acquistato sul sito di www.dx.com, due pezzi di ESP8266 da programmare con il framework di Souliss , nello specifico il modello scelto è il ESP-01.

ESP8266
ESP-01

Il collegamento effettuato per la programmazione è il seguente:

Prog_ESP8266

Da tener ben presente che il chip funziona a 3,3V e non a 5V come per Arduino, il pin di GPIO0 durante la programmazione viene collegato a GND, successivamente, nel mio test, viene collegato a un led con opportuna resistenza, per verificarne il funzionamento. Nel mio programmatore, un CP2102, il filo verde con nome RES in realtà è il 3,3V che serve ad alimentare il ESP8266, il Jumper nel caso della foto di seguito è nella posizione di accensione del LED, spostandolo tutto a destra viene messo GPIO0 a GND e quindi nello stato di programmazione.

ESP8266_zoom

 

In questa prova il ESP8266 viene programmato come gateway, essendo l’unico nodo sulla rete di test, e dopo averne accertato il funzionamento modificherò opportunamente il software  per lavorare come peer sulla mia rete souliss.

Software Arduino Souliss e ESP8266

Il software caricato è il seguente:


/**************************************************************************
    Souliss - ESP8266 test come gateway

 Questo è l'esempio per il controllo un LED tramite un pulsante o l'applicazione
 Android SoulissApp (scaricabile da Play Store). 

 Eseguire questo codice su ESP8266 come WiFi SoC.

***************************************************************************/

// Configurare il framework
#include "bconf/MCU_ESP8266.h"
#include "conf/Gateway.h"
#include "conf/IPBroadcast.h"

// **** Definisco il nome e la password della rete WiFi a cui mi connetto ****
#define WIFICONF_INSKETCH
#define WiFi_SSID "xxxxxxx" //scrivi tra virgolette il nome della tua rete
#define WiFi_Password "xxxxxxxx" //scrivi tra virgolette la password della tua rete 

// Includere codice del framework e librerie
#include <ESP8266WiFi.h>
#include <EEPROM.h>
#include "Souliss.h"

// Questo identifica il numero della logica LED
#define MYLEDLOGIC 0 

// Definire la configurazione di rete
// in base alle impostazioni del router
uint8_t ip_address[4] = {192, 168, 2, 10};
uint8_t subnet_mask[4] = {255, 255, 255, 0};
uint8_t ip_gateway[4] = {192, 168, 2, 1};
#define Gateway_address 10
#define myvNet_address ip_address[3]
#define myvNet_subnet 0xFF00
#define myvNet_supern Gateway_address

// **** Define here the right pin for your ESP module ****
#define OUTPUTPIN 0

void setup()
{
 Initialize();

 // Impostare i parametri di rete
 Souliss_SetIPAddress(ip_address, subnet_mask, ip_gateway);
 SetAsGateway(myvNet_address); 

 // Definire una semplice logica di luce a LED
 Set_SimpleLight(MYLEDLOGIC); 

 pinMode(OUTPUTPIN, OUTPUT); // Pin alimentazione LED
}

void loop()
{
 // Qui iniziamo il ciclo
 EXECUTEFAST() {
 UPDATEFAST(); 

 // Elaboriamo la logica e relativo ingresso
 // e uscita ogni 50 millisecondi
 FAST_50ms() {
 // Set del LED come da comando
 Logic_SimpleLight(MYLEDLOGIC);
 DigOut(OUTPUTPIN, Souliss_T1n_Coil, MYLEDLOGIC);
 } 

 // Qui si gestisce la comunicazione
 FAST_GatewayComms(); 

 }
} 

Di seguito la figura illustra il messaggio finale della compilazione ed in basso a destra i parametri settati relativi alla tipologia di chip usato.

Comp_ESP8266
Compilazione ESP8266

Le figure di seguito illustrano il funzionamento relativo al tipico T11 con uscita sul GPIO0, quella di sinistra in stato di ON e a destra lo stato di OFF

ESP8266_ON
ESP8266 ON
ESP8266_OFF
ESP8266 OFF

 

 

 

 

Inserisco  un breve video del funzionamento.