MagPi in italiano! Numero 60 – Risolvere i Problemi di Raspberry Pi

Il PDF gratuito, estratto da the MagPi e tradotto in italiano, c’è anche in questo caldissimo mese di Agosto.

Questa volta una completa guida per risolvere tutti i problemi di (mal)funzionamento del Raspberry Pi, ideale per chi è alle prime armi ma anche per chi è un po’ più esperto, per risolvere i piccoli e grandi problemi che si possono incontrare in questo affascinante mondo (il Raspberry non parte? La scheda SD è corrotta? Il LED lampeggia in modo strano?).
Per chi vuole approfopndire un po’ la programmazione, invece, ho aggiunto un paio di tutorial:
– Alla scoperta del nuovo IDE per Python Thonny, e come usarlo per il debug dei tuoi progetti
– Comandare i pin GPIO da remoto, usando GPIO Zero

Abbiamo un grande bisogno di traduttori volontari, anche solo una pagina o due al mese, possono fare la differenza, se siamo in tanti! Aderisci anche tu: clicca qui!
I contenuti, naturalmente gratuiti, verranno pubblicati sul Forum.

Questa pubblicazione è:
“Numero 60 – Risolvere i Problemi di Raspberry Pi”, estratto di 17 pagine tratto da The MagPi 60, Agosto 2017
TheMagPi60-copertina

Clicca qui per visualizzare il forum e scaricare il PDF della traduzione.

L’articolo MagPi in italiano! Numero 60 – Risolvere i Problemi di Raspberry Pi sembra essere il primo su RaspberryItaly.

da RaspberryItaly http://ift.tt/2vTJYPC
via Roberto Montanaro Blog

Proteggi il Raspberry Pi dagli hacker

Ogni giorno milioni di dispositivi vengono bombardati da attacchi informatici automatizzati, che scansionano la rete alla ricerca di ogni singola falla di sicurezza. Non solo i PC, quindi, ma i dispositivi coinvolti vanno dal Raspberry Pi, ai router, passando per i prodotti di automazione domestica (compresi i termostati intelligenti, le telecamere di sicurezza, i frigoriferi, i forni a microonde), ai dispositivi di home entertainment come televisori e console di giochi, agli scaffali intelligenti che segnalano quando hanno bisogno di rifornimento, ai macchinari industriali.

La parte più importante per tutelarsi da questi attacchi è sempre la prevenzione, in questa guida spiegheremo passo per passo le tecniche base da utilizzare appena installato il sistema operativo nel nostro Raspberry Pi, in questo caso sarà Raspbian Jessie visto che è il più supportato e diffuso su Raspberry Pi.

Tecniche malware

Gli attacchi informatici spesso sfruttano una botnet (insieme di computer infetti) per scansionare tutti gli apparecchi esposti ad internet, alla ricerca di porte standard aperte, come ad esempio la 22 per l’SSH o la 80 per http e in caso positivo, poi tentare tutte le combinazioni di password e nomi utenti standard, per Raspbian sarà utente: pi password: raspberry, per i router o telecamere di sicurezza utente: admin password: admin.
Una volta entrati nel sistema, lo infettano, unendolo alla botnet, che all’occorrenza può anche essere usata per bloccare siti internet tramite attacchi DDOS chiedendo poi il riscatto, come nel caso dell’attacco “Mirai”.
Altrimenti come Linux.MulDrop.14 , vengono usati i Raspberry Pi per minare monete virtuali sfruttando lil lavoro della CPU, anche se una chiavetta ASIC USB farebbe guadagnare molto di più di un semplice Raspberry Pi.

Aggiornamenti

La prima cosa in assoluto da fare è sempre installare gli aggiornamenti del sistema operativo e dei software.
Essi sono in grado di riparare le falle di sicurezza scoperte e corrette fino a quel momento, un esempio è la falla nel protocollo Samba, che ha infettato 100.000 macchine linux poco tempo fà.

Partiamo con il comando

sudo su

che ci permetterà, per tutta la guida, di eseguire comandi con privilegi di root, necessari per queste operazioni.

Iniziamo con aggiornare la lista dei pacchetti di apt

apt-get update

Successivamente aggiorniamo tutti i software installati con il comando

apt-get dist-upgrade -y

Aggiornamenti automatici

Non possiamo controllare ogni giorno se Raspberry Pi ha l’ultima patch installata, quindi installiamo un software che lo faccia per noi tramite

apt-get install unattended-upgrades -y

modifichiamo i vari parametri con

nano /etc/apt/apt.conf.d/50unattended-upgrades

controllare che ci sia

"o=Raspbian,n=jessie,l=Raspbian-Security";

interessante la voce di riavvio automatico con orario prestabilito.

Hostname ed utenti

Ogni Raspbian inizialmente ha questi dati

  • hostname : rasberrypi
  • utente        : pi
  • password  : raspberry

ed è importante sostituirli in modo da bloccare più attacchi possibili.

Entriamo nell’interfaccia di configurazione di Raspbian

raspi-config

selezioniamo hostname e cambiamo il nome con quello che preferiamo, non serve che sia complicato, solo diverso.
Successivamente entriamo in Boot Option, Desktop / Cli e selezioniamo una voce senza l’autologin.
Finiamo eliminando l’utente pi e creandone uno nuovo, che sia compreso nel gruppo sudo

useradd -m enrico -G sudo

successivamente assegnamogli una password complessa

passwd enrico

ecco i consigli di un hacker per una password sicura 

Ed ora eliminiamo la falla più grossa, l’utente e password di default con il prossimo comando, ma attenzione valutate se cancellarne anche la home col parametro -remove-home

deluser -remove-home pi

Attualmente se scrivete sudo [comando] non vi viene richiesta la password di root, ed è un male, dal punto di vista della sicurezza. Noi vogliamo che ci venga richiesta
spostiamo o cancelliamo il file

mv /etc/sudoers.d/010_pi-nopasswd /tmp

facciamo una semplice prova

exit
sudo su

dovrebbe comparire un avviso e la richiesta di password.
Ottimo, ora va cambiata anche la password di root con

sudo passwd root

Firewall e controllo accessi

In ogni rete e computer è sempre bene avere attivo un firewall in grado di filtrare e controllare tutto il traffico in entrata ed uscita, sul raspberry si può installare ed usare UFW (Uncomplicated firewall) in grado di gestire le iptables in modo veramente semplice.

Installiamolo con

apt-get install ufw -y

Le regole di default consentono tutte le connessioni in uscita, ma bloccano qualsiasi connessione in entrata.
Apriamo e filtriamo solo le porte che ci servono, di solito può servire la porta SSH nel caso ci serva connetterci da remoto o non venga usato il monitor

ufw allow ssh/tcp

oppure col numero della porta

ufw allow 22/tcp

Ora possiamo abilitare UFW

ufw enable

poi, molto importante: limitiamo gli accessi con il comando

ufw limit ssh/tcp

cosi che le prime sei connessioni verranno effettuate senza problemi, ma l’attaccante vedrà negate tutte quelle successive. Verifichiamo che sia configurato correttamente

ufw status numbered

e nel caso dovessimo cancellare una regola sarà sufficente digitare

ufw delete [numero della regola]

Dopo aver applicato nuove regole al firewall va riavviato

ufw disable && ufw enable

Per ulteriori informazioni rimando al manuale

man ufw

Un’ accortezza importante sarebbe quella di cambiare le porte di default di alcuni servizi, ad esempio il server SSH

nano /etc/ssh/sshd_config

Cambiando dalla bersagliata porta 22 a una porta con un numero a caso magari intorno al 10000

# What ports, IPs and protocols we listen for
Port 14000

in questo attenzione che le regole UFW vanno impostato con il numero della porta e non il nome.

Una protezione aggiuntiva sarebbe avere, a monte del router, un firewall di rete, ma per CPU ARM ormai non se ne trovano molti, forse in una futura guida ne parleremo.

Analisi di sicurezza

Una volta completate le varie protezioni iniziali, passiamo all’analisi dei sicurezza tramite il software Lynis  che grazie alla sua versione gratuita ci da un’ idea di cosa si potrebbe ancora proteggere.

Installazione Lynis

Procediamo attivando la chiave software

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C80E383C3DE9F082E01391A0366C67DE91CA5D5F

abilitiamo l’https per apt

apt install apt-transport-https

aggiungiamo

echo "deb http://ift.tt/2dGg0bh <em>CODENAME</em> main" &gt; /etc/apt/sources.list.d/cisofy-lynis.list

dove al posto di CODENAME andrà messo il nome della versione, attualmente jessie.

Rimando al sito ufficiale per tutte le distro supportate
Ed ora, finalmente, possiamo installarlo

apt update ; apt install lynis

ed avviarlo

lynis audit system -Q

Lynis farà un resoconto di tutte le debolezze del nostro sistema e le salverà in un log, in /var/log/lynis.log

Antimalware

Concludiamo con i più famosi tools per la scansione dei malware attivi nel sistema, rkhunter e chkrootkit.
Procediamo con l’installazione di rkhunter

apt-get update ; apt-get install rkhunter -y

Aggiorniamolo all’ultima versione

rkhunter --update --version-check

ed eseguiamo la scansione automatica

rkhunter -c --skip-keypress

alla fine verrà visualizzato il verdetto

Il secondo tool che si usa in tandem con rkhunter è chkrootkit
installazione

apt-get update ; apt-get install chkrootkit -y

ed esecuzione tramite

chkrootkit

Ottimo, direi che per iniziare avete già fatto dei buoni progressi per mettere in sicurezza il vostro Raspberry Pi, anche se le tecniche di attacco e le vulnerabilità, ci saranno sempre.

Se infine volete cimentarvi nei penetration test contro i vostri apparecchi, installate Kali Linux sul vostro Raspberry Pi e poi studiate la documentazione .

Se vuoi restare aggiornato seguici sui nostri social: Facebook , TwitterYouTubeGoogle+Telegram

Riferimenti utili

Siti online per la scansione del proprio webserver
Attacco Mirai
Linux.MulDrop.14

L’articolo Proteggi il Raspberry Pi dagli hacker sembra essere il primo su RaspberryItaly.

da RaspberryItaly http://ift.tt/2vvM2gN
via Roberto Montanaro Blog

Videosorveglianza con Raspberry Pi e motioneye

Mancano gli ultimi giorni di lavoro, la valigia per il mare è pronta da un mese davanti alla porta, stai contando i secondi che ancora ti separano dalle tanto aspettate vacanze estive… Ma un dubbio ti attanaglia, <<E se entrassero i ladri?>>.

Hai un Raspberry Pi! Farà lui la guardia alla tua casa. Può rilevare ogni movimento sospetto grazie al modulo fotocamera da collegare tramite la porta CSI dedicata, o ancora meglio, utilizzando il modulo fotocamera NoIR, a raggi infrarossi, che consente la visione notturna. Può avvisarti e registrare tutto in un comodo file da utilizzare come prova del fattaccio, da mostrare alle forze dell’ordine, grazie a Motioneye.

Preparazione

Installiamo la distro ufficiale Raspbian, per questa guida userò raspbian jessie lite con Raspberry Pi 2 B e il Camera Module (ufficiale o anche compatibile, come quello cinese utilizzato in questa guida) da collegarsi alla porta CSI.

Attiviamo la telecamera tramite il comando

sudo su
raspi-config

Entriamo nel menu interfacing option, successivamente selezioniamo camera e infine yes.

Cosi facendo abilitiamo ll’utilizzo di una camera con porta CSI (Camera Serial Interface), nelle mie prove una webcam logitech USB non riusciva a andare oltre la risoluzione di 320×240 pixel, quindi consiglio di utilizzare il Camera Module originale, meglio ancora se NoIR.

Come sempre, prima di una nuova installazione, vanno aggiornati i pacchetti apt tramite il comando

apt-get update &amp;&amp; apt-get upgrade -y

Installazione di MotionEye

Ora il nostro sistema è pronto per installare il software che gestirà la nostra video sorveglianza, il famoso Motion, in abbinata alla sua interfaccia grafica Motioneye.

Per chi avesse bisogno di un sistema operativo dedicato solo alla video sorveglianza, la via più semplice sarà installare il sistema Motioneyeos, già pronto all’uso.

Mentre per chi, come me, usa il Raspberry Pi per le più svariate funzioni, sarà necessario installare il software a parte.

MotionEye, essendo creato in Python 2, si può installare tramite PyPI; nel caso mancasse dal tuo Raspberry Pi esegui

apt-get install python-pip

aggiungiamo il modulo bcm2835-v4l2

echo bcm2835-v4l2 >> /etc/modules

reboot now

Ora è il turno di ffmpeg che purtroppo non è installabile tramite apt-get ma occorrerà scaricare il pacchetto .deb ed installarlo tramite dpkg

sudo su
wget http://ift.tt/2omuIVM
dpkg -i ffmpeg_3.1.1-1_armhf.deb

Serviranno poi tutta una serie di dipendenze in grado di garantire tutte le funzioni necessarie di interfaccia web, gestione e controllo della telecamera

apt-get install python-dev curl libssl-dev libcurl4-openssl-dev libjpeg-dev libx264-142 libavcodec56 libavformat56 libmysqlclient18 libswscale3 libpq5

 Finalmente arriviamo al nocciolo, il software Motion, reperibile tramite

wget http://ift.tt/2tFsLWg
 dpkg -i pi_jessie_motion_4.0.1-1_armhf.deb

Verifica di recuperare la versione aggiornata dall’ elenco delle release ufficiale che nel nostro caso si chiamerà pi_jessie_motion_xxxx_armhf.deb

Installiamo Motioneye tramite pip2, il quale scaricherà le sue dipendenze tornado, jinja2, pillow e pycurl, è il momento di preparsi un caffè perché la procedura sarà un po’ lunga…

pip2 install motioneye

Configurazione

Dopo questa lunga serie di comandi possiamo iniziare a configurare il tutto in base alle nostre esigenze:

Innanzitutto va creata una cartella e creata una copia del file di configurazione di esempio

mkdir -p /etc/motioneye
cp /usr/local/share/motioneye/extra/motioneye.conf.sample /etc/motioneye/motioneye.conf

poi la cartella per contenere i video

mkdir -p /var/lib/motioneye

ed infine impostiamo il suo avvio automatico tramite

cp /usr/local/share/motioneye/extra/motioneye.systemd-unit-local /etc/systemd/system/motioneye.service
systemctl daemon-reload
systemctl enable motioneye
systemctl start motioneye

Per aggiornare motioneye sarà sufficiente eseguire

pip install motioneye --upgrade
systemctl restart motioneye

Accesso e configurazioni web

Per accedere al pannello di gestione web di Motioneye è sufficiente aprire da un browser web il link http://nome del raspberry oppure ip:8765 esempio: http://raspberrypi:8765

Il nome utente di default sarà admin, mentre la password sarà vuota.

Al primo avvio verrà chiesto quale telecamera aggiungere.

La prima cosa da fare è cambiare l’username e la password per mettere il sistema in sicurezza.

Successivamente, aumentiamo la risoluzione video, diamo un nome alla telecamera (ad esempio “entrata principale”) e abilitiamo il controllo automatico della luminosità.
Aumentare il frame rate comporterà video più fluidi, a discapito di spazio su disco e utilizzo della CPU.

Per la rilevazione dei movimenti o luci il tab motion detection permetterà molte utili configurazioni da valutare in base alle proprie esigenze.

Mentre la funzione “send an email“, una volta configurato il server SMTP, sarà in grado di avvisarci tramite posta elettronica (per aiuti in merito, discutiamone nel forum).

Anche se preferisco “Run a command” che posso utilizzare, sfruttando l’ottimo RpiNotify, per farmi avvisare tramite Telegram.

E per finire, è importante scegliere dove salvare i file, che potranno diventare anche molto grandi, visto che è un sistema di video sorvaglianza ed un eventuale ladro potrebbe anche sottrarre il Raspberry Pi, meglio quindi salvare nel cloud i nostri prezioni video, al fine di preservarli e poterli utilizzare (sperando non sia mai necessario) come prova da mostrare alle forze dell’ordine, in caso di violazione del vostro domicilio.

Note a margine

Oltre gli scopi di questa guida, visto che ora avete piazzato il Raspberry, potete anche utilizzarlo per accendere luci o radio/TV tramite dei relè collegati al GPIO, in modo da simulare la presenza di qualcuno nell’abitazione, o ancora riprodurre dei suoni mirati quali il vociare di più persone, l’abbaiare di un cane, o altro… Insomma, piano piano, volendo, potrete anche espandere il sistema… Come spesso accade, l’unico limite, con Raspberry Pi, è la fantasia!

Se vuoi restare aggiornato seguici sui nostri social: Facebook , TwitterYouTubeGoogle+Telegram

L’articolo Videosorveglianza con Raspberry Pi e motioneye sembra essere il primo su RaspberryItaly.

da RaspberryItaly http://ift.tt/2tFOsWg
via Roberto Montanaro Blog

MagPi in italiano! Numero 59 – Raspberry Pi sfida il PC

Pubblicazione gratuita in PDF d iquesto mese, tradstta in italiano da RaspberryItaly per RaspberrtItaly.
Come tradizione, estratto lo speciale di copertina (e non solo) dalla rivista ufficiale della Fondazione theMagPi:
una sfida: per una settimana sostiture il pc desktop di casa con Raspberry, capire che software usare, come usarli, con cosa sostituire quelli a cui siete abituati. E’ possibile usare solo il Pi per l’uso desktop?
In più, una selezione di 12 progetti “estivi”, che vi portano all’ aria aperta.

Abbiamo un grande bisogno di traduttori volontari, anche solo una pagina o due al mese, possono fare la differenza, se siamo in tanti! Aderisci anche tu: clicca qui!
I contenuti, naturalmente gratuiti, verranno pubblicati sul Forum.

Questa pubblicazione è:
“Numero 59 – Raspberry Pi sfida il PC”, estratto di 23 pagine tratto da The MagPi 59, Luglio 2017
TheMagPi59-copertina

Clicca qui per visualizzare il forum e scaricare il PDF della traduzione.

L’articolo MagPi in italiano! Numero 59 – Raspberry Pi sfida il PC sembra essere il primo su RaspberryItaly.

da RaspberryItaly http://ift.tt/2vz4HFT
via Roberto Montanaro Blog

Apri le porte ai tuoi servizi con UPNP ed il Port Forwarding

Hai preparato il tuo fantastico Raspberry Pi, installato di tutto: un server web , una VPN, il filtro anti pubblicità Pihole ed un gestore di download  ma tutto viene inesorabilmente relegato alla tua rete interna, mentre nell’ internet of things tutto deve essere online e raggiungibile da qualsiasi dispositivo autorizzato.

Tra la rete interna ed internet di norma c’è un dispositivo con la funzione di firewall con lo scopo di proteggerci dagli attacchi esterni, filtrando il traffico dall’esterno all’interno e viceversa.
Per fare ciò, si fanno passare i dati attraverso delle porte virtuali ben precise, nei router, il menù di gestione può venir chiamato port forwarding, virtual server o NAT, in esso va sempre precisato l’indirizzo interno di destinazione, la porta utilizzata e il protocollo tra TCP e UDP.

Esempio di NAT senza UPnP
Esempio di NAT

Per esempio avendo il Raspberry Pi con un server web, che di norma usa la port 80, sarà necessario istruire il router affinchè il traffico dati proveniente dall’esterno attraverso la porta 80 col protocollo TCP, venga correttamente inoltrato all’indirizzo interno del Raspberry Pi, il quale deve essere fisso.

I metodi sono due: quello manuale, cioè entrare nel pannello di controllo del router / firewall e a mano configurare tutti i dati, oppure in alternativa, visto che spesso non si ha accesso al router perché il gestore non fornisce la password, si può usare il sistema chiamato UPNP che tramite un solo comando configura il tutto molto semplicemente e senza avere la password del router, l’unico requisito è che nel router sia abilitato il flag sulla voce , abilita UPNP.
In questo link c’è un approfondimento su UPNP  per chi ne fosse interessato.

upnp

Preparazione del Raspberry Pi:

Per iniziare è necessario che il nostro Raspberry Pi abbia sempre lo stesso indirizzo ip, per fare ciò va modificato il file di configurazione tramite il comando seguente, impartito dal terminale del Raspberry

sudo su
nano /etc/network/interfaces

modifica la parte della scheda, di norma si chiama eth0, in questo modo (questi dati sono un esempio)

iface eth0 inet static
 address 192.168.1.200
 netmask 255.255.255.0
 gateway 192.168.1.1
 dns-nameservers 195.238.1.1 8.8.8.8

per renderle attive le modifiche riavvia la scheda di rete con

ifdown -a ; ifup -a

Spiegazione delle voci:

address: indirizzo interno del Raspberry Pi
netmask: la maschera di sotto rete, di solito è 255.255.255.0
gateway: l’ip del router/firewall
dns-nameservers : [ip del router] ed il server di google 8.8.8.8 , necessari a convertire i nomi dei siti o pc in indirizzi ip

Software:

Ora è necessario installare il software miniupnpc che penserà a configurare il router

apt-get update; apt-get upgrade -y
apt-get install miniupnpc -y

Finita l’installazione, verifichiamo che il router abbia la funzione UPNP abilitata, usando il comando

upnpc -S

il quale elencherà i server UPNP in rete

Found valid IGD : http://ift.tt/2t0VAw7

Ora che è tutto pronto, sarà sufficente aprire la porta ed inoltrarne il traffico dall’esterno verso l’ip del Raspberry Pi con il comando

upnpc -a [ip_RaspberryPi] 80 80 TCP

mentre per eliminare la regola si userà

upnpc -d 80 TCP

Per i comandi completi è sufficente eseguire

man upnpc

Link utili

MiniUPnp Project

Port Forwarding

Scanner online delle porte

Note

Se si scegliesse la configurazione manuale, la maggior parte dei router domestici ha il pannello di gestione raggiungibile a questo indirizzo 192.168.1.1 con utente: admin e password: admin , in alternativa per trovare l’ip del router, è sufficente impostare su un pc o Raspberry Pi l’ip automatico (DHCP) e poi leggere il valore chiamato gateway.

Se vuoi restare aggiornato seguici sui nostri social: Facebook , TwitterYouTubeGoogle+Telegram

L’articolo Apri le porte ai tuoi servizi con UPNP ed il Port Forwarding sembra essere il primo su RaspberryItaly.

da RaspberryItaly http://ift.tt/2t1kQSS
via Roberto Montanaro Blog

ESP8266 Guida Completa – Parte 3: Collegare ESP al PC

Terza puntata della nostra avventura nel mondo dell’ ESP8266: colleghiamo al PC il nostro microcontrollore.

Prima parte

Seconda parte

Collegare ESP8266

Abbiamo due strade per poter comunicare con il microcontrollore del nostro ESP8266: o via Wifi, o collegandoci via seriale da un computer. Questa seconda via serve anche per installare uno dei vari firmware alternativi che permettono di usare in maniera molto più amichevole questa piccola scheda.

Vediamo quindi di approfondire questa strada, ma… Andiamo con ordine:

Materiale necessario al collegamento

Nel caso in cui, come consigliato nelle precedenti puntate, vi siate procurati un modulo NodeMCU, saltate pure al capitolo Collegamento USB, in quanto possiede già, a bordo della scheda, tutto quel che serve al suo funzionamento e programmazione: un convertitore da 5V a 3,3V, per potere usare la tensione della USB e un adattatore USB / seriale, in modo da alimentare e comunicare con il modulo semplicemente collegando un comune cavetto USB – microUSB , tipo quello per cellulari, tra il pc e la Nodemcu..

Per gli altri modelli e versioni, o comunque per completezza, continuate invece a leggere:

Parlando in linea generale, per collegare via cavo un ESP8266 al computer, serve una porta seriale.
Quindi, o possedete un vecchio computer dotato di seriale (volendo Raspberry ha la seriale su GPIO) o sarà necessario un adattatore da USB a seriale TTL. Il modulo dovrà essere alimentato anche a 3,3V in corrente continua, dovrete quindi trovare il modo più pratico per farlo (anche qui Raspberry può essere utile, offrendo tale tensione sul suo GPIO, ma occhio agli assorbimenti in corrente).

Avete quindi necessità di risolvere questi due problemi (alimentazione e seriale). Si possono usare due piccoli circuiti: un convertitore DC/DC e un adattatore seriale/USB TTL.
Il primo serve a ottenere i 3,3V in corrente continua da tensioni continue più semplici da ottenere con batterie o alimentatori, come quelli USB da parete, diffusi e economici, per alimentare il nostro modulo nel suo funzionamento. Il secondo serve per poter programmare l’ESP dalla USB. Esistono convertitori che forniscono anche la tensione di 3,3V, per alimentare il modulo durante la programmazione dello stesso sempre tramite la USB. Esempi da Amazon:
convertitore dc-dc
adattatore USB seriale

schema collegamento

Fate particolare attenzione a non dare mai 5V (o comunque più di 3,3V) alla scheda, sia in alimentazione, sia con la connessione dati (alcuni adattatori, come quello linkato sopra, hanno un ponticello per selezionare la tensione). Altrimenti la danneggereste in modo irriparabile!

Modalità di boot

I moduli realizzati con ESP8266 possono essere avviati in 2 (anzi 3) modalità di funzionamento diverse, a seconda dei segnali forniti a specifici pin al boot:

  • Bootloading (o UART): è la modalità per caricare firmware e programmi dalla seriale
  • Usage (o FLASH): il chip esegue il programma caricato nella memoria

Esisterebbe una terza modalità: SDIO, in cui dovrebbe eseguire quanto caricato su una scheda SD, ma non ho trovato un modulo ESP dotato di slot SD e forse non è supportata nemmeno dai firmware.

Per selezionare la varie modalità, si deve fare in modo che alcuni pin siano a livello logico ALTO, BASSO o non collegati (NC). Occorre tenere conto di questo se si dispone di pochi pin e li si vuole utilizzare anche nella fase di funzionamento.

Modalità GPIO 0 GPIO 2 GPIO 15
Bootloading – UART BASSO NC o ALTO BASSO
Uso – FLASH ALTO NC o ALTO BASSO
SDIO NC NC ALTO

Ove non ci fosse il GPIO15 (MTDO). come su ESP-01 che ha solo 8 piedini, la tabella di rifetimento è questa:

Modalità GPIO 0  GPIO 2
Bootloading – UART BASSO ALTO
Uso – FLASH ALTO ALTO

La scheda tipo NodeMCU non necessita, invece, di collegamenti particolari ai pin: è dotata di due micro pulsanti: RST (per resettare la scheda) e FLASH (per impostarla in programmazione firmware. In realtà, questa modalità viene ora gestita automaticamente via software, non è quindi necessario, limitatamente a questa versione, fare collegamenti particolari o premerei il tasto, per flashare firmware e programmi).

Collegamento USB

Bene, ora, perchè il pc riconosca il dispositivo, occorre prima installare il driver dell’adattatore seriale / USB utilizzato. Nel caso del kit di sviluppo Nodemcu è già a bordo della scheda, e molto probabilmente sarà il CH341, scaricabile qui, altrimenti potreste avere altri tipi di adattatore, non è molto importante il tipo, basta che installiate il driver corretto per il chip contenuto nel vostro adattatore, dopodichè il computer lo riconoscerà come una porta seriale supplementare.

Verificate come viene nominata questa porta seriale su USB: vi servirà poi per impostare la connessione.

Software

Quindi, se avete collegato il vostro ESP8266 alla USB del pc, tramte cavi o adattatori vari, ci serve ora del software per comunicare con esso.

Terminale

O, per esteso, programma di emulazione terminale su seriale. Ve ne sono moltissimi, il funzionamento è praticamente lo stesso per tutti: va impostata la porta, la velocità e i parametri di connessione. Dopodichè si potrà “parlare” con il vostro modulo o scheda ESP8266. Scegliete quindi quello che più vi aggrada, alcuni sitemi operativi ne hanno uno di serie, io consiglio MobaXterm perchè, oltre a fare da terminale seriale, consente di connettersi anche in SSH/MOSH, ha SFTP, server grafico X11 e editor integrati.. Insomma è uttilissimo anche nell’uso con RaspberryPi.

Comunque, qualsiasi sia il vostro terminale, impostatelo per usare la porta seriale corretta (spesso presa in automatico), velocità 115200 baud (su alcuni modelli, come i miei, tale modalità non funziona, dipende dalla versione del firmware, nel caso, provate 9600 o 57600), 8 bit, bit di stop 1, nessuna parità e nessun controllo degli errori.

Con questi parametri, provate a connettervi. Se ottenete un errore di connessione, controllate i collegamenti al modulo e all’adattatore, se lo avete utilizzato.

Se invece vi connettete ma non ottenete nessuna scritta, probabilmente siete sulla buona strada.
Usate il reset per farla ripartire e leggere eventuali intestazioni.
Come interagire con l’ESP8266, dipende dal firmware che ha a bordo. Infatti, nel firmware c’è l’interprete dei comandi. Ne esistono diversi, tra cui comandi AT (default del produttore), Nodemcu (che usa il linguaggio lua, default delle schede Nodemcu), Micropython, Basic, Visualbasic, Arduino, ecc..
Voi scrivete un comando, date invio, e l’ESP scriverà la risposta, come se steste chattando con un amico (o forse un bot) lontano. Ad esempio, nel caso del firmware del produttore (AT) basterà digitare AT per ricevere “Ok”.

Oppure print “ciao” o print (“ciao”) ti faranno salutare dall’ ESP8266 rispettivamente in lua (firmware Nodemcu) o in MicroPyton.MobaXterm

I comandi AT del firmware di default non rendono molta giustizia a questo Hardware, relegandolo a un lontano parente di un modem.. Anche se permettono, volendo, di effettuare richieste HTTP GET, che sono sufficienti a usare un servizio cloud per l’IoT come ThingSpeak. Però, è grazie ai firmware alternativi che questo piccolo gioiellino esprime il suo meglio. Dobbiamo quindi impararae bene come caricare i vari firmware.

Addirittura può capitare che il vostro modulo non abbia alcun firmware a bordo.
Vediamo allora che si va a scrivere un firmware (e i programmi) nella memoria dell’ESP8266.

Firmware

Possiamo usare questo comodo programma per PC: Nodemcu Flasher.nodemcuflasher1

Una volta aperto, possiamo visualizzare 5 diversi pannelli: Operation, Config, Advanced, About, Log.
Non temete, per cominciare, vanno benissimo le impostazioni che prende in automatico, per ora vi basti sapere che in Advanced potete impostare le caratteristiche del vostro modulo ESP8266
1

Nel pannello Config potrete impostare il firmware da caricare, metendo o togliendo le relative spunte (NodeMCU è integrato nel programma, altri li potrete scaricare e inserire come file).
2

scegliete quindi il vostro firmware e premete Flash(F). Compariranno gli indirizzi MAC e il QRCode, e la barra di progresso mi mostrerà l’andamento dell’ operazione.

Ricordatevi però di collegare i pin in modalità aggiornamento firmware prima di alimentare l’ESP8266. Se avete la Nodemcu, anche questa operazione non è necessaria, in quanto è impostata automaticamente via softwrae, non dovrete fare nulla.
3

Un altro programma che potreste trovare utile è ESPlorer, un IDE per lua, MicroPython e comandi AT, che integra un terminale seriale, molto comodo in abbinata con ESP8266.

Ho parlato di PC, ma nulla vi vieta di utilizzare un MAC o un Raspberry o un altro sistema linux per gestire il vostro ESP8266.
In questo caso, ricorreremo al terminale e a Python, con esptool.
Ecco di seguito la procedura su Raspberry Pi, per pc Linux e Mac, si procederà in modo analogo, adattando i parametri quali, ad esempio, il nome della porta. Naturalmente, il metodo funziona, volendo, anche con i pc Windows.
Apriamo quindi un terminale sul Raspberry e digitiamo:
pip install esptool
per installare esptool.
Se non avete pip già installato sul vostro sistema, prima mettetelo, con:
apt-get install python3-pip

Bene! ora con esptool.py abbiamo il programma che comunica con l’ESP8266.
Ad esempio potete cancellare il firmware contenuto con:
python esptool.py --port /dev/ttyUSB0 erase_flash
Mentre per caricare un firmware:
python esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 nomedelfirmware.bin

Potete approfondire tutte le potenzialità di questo strumento consultando l’help, digitando:
python esptool.py -h

Ottimo! Ora potete cominciare a sperimentare con l’ESP8266.
Dalla prossima puntata, analizzeremo i vari firmware più diffusi, utilizzati e utili.
Molte guide riportano l’uso di ESP8266 con il firmware Arduino, come se fosse la migliore alternativa. Niente paura: non dovrete per forza imparare il linguaggio di Arduino per usare proficuamente ESP8266: è solo un “retaggio culturale”: gli utilizzatori di ESP8266 provengono dal mondo dei PIC e spessissimo conoscono già Arduino. ESP gli permette di avere un Arduino più piccolo, più economico, con WiFi integrato. Ma altri linguaggi offrono almeno le stesse opportunità (se non maggiori). Ne faremo una veloce panoramica.

Continuate a seguirci, anche sui nostri social: Facebook , TwitterYouTubeGoogle+Telegram

L’articolo ESP8266 Guida Completa – Parte 3: Collegare ESP al PC sembra essere il primo su RaspberryItaly.

da RaspberryItaly http://ift.tt/2u7xX9d
via Roberto Montanaro Blog

MagPi in italiano! Numero 58 – Guida Maker Minecraft

Nuovo appuntamento con i pdf gratuiti, tutti in italiano, estratti dalla rivista ufficiale The Mag Pi, la rivista scritta (e letta) dalla Community di Raspberry Pi.
QUesta volta ci focalizziamo su Minecraft, e su come si può modificarlo usanfo Python, per imparare divertendosi.
Vi prensentiamo quindi lo speciale, estratto da MagPi: la Guida per Maker in Minecraft.

Grazie a tutto il team di traduttori volontari che si impegna a produrre queste pagine. Aderisci anche tu: clicca qui!
I contenuti, naturalmente gratuiti, verranno pubblicati sul Forum.

Questa pubblicazione è:
“Numero 58 – Guida Maker Minecraft”, estratto da The MagPi 58, Giugno 2017
TheMagPi58-copertina

Clicca qui per visualizzare il forum e scaricare il PDF della traduzione.

L’articolo MagPi in italiano! Numero 58 – Guida Maker Minecraft sembra essere il primo su RaspberryItaly.

da RaspberryItaly http://ift.tt/2sizsB4
via Roberto Montanaro Blog