Come programmare una scheda ESP8266 NodeMCU con l’IDE di Arduino

Per prima cosa bisogna configurare l’IDE di Arduino.
Andiamo in “File > Impostazioni” e nel campo “URL aggiuntive per il Gestore schede” aggiungiamo “http://arduino.esp8266.com/stable/package_esp8266com_index.json“.
Se sono già presenti altri URL usiamo la virgola come separatore.

Poi andiamo in “Strumenti > Scheda > Gestore schede” e installiamo il modulo “esp8266” di ESP8266 Community (se ce ne sono molte il campo di ricerca permette di filtrare i risultati).

Ora possiamo tornare in “Strumenti > Scheda” e poter scegliere “NodeMCU 1.0 (ESP-12E Module)”.

Colleghiamo la scheda al computer e impostiamo la corretta porta seriale da “Strumenti > Porta” (l’elenco dipenderà dal vostro computer).

Ora siamo pronti per caricare il primo programma!

Nel physical computing la classica stampa della stringa “Hello World” è sostituita dal lampeggio del LED che di solito si trova a bordo della scheda.

Andiamo dunque in “File > Esempi > ESP8266 > Blink”. Il programma caricato sarà simile a questo:

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);     // Initialize the LED_BUILTIN pin as an output
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, LOW);   // Turn the LED on (Note that LOW is the voltage level
  // but actually the LED is on; this is because
  // it is active low on the ESP-01)
  delay(1000);                      // Wait for a second
  digitalWrite(LED_BUILTIN, HIGH);  // Turn the LED off by making the voltage HIGH
  delay(2000);                      // Wait for two seconds (to demonstrate the active low LED)
}

Successivamente possiamo eseguire il comando “Carica”. Ci sarà la fase di compilazione e poi quella vera e propria di caricamento, segnalata da brevi lampeggi del led vicino all’antenna della scheda.

Terminato il caricamento inizierà l’esecuzione del programma con un lampeggio più lento del LED.
Possiamo anche provare a variare i valori indicati nelle due istruzioni delay() per modificare il tipo di lampeggio.

Ora siamo pronti per passare a programmi più complessi! 🙂

Rendere accessibile da Internet un server connesso tramite protocollo NAT o firewall con IP dinamico

Può essere necessario dover accedere ad un server che sia collegato ad Internet ma che non disponga di un indirizzo IP pubblico e statico. Potrebbe avere un indirizzo IP dinamico oppure potrebbe capitare di dover utilizzare un router per telefonia mobile che spesso usa il protocollo NAT, condividendo quindi lo stesso indirizzo IP con altri router.

Se abbiamo a disposizione un secondo server con indirizzo IP pubblico e statico lo possiamo usare come ponte per collegarci al primo server.

Continua a leggere Rendere accessibile da Internet un server connesso tramite protocollo NAT o firewall con IP dinamico

Scrivere un plugin WordPress direttamente dalla Dashboard andando subito al nòcciolo e saltando tutte le parti noiose

Volevo aggiungere una sezione link a questo sito per archiviare le notizie interessanti che incontro in giro per la Rete e per avere un unico indirizzo da condividere su Facebook e Linkedin.

Potevo installare un plugin già pronto, ma avrei dovuto cercarne e trovarne uno adatto, oppure potevo scriverne uno io, ma avrei dovuto preparare la struttura di cartelle e file necessari per il codice che spesso contiene ripetizioni di blocchi simili {chi lo ha già fatto sa di cosa sto parlando ;-)}.
Entrambe le soluzioni hanno dunque qualche punto debole.

Ho deciso quindi di provare ad usare i plugin Pods e Code Snippets per prendere il meglio da ciascuna delle due opzioni precedenti: ottenere un plugin che faccia esattamente quello che mi serve concentrandomi solo sul codice che implementa il comportamento del modulo.

Continua a leggere Scrivere un plugin WordPress direttamente dalla Dashboard andando subito al nòcciolo e saltando tutte le parti noiose

Come ottenere lettere accentate e caratteri speciali senza tastierino numerico su Windows 10

Dopo una decina di anni di uso di Linux anche come desktop ho ricominciato ad usare Windows come desktop {solo come desktop! La maggior parte dei miei progetti continua ad essere in ambiente Linux tramite WSL2}.

Nel normale uso di un editor di testo ci sono due punti in cui ancora Windows 10 è rimasto un po’ carente:

  • nell’inserimento delle lettere accentate maiuscole (ad esempio la È) nei testi in italiano
  • nella possibilità di usare caratteri speciali come ~ (tilde) o ` (backtick o apice rovesciato) specialmente nelle sessioni Linux.

Se disponiamo di una tastiera con tastierino numerico possiamo sempre usare la combinazione di tasti ALT + <codice numerico del carattere> per inserire il carattere che desideriamo ma se la tastiera non prevede tastierino numerico come si fa?

Continua a leggere Come ottenere lettere accentate e caratteri speciali senza tastierino numerico su Windows 10

Interrupt e Sleep Mode per scheda Digispark (Attiny85)

Schema dei collegamenti tra scheda Digispark e pulsante

Lo Sleep Mode, come dice il nome stesso, è una modalità di funzionamento dei microcontrollori a bassissimo consumo di corrente.
È una modalità che viene generalmente usata nei sistemi alimentati a batteria in modo da preservarne la carica per il tempo più lungo possibile.

Il risveglio del microcontrollore può avvenire tramite un reset oppure tramite un interrupt, interno, ad esempio tramite il Watchdog oppure esterno tramite il cambio di stato di un pin.

Vedremo alcuni esempi di uso dello Sleep Mode e risveglio proprio tramite cambio di stato di un pin.

Continua a leggere Interrupt e Sleep Mode per scheda Digispark (Attiny85)

Semplice modo per modificare i file .po della libreria gettext e per generare i corrispondenti .mo

A volte capita di dover fare delle modifiche veloci ai file .po. Sono i file usati dalla libreria gettext per la localizzazione dei testi.

Esistono tantissimi modi per farlo. Io uso Gnu/Linux e quello che preferisco per la sua semplicità è modificare il file .po con un editor di testo, aprire una console ed eseguire il comando:

$ msgfmt -o messages_file.mo messages_file.po