Étape 5: Code de Python
Bibliothèque #import pour faire des requêtes http :
urllib.request #import pyserial bibliothèque importation #import série temps bibliothèque d’importation pour retards importation fois
#import analyseur de xml appelée minidom : xml.dom.minidom importons parseString
datamem = « 0 » datamem2 = « 0 »
#Initialize la connexion série COM3 ou quel que soit le port votre arduino utilise à 9600 bauds taux ser = serial. Série ("/dev/tty.usbmodem1411", 9600)
J’ai = 1 #delay pour stabilité tandis que la connexion est réalisée time.sleep(5) alors que je == 1: #download le fichier rss n’hésitez pas à mettre votre propre url de flux rss dans fichier ici = urllib.request.urlopen (http://www.nu.nl/feeds/rss/algemeen.rss) #convert de données de type chaîne = file.read() #close le fichier file.close()
#parse le code xml de la chaîne dom = parseString(data)
#retrieve la première balise xml (données) que l’analyseur détecte avec tagName nom changer tags pour obtenir les différentes données xmlTag = dom.getElementsByTagName('title')[1].toxml() # [2] indique la balise title 3ème il trouve sera analysée, comptage commence à 0
Si xmlTag! = datamem :
#strip au large de la balise (données---> données) xmlData=xmlTag.replace ('
'') #write le marqueur ~ à time.sleep(5) ser.write(b"~") série #split la chaîne en mots individuels nums = xmlData.split(' ') #loop jusqu'à ce que tous les mots en chaîne ont été imprimés pour num dans nums : #write 1 mot ser.write (octets (num, "UTF-8"))
# écrire 1 espace ser.write (octets (' ', "UTF-8"))
# LE RETARD N’EST NÉCESSAIRE. Il empêche le débordement de la mémoire tampon d’arduino. write # Time.Sleep(2) ~ à fermer la chaîne et de dire l’envoi d’informations arduino est fini ser.write(b"~") # attendre 5 minutes avant revérifiant RSS et renvoyer des données à Arduino
datamem = xmlTag time.sleep(30) d’autre : time.sleep(60)
#download le fichier rss n’hésitez pas à mettre votre propre url de flux rss dans fichier2 ici = urllib.request.urlopen ('https://www.facebook.com/feeds/notifications.php?id=someidhere & visionneuse = someviewer & key = somekeyhere & format = rss20 ") #convert à la chaîne des données2 = file2.read() #close le fichier file2.close()
#parse le code xml de la chaîne dom2 = parseString(data2)
#retrieve la première balise xml (données) que l’analyseur détecte avec tagName nom changer tags pour obtenir les différentes données xmlTag2 = dom2.getElementsByTagName('title')[1].toxml() # [2] indique la balise title 3ème il trouve sera analysée, comptage commence à 0
Si xmlTag2! = datamem2 :
#strip au large de la balise (données---> données) xmlData2=xmlTag2.replace ('
'') #write le marqueur ~ à time.sleep(5) ser.write(b"~") série #split la chaîne en mots individuels nums = xmlData2.split(' ') #loop jusqu'à ce que tous les mots en chaîne ont été imprimés pour num dans nums : #write 1 mot ser.write (octets (num, "UTF-8"))
# écrire 1 espace ser.write (octets (' ', "UTF-8"))
# LE RETARD N’EST NÉCESSAIRE. Il empêche le débordement de la mémoire tampon d’arduino. write # Time.Sleep(2) ~ à fermer la chaîne et de dire l’envoi d’informations arduino est fini ser.write(b"~") # attendre 5 minutes avant revérifiant RSS et renvoyer des données à Arduino
datamem2 = xmlTag2 time.sleep(120) d’autre : time.sleep(60)