Passa ai contenuti principali

Post

Visualizzazione dei post da 2020

PIR Sensore di movimento dell'antifurto domestico controllato da Raspberry Pi

PIR Sensore di movimento dell'antifurto domestico controllato da Raspberry Pi Quasi tutti gli esempi che si trovano in rete prevedono un PIR sensore di movimento da laboratorio che viene alimentato dallo stesso Raspberry e quindi non ha bisogno di isolamento optoelettronico che invece è necessario se si vogliono usare i PIR di un impianto domestico o industriale. PIR da laboratorio: PIR industriale: Qui userò il PIR industriale che ha 5 pin di interesse:  - VCC (12 V) - GND - NC - NA - COMUNE I primi due servono per l'alimentazione a 12V, gli altri tre sono NC (Normalmente Chiuso), NA (Normalmente Aperto) e Comune.  L'NC ha lo stato di "circuito chiuso" quando il rilevatore NON rileva movimento. Nel momento in cui rileva movimento il contatto fra NC e COMUNE viene aperto. L'NA ha lo stato di "circuito aperto" quando il rilevatore NON rileva movimento. Nel momento in cui rileva movimento il contatto fra

Dynamic DNS con Duckdns.org in HTTPS

Obiettivo Avere un dominio https con certificato valido da usare come endpoint pubblico per Homeassistant e per un WebHook per i bot telegram. Fase 1 Registrazione del dominio in un servizio di dynamic DNS come https://www.duckdns.org/   : Scegliere per quale sistema operativo installare il client che si occuperà dell'aggiornamento dell'ip: Seguire la semplice guida per la configurazione del processo cron: Fase 2 Creazione del certificato e installazione sul server. Di tutto questo si occuperà una applicazione che si chiama certbot. $ sudo add-apt-repository ppa:certbot/certbot $ sudo apt install python-certbot-apache $ sudo certbot --apache -d ol3.duckdns.org -d www.ol3.duckdns.org Fase 3 Esporre il servizio https sulla rete pubblica. Aprire o reindirizzare la porta 443 verso l'host sul quale si è fatta la configurazione di certbot dal proprio router. Il certificato di certbot è valido per novanta giorn

Blockchain - Le transarioni

Transazioni Definizioni Nel contesto delle blockchain usate per le criptovalute il concetto di "transazione" implica effettivamente un passaggio di valuta da un possessore ad un'altro. In questo contesto, nel quale mi astraggo dall'applicazione nel campo delle criptovalute, e faccio una trattazione più generica delle blockchain la transazione è una transizione di stato: il contenuto informativo che si vuole certificare è cambiato. Nel nostro caso specifico cambia il campo "Dati" dell'oggetto Block e passa da uno al successivo dei seguenti valori, ma risulterà evidente che è possibile inserire nel blocco qualunque informazione: "Ciao a tutti quanti" "Ciao a tutti quanti i curiosi delle blockchain" "Ciao a tutti quanti i curiosi delle blockchain che leggono questo blog" Blocco informativo Nel caso delle criptovalute l'attenzione si sarebbe spostata, a questo punto, alla veri

Blockchain - Introduzione

Blockchain Cosa è e come funziona ? Cosa significa "minare" ? Come si verificano le transazioni in un sistema anonimo e distribuito ? Cerco di riportare qui le risposte che ho cercato di darmi su questi argomenti. Provo a suddividere la trattazione in più parti per non risultare eccessivamente lungo. Il livello di approfondimento è "didattico" cioè cerco di dare dettagli sia architetturali che implementativi ma fermandomi ad un livello adeguato alla comprensione approfondita del meccanismo e non alla implementazione di un sistema reale. Definizioni Blockchain è una tecnologia che consente di certificare temporalmente e sequenzialmente una asserzione. In altre parole si ha un registro che certifica il suo contenuto informativo senza un garante e senza fiducia fra le parti. Questa potrebbe essere una definizione quanto più generica possibile della tecnologia, aperta, che sta dietro alle criptovalute ma è utilizzabile anche in altri ambi

Scrum - il framework agile applicabile

Scrum - il framework agile applicabile Premessa Lo studio strutturato dell'informatica prevede una fase che si può definire "meta processo", cioè la conoscenza di alcuni metodi utili a gestire il ciclo di sviluppo software. Come tanti paradigmi di questa scienza anche quelli riguardanti l'ingegneria del software sono soggetti a rapida evoluzione o rapida obsolescenza, spesso anche soggetti a "mode". Questi ultimi aspetti spesso rendono difficoltosa l'adozione di questi paradigmi a causa della loro rapida obsolescenza. La necessità ( ampiamente dimostrata in letteratura)  di adozione di un modello nello sviluppo software  impone un lavoro di ricerca e sperimentazione di queste metodologie per trovare quella che meglio si addice alle specifiche esigenze dettate dal dominio, dai linguaggi usati, dai macro-requisiti che si hanno. Metodologia che va approfondita e adattata. Introduzione Scrum è un framework per lo sviluppo di progetti comple