Arduino nyhetsflödet anmälaren (5 / 6 steg)
Steg 5: Python code
#import bibliotek att göra http-förfrågningar:
importera urllib.request #import pyserial biblioteket importera följetong #import tid bibliotek för förseningar import tid
#import XML-tolken kallas minidom: från xml.dom.minidom importera parseString
datamem = "0" datamem2 = "0"
#Initialize seriell anslutning i COM3 eller vad port din arduino använder på 9600 baud rate ser = följetong. Följetong ("/dev/tty.usbmodem1411", 9600)
Jag = 1 #delay för stabilitet medan anslutning är uppnås time.sleep(5) medan jag == 1: #download RSS-filen Känn dig fri att sätta din egen RSS-url i här fil = urllib.request.urlopen ('http://www.nu.nl/feeds/rss/algemeen.rss') #convert till strängdata = file.read() #close fil file.close()
#parse xml från sträng dom = parseString(data)
#retrieve första XML-taggen (data) att tolken fynd med namnet tagName ändra Taggar för att få olika data xmlTag = dom.getElementsByTagName('title')[1].toxml() # [2] anger 3. rubriktaggen påträffas kommer att parsa, räknar börjar på 0
om xmlTag! = datamem:
#strip off etiketten (data---> data) xmlData=xmlTag.replace ('
'') #write markören ~ till följetong ser.write(b"~") time.sleep(5) #split strängen i enskilda ord tal = xmlData.split(' ') #loop tills alla ord i strängen har skrivits ut för num i tal: #write 1 ordet ser.write (byte (num, 'UTF-8'))
# Skriv 1 utrymme ser.write (byte (' ', 'UTF-8'))
# FÖRSENINGEN ÄR NÖDVÄNDIGT. Det förhindrar spill av arduino bufferten. Time.Sleep(2) # skriva ~ nära strängen och berätta är arduino information skicka färdiga ser.write(b"~") # vänta 5 minuter innan efterkontroll RSS och skicka data till Arduino
datamem = xmlTag time.sleep(30) annat: time.sleep(60)
#download RSS-filen är välkommen att lägga din egen RSS-url i här file2 = urllib.request.urlopen ('https://www.facebook.com/feeds/notifications.php?id=someidhere & viewer = someviewer & key = somekeyhere & format = rss20') #convert att sträng data2 = file2.read() #close fil file2.close()
#parse xml från sträng dom2 = parseString(data2)
#retrieve första XML-taggen (data) att tolken fynd med namnet tagName ändra Taggar för att få olika data xmlTag2 = dom2.getElementsByTagName('title')[1].toxml() # [2] anger 3. rubriktaggen påträffas kommer att parsa, räknar börjar på 0
om xmlTag2! = datamem2:
#strip off etiketten (data---> data) xmlData2=xmlTag2.replace ('
'') #write markören ~ till följetong ser.write(b"~") time.sleep(5) #split strängen i enskilda ord tal = xmlData2.split(' ') #loop tills alla ord i strängen har skrivits ut för num i tal: #write 1 ordet ser.write (byte (num, 'UTF-8'))
# Skriv 1 utrymme ser.write (byte (' ', 'UTF-8'))
# FÖRSENINGEN ÄR NÖDVÄNDIGT. Det förhindrar spill av arduino bufferten. Time.Sleep(2) # skriva ~ nära strängen och berätta är arduino information skicka färdiga ser.write(b"~") # vänta 5 minuter innan efterkontroll RSS och skicka data till Arduino
datamem2 = xmlTag2 time.sleep(120) annat: time.sleep(60)