Stap 5: Python code
#import bibliotheek te doen van http-verzoeken:
urllib.request #import pyserial seriële #import tijd-bibliotheek bibliotheek importeren importeren voor vertragingen importeren keer
#import xml parser genoemd minidom: importeren uit xml.dom.minidom parseString
datamem = "0" datamem2 = "0"
#Initialize voor de seriële verbinding in COM3 of welke poort je arduino gebruikt op 9600 baud rate ser = seriële. Serieel ("/dev/tty.usbmodem1411", 9600)
Ik = 1 #delay voor stabiliteit terwijl er verbinding is bereikt time.sleep(5) terwijl ik == 1: #download de rss-bestand voel je vrij om uw eigen rss-url in hier bestand zetten = urllib.request.urlopen ('http://www.nu.nl/feeds/rss/algemeen.rss') #convert op tekenreeksgegevens = file.read() #close het bestand file.close()
#parse uit de reeks xml dom = parseString(data)
#retrieve het eerste XML-code (data) waarmee de parser met naam tagName gezocht wijzigen tags om verschillende gegevens xmlTag = dom.getElementsByTagName('title')[1].toxml() # de [2] geeft aan de 3e title-tag wordt gevonden zal worden ontleed dat, tellen begint bij 0
Als xmlTag! = datamem:
#strip uit de tag (gegevens---> gegevens) xmlData=xmlTag.replace ('
'') #write de markering ~ naar seriële ser.write(b"~") time.sleep(5) #split de tekenreeks in afzonderlijke woorden nums = xmlData.split(' ') #loop tot alle woorden in de tekenreeks zijn afgedrukt voor num in nums: #write 1 woord ser.write (bytes (num, 'UTF-8'))
# schrijven 1 ruimte-ser.write (bytes (' ', 'UTF-8'))
# DE VERTRAGING IS NOODZAKELIJKE. Het voorkomt de overloop van de buffer van de arduino. time.Sleep(2) # schrijven ~ sluiten de tekenreeks en vertellen voor het verzenden van een arduino-informatie is klaar ser.write(b"~") # 5 minuten wachten voordat hercontrole RSS en opnieuw verzenden van gegevens naar de Arduino
datamem = xmlTag time.sleep(30) anders: time.sleep(60)
#download de rss-bestand voel je vrij om uw eigen rss-url hier file2 = urllib.request.urlopen ('https://www.facebook.com/feeds/notifications.php?id=someidhere & viewer = someviewer & key = somekeyhere & format = rss20') #convert naar string data2 = file2.read() #close het bestand file2.close()
#parse de xml van de tekenreeks dom2 = parseString(data2)
#retrieve het eerste XML-code (data) waarmee de parser met naam tagName gezocht wijzigen tags om verschillende gegevens xmlTag2 = dom2.getElementsByTagName('title')[1].toxml() # de [2] geeft aan de 3e title-tag wordt gevonden zal worden ontleed dat, tellen begint bij 0
Als xmlTag2! = datamem2:
#strip uit de tag (gegevens---> gegevens) xmlData2=xmlTag2.replace ('
'') #write de markering ~ naar seriële ser.write(b"~") time.sleep(5) #split de tekenreeks in afzonderlijke woorden nums = xmlData2.split(' ') #loop totdat alle woorden in de tekenreeks zijn afgedrukt voor num in nums: #write 1 woord ser.write (bytes (num, 'UTF-8'))
# schrijven 1 ruimte-ser.write (bytes (' ', 'UTF-8'))
# DE VERTRAGING IS NOODZAKELIJKE. Het voorkomt de overloop van de buffer van de arduino. time.Sleep(2) # schrijven ~ sluiten de tekenreeks en vertellen voor het verzenden van een arduino-informatie is klaar ser.write(b"~") # 5 minuten wachten voordat hercontrole RSS en opnieuw verzenden van gegevens naar de Arduino
datamem2 = xmlTag2 time.sleep(120) anders: time.sleep(60)