Per poter effettuare gli aggiornamenti di Intel Edison all'interno di una rete proxata si deve configurare il file /etc/opkg/opkg.conf modificando le option
Per motivi che non ho ben definito ho dovuto inserire l'indirizzo numerico del proxy perche' il DNS non riusciva a risolvere l'indirizzo mnemonico (il DNS funzionava correttamente su altre macchine della stessa rete)
lunedì 8 agosto 2016
domenica 7 agosto 2016
GMail Notifier con Yun ed Edison
Per verificare se vi sono messaggi non letti in una casella postale di GMail non e' necessario utilizzare l'accesso POP3 od IMAP. Esiste infatti un servizio Atom che riporta tale informazione
Per fare cio' si usa la url
https://mail.google.com/mail/feed/atom/label
ma prima di fare cio' si deve andare nella configurazione della propria mailbox e configurare almeno una label e poi associare un filtro ad una determinata label
per esempio si puo' creare una label Lavoro e poi creare un filtro che in base ad un indirizzo mail associa l'etichetta Lavoro.
per recuperare il numero delle mail arrivate con la label Lavoro E NON APERTE si puo' usare il comando dove username e' la mail privata di @gmail.com e la password e' quella dell'account
curl -u username:password "https://mail.google.com/mail/feed/atom/Lavoro" -k --silent |grep -o "<fullcount>[0-9]*</fullcount>" |grep -o "[0-9]*"
se si lancia il comanda si ha un errore di violazione. Questo perche' gli account di GMail sono particolarmente protetti. Per fare si' che il comando abbia buon fine si deve andare nel proprio account e cercare Consenti app meno sicure e settare On
Fatto cio' si puo' creare uno script che se il numero delle mail non lette con una determinata label e' maggiore di zero effettua una azione, diciamo azionare un rele' collegato al pin D12 a sua volta collegato per esempio ad una sirena o ad una luce a 12 V
YUN
In YUN si procede caricando lo script bash e poi, dall'interfaccia web, si abilita l'accesso REST senza password (OPEN)
Si carica quindi lo sketch Bridge dagli esempi e si lancia lo script sottostante
------------------------------
gmail=$(curl -u username:password "https://mail.google.com/mail/feed/atom/Lavoro" -k --silent |grep -o "<fullcount>[0-9]*</fullcount>" |grep -o "[0-9]*")
#echo $gmail
if [ "$gmail" -gt "0" ]; then
then curl http://localhost/arduino/digital/12/1;
else
then curl http://localhost/arduino/digital/12/0;
fi
------------------------------
Edison
------------------------------
advertence=$(curl -u username:password "https://mail.google.com/mail/feed/atom/Lavoro" -k --silent |grep -o "<fullcount>[0-9]*</fullcount>" |grep -o "[0-9]*")
echo $advertence
if [ "$advertence" -gt "0" ]; then
./accendi.py
else
./spegni.py
fi
------------------------------
accendi.py
------------------------------
#!/usr/bin/env python
import mraa
x = mraa.Gpio(12)
x.dir(mraa.DIR_OUT)
x.write(1)
------------------------------
Per fare cio' si usa la url
https://mail.google.com/mail/feed/atom/label
ma prima di fare cio' si deve andare nella configurazione della propria mailbox e configurare almeno una label e poi associare un filtro ad una determinata label
per esempio si puo' creare una label Lavoro e poi creare un filtro che in base ad un indirizzo mail associa l'etichetta Lavoro.
per recuperare il numero delle mail arrivate con la label Lavoro E NON APERTE si puo' usare il comando dove username e' la mail privata di @gmail.com e la password e' quella dell'account
curl -u username:password "https://mail.google.com/mail/feed/atom/Lavoro" -k --silent |grep -o "<fullcount>[0-9]*</fullcount>" |grep -o "[0-9]*"
se si lancia il comanda si ha un errore di violazione. Questo perche' gli account di GMail sono particolarmente protetti. Per fare si' che il comando abbia buon fine si deve andare nel proprio account e cercare Consenti app meno sicure e settare On
Fatto cio' si puo' creare uno script che se il numero delle mail non lette con una determinata label e' maggiore di zero effettua una azione, diciamo azionare un rele' collegato al pin D12 a sua volta collegato per esempio ad una sirena o ad una luce a 12 V
YUN
In YUN si procede caricando lo script bash e poi, dall'interfaccia web, si abilita l'accesso REST senza password (OPEN)
Si carica quindi lo sketch Bridge dagli esempi e si lancia lo script sottostante
------------------------------
gmail=$(curl -u username:password "https://mail.google.com/mail/feed/atom/Lavoro" -k --silent |grep -o "<fullcount>[0-9]*</fullcount>" |grep -o "[0-9]*")
#echo $gmail
if [ "$gmail" -gt "0" ]; then
then curl http://localhost/arduino/digital/12/1;
else
then curl http://localhost/arduino/digital/12/0;
fi
------------------------------
Edison
------------------------------
advertence=$(curl -u username:password "https://mail.google.com/mail/feed/atom/Lavoro" -k --silent |grep -o "<fullcount>[0-9]*</fullcount>" |grep -o "[0-9]*")
echo $advertence
if [ "$advertence" -gt "0" ]; then
./accendi.py
else
./spegni.py
fi
------------------------------
accendi.py
------------------------------
#!/usr/bin/env python
import mraa
x = mraa.Gpio(12)
x.dir(mraa.DIR_OUT)
x.write(1)
------------------------------
spegni.py
------------------------------
#!/usr/bin/env python
import mraa
x = mraa.Gpio(12)
x.dir(mraa.DIR_OUT)
x.write(0)
------------------------------
------------------------------
#!/usr/bin/env python
import mraa
x = mraa.Gpio(12)
x.dir(mraa.DIR_OUT)
x.write(0)
------------------------------
mercoledì 3 agosto 2016
Arduino Sleep Mode
La possibilita' di "addormentare" il microcontrollore di Arduino e' documentata da anni con la possibilita' di avere 5 livelli di risparmio energetico ed essere risvegliata mediante interrupt.
Esiste una soluzione piu' lineare che e' quella di usare le JeeLib con la funzione Sleepy::loseSomeTime che corrisponde ad una funzione delay con il sistema in sonno profondo che si risveglia senza la necessita' di un interrupt esplicitp
in modo molto semplice lo sketch base e'
----------------------------
for (byte i = 0; i < minuti; ++i)
Esiste una soluzione piu' lineare che e' quella di usare le JeeLib con la funzione Sleepy::loseSomeTime che corrisponde ad una funzione delay con il sistema in sonno profondo che si risveglia senza la necessita' di un interrupt esplicitp
in modo molto semplice lo sketch base e'
----------------------------
#include <JeeLib.h>
ISR(WDT_vect) { Sleepy::watchdogEvent(); }
void setup() {
}
void loop() {
// fai qualcosa
Sleepy::loseSomeTime(5000);
}
----------------------------L'unica accortezza con questa funzione e' il parametro e' in millisecondi ed il suo formato e' una word per cui al massimo si puo' arrivare a 65535 (ovvero circa 65 secondi). Per effettuare ritardi piu' lunghi si deve inserire la funzione in un ciclo del tipo
---------------------------
unsigned int minuti = 60; //ritardo in minuti
Sleepy::loseSomeTime(60000); //60.000 microsecondi = 1 minuto
----------------------------
Visto che in fase di sleep e' disabilitato il clock dall'oscillatore al quarzo, il calcolo del tempo risulta non accurato (un utente riporta che loseSomeTime(60000) termina dopo 59 secondi)
Non sono riuscito a fare misure dirette (il mio misuratore Volt/Amp si ferma alla decina di mA) ma sembra che in fase di sleep il consumo del microcontrollore sia inferiore di circa un fattore 10 per scendere a qualche microA
Datalogger obsoleto
Mi sono stati regalati alcuni componenti elettronici tirati fuori da un armadio senza una precisa indicazione del loro utlizzo
Ad un esame attento degli integrati probabilmente si tratta di un datalogger. Sono presenti delle schede removibili al cui interno degli integrati M27128AF1, una UV EPROM (notare la finestrella scoperta) da 128 Kb per un totale di 4 moduli con un totale 512 Kb.
L'altra scheda e' ad occhio una vecchia ISA Full Size. Si notano un componente DM74LS38 (4 porte indipendenti di NAND), un P8255A-5 un integrato programmabile della Intel per funzione di IO per interfacciare un computer e un SN54LS245 ed un P8259A per la gestione programmabile degli interrupt
Ad un esame attento degli integrati probabilmente si tratta di un datalogger. Sono presenti delle schede removibili al cui interno degli integrati M27128AF1, una UV EPROM (notare la finestrella scoperta) da 128 Kb per un totale di 4 moduli con un totale 512 Kb.
L'altra scheda e' ad occhio una vecchia ISA Full Size. Si notano un componente DM74LS38 (4 porte indipendenti di NAND), un P8255A-5 un integrato programmabile della Intel per funzione di IO per interfacciare un computer e un SN54LS245 ed un P8259A per la gestione programmabile degli interrupt
martedì 2 agosto 2016
Debian 8 su PowerBook G4 Titanium
Con questo post si rientra alle origini del blog ovvero installare Debian su macchina obsolete
In questo caso c'e un dubbio. Ha una mela sullo schermo ma e' un Apple PowerBook od un PC piuttosto bruttino e molto standard ????
Si tratta di un modello particolarmente esotico (su Ebay al momento non sono presenti in vendita esemplari funzionanti) ovvero di un A1025 PowerBook G4 Titanium, un pezzo di storia risalente al 2002 nel periodo di passaggio da OS 9 a OS X
La macchina era destinata alla distruzione ed era priva dell'Hd (il precedente possessore si e' sincerata di rimuovere tutti i suoi dati)..fortunatamente ha lasciato pero' il flat cable per il montaggio dell'HD . Ha montati 256 MB di Ram (standard dell'epoca)
Le porte sono tutte nascoste da uno scomodissimo sportellino sul retro del computer
L'installazione di Debian 8 per PowerPC (non ci sono repository PowerPC su Debian.it quindi bisogna puntare su Debian.org) non ha mostrato nessun problema...la mancanza di Ram mette un po' in crisi XFCE ma con un po' di tuning si tratta di macchina ancora usabile
In questo caso c'e un dubbio. Ha una mela sullo schermo ma e' un Apple PowerBook od un PC piuttosto bruttino e molto standard ????
Si tratta di un modello particolarmente esotico (su Ebay al momento non sono presenti in vendita esemplari funzionanti) ovvero di un A1025 PowerBook G4 Titanium, un pezzo di storia risalente al 2002 nel periodo di passaggio da OS 9 a OS X
La macchina era destinata alla distruzione ed era priva dell'Hd (il precedente possessore si e' sincerata di rimuovere tutti i suoi dati)..fortunatamente ha lasciato pero' il flat cable per il montaggio dell'HD . Ha montati 256 MB di Ram (standard dell'epoca)
![]() |
Scheda madre con il nuovo HD da 40 Gb |
![]() |
Accesso alla Ram sotto la tastiera |
Iscriviti a:
Post (Atom)
Physics informed neural network Fukuzono
Visto che puro ML non funziona per le serie tempo di cui mi sto occupando ed le regressioni basate su formule analitiche mostrano dei limiti...

-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...