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
subprocess importeren os importeren
#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:
strMarkerPing = ''
#if (een == een): # Controleer als host leeft met PING
strPingStates = "*,'
met open (os.devnull, "wb") als limbo: resultaat = subproces. Popen (["ping", "-c", "1", "-n", "-W", "2", "146.50.1.XXX"], stdout = limbo, stderr=limbo).wait() als resultaat: strPingStates = strPingStates + '0', anders: strPingStates = strPingStates + '1,'
met open (os.devnull, "wb") als limbo: resultaat = subproces. Popen (["ping", "-c", "1", "-n", "-W", "2", "145.18.1.XXX"], stdout = limbo, stderr=limbo).wait() als resultaat: strPingStates = strPingStates + '0', anders: strPingStates = strPingStates + '1,'
met open (os.devnull, "wb") als limbo: resultaat = subproces. Popen (["ping", "-c", "1", "-n", "-W", "2", "145.109.1.XXX"], stdout = limbo, stderr=limbo).wait() als resultaat: strPingStates = strPingStates + '0', anders: strPingStates = strPingStates + '1,'
met open (os.devnull, "wb") als limbo: resultaat = subproces. Popen (["ping", "-c", "1", "-n", "-W", "2", "145.18.1.XXX"], stdout = limbo, stderr=limbo).wait() als resultaat: strPingStates = strPingStates + '0', anders: strPingStates = strPingStates + '1,'
met open (os.devnull, "wb") als limbo: resultaat = subproces. Popen (["ping", "-c", "1", "-n", "-W", "2", ""], stdout = limbo, stderr=limbo).wait() als resultaat: strPingStates = strPingStates + '0', anders: strPingStates = strPingStates + '1,'
met open (os.devnull, "wb") als limbo: resultaat = subproces. Popen (["ping", "-c", "1", "-n", "-W", "2", ""], stdout = limbo, stderr=limbo).wait() als resultaat: strPingStates = strPingStates + '0', anders: strPingStates = strPingStates + '1,'
ser.write (bytes (strPingStates + '\n', 'UTF-8'))
#if (een == een):
#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 (bytes ("~" + '\n', 'UTF-8')) 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 (bytes ("~" + '\n', 'UTF-8')) # 5 minuten wachten voordat hercontrole RSS en opnieuw verzenden van gegevens naar de Arduino
datamem = xmlTag time.sleep(10) anders: time.sleep(10)
#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=XXX & viewer = XXX & sleutel = XXX & 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(10) anders: time.sleep(10)