Notifiche: Rss, WordPress e Gpio

Ciò che rende speciale il RaspberryPi sono le porte GPIO (General Purpose Input/Output) che gli permettono di interagire con il mondo reale (d’altronde la realtà è cio per percepiamo con i nostri limitati sensori/sensi), quindi è divertente sfruttarle il più possibile, anche perché la Cina ci fornisce tutti i sensi per il nostro micro computer a prezzi veramente alla portata di tutti, il mio negozio preferito è GearBest seguito da AliExpress, ma se ho fretta Amazon è sempre il top.

L’idea di oggi è più un esercizio per provare le comodissime librerie GpioZero e FeedParser, in sostanza facciamo cosi, leggiamo un Feed Rss a nostra scelta, in questo caso opto per i feed del Blog WordPress di RaspberryItaly.com , analizziamo i dati dell’ultimo articolo e in base all’autore facciamo lampeggiare un led o qualsiasi altra cosa tu voglia fare.

Partiamo dai requisiti Hardware:

RaspberryPi, io lo uso con Raspbian Lite

Un Led, valuta se serve una resistenza in base ai dati del Led

Un Pulsante

 

Requisiti Software:

Aggiorniamo: sudo apt-get update
Installiamo PIP per Python3: sudo apt-get install python3-pip
ATTENZIONE Python3 e Python2 NON sono pienamente compatibili, non mischiarli
Installiamo FeedParser: pip3 install feedparser
Nota che è Pip3 e non Pip
Installiamo le GpioZero: sudo apt-get install python3-gpiozero
Controlliamo che si siano installate: pip3 list

Preparazione dello Script:

Creiamo un file Notifiche.py e rendiamo eseguibile con
sudo chmod +x Notifiche.py

#!/usr/bin/python3 Precisiamo che deve usare Python3
import feedparser Importiamo il modulo FeedParser
from gpiozero import LED Importiamo Led e pulsante da gpiozero
from gpiozero import Button
b1 = Button(21) Assegnamo il nome b1 al pulsante con relativo pin
led = LED(5) Assegnamo il nome led al led con relativo pin

Leggiamo il Feed:

Sapendo che i feed di WordPress sono su http://sitoweb.com/feed usiamo
FeedParser per leggerli.
notizie = feedparser.parse('https://www.raspberryitaly.com/feed') Associa alla variabile notizie l’intero feed
data = notizie.entries[0].published legge la data dell’ultimo [0] feed
titolo = notizie.entries[0].title il titolo
autore = notizie.entries[0].author l’autore
sommario = notizie.entries[0].summary il sommario
le altre referenze sono http://pythonhosted.org/feedparser/reference.html

print (data, '\n', '\n', titolo, '\n','\n', autore, '\n','\n', sommario)
stampa a video i valori scelti, uno per riga

Creiamo una funzione per richiamarla a piacere

def avviso(): definisce il nome
    if 'Zzed' in autore: Se il testo Zzed è contenuto nella variabile autore
        led.blink(on_time=3) fa lampeggiare il led,acceso 3 MilliSecondi, spento 1

    elif autore is 'Gabriele Toselli': Altrimenti se c’è scritto Gabriele
                      led.blink(on_time=0.1, off_time=0.1) Lampeggia velocemente
else: se non trova nessun valore scelto
    print('niente') scrive “niente
avviso() Esegue la funzione
print('Autore:', autore)
b1.wait_for_press() Aspetta che il pulsante venga premuto
led.off() e poi spegne il led

Personalizzare, salvare e schedulare qb. 😀

Questo è un esempio semplicissimo, in un feed ci sono molte informazioni, aprilo con un browser e vedrai tutti i dati che puoi usare, leggi la documentazione di FeedParser e poi espandilo con tutte le modifiche che ti vengono in mente.

Spero di esserti stato utile, alla prossima.

Enrico Sartori

Riferimenti utili:
FeedParser:
WordPress Feed:
Feed RaspberryItaly.com
GpioZero
   Pulsanti
   Led
Il mio Profilo

 

#!/usr/bin/python3
import feedparser
from gpiozero import LED
from gpiozero import Button
b1 = Button(21)	
led = LED(5) 

# Legge i Feed
notizie = feedparser.parse('https://www.raspberryitaly.com/feed') 
data = notizie.entries[0].published
titolo = notizie.entries[0].title
autore = notizie.entries[0].author	
sommario = notizie.entries[0].summary	
# le altre referenze sono http://pythonhosted.org/feedparser/reference.html

print (data, '\n', '\n', titolo, '\n','\n', autore, '\n','\n', sommario)


def avviso():
 if  'Zzed' in autore:
  led.blink(on_time=3) 
  
 elif	autore is 'Gabriele Toselli':
  led.blink(on_time=0.1, off_time=0.1)

 else:
  print('niente')
		
avviso()

print('Autore:', autore)
button.wait_for_press()
led.off()

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *