Intellekten Galileo-väderstation (3 / 5 steg)
Steg 3: Ladda upp filer
1. hitta ut Galileos IP-Adress
- Ladda upp filen getIP.ino med Arduino IDE till Galileo och utföra det
- Glöm inte att koppla in Ethernet-kabeln ;)
- Öppna "Serial Monitor" [STRG + Skift + M] och ange baudvärde till 9600
2. Ladda upp filer
Windows:
- Hämta och installera Winscp
- Ladda upp weather.py filen / home/root/på Galileo
- Gör samma sak med den config.txt och mail.py
Linux:
- Typ
SCP /path/to/your/file/weather.py roten /path/to/your/file/config.txt rot
på konsolen
Weather.py:
#!/bin/python2.7
importera sys
importera urllib2
importera xml.etree.ElementTree som ET
om (len(sys.argv) < = 1):
# Inga argument ges. Så använder vi Aachen som standard plats
staden = "Aachen"
annat:
# Annars givet staden
staden = sys.argv[1]
# Ladda ned från openweathermap nuvarande vädret som xml
försök:
svar = urllib2.urlopen ('http://api.openweathermap.org/data/2.5/weather?q=' + city +'& mode = xml & enheter = metriska & lang = de', timeout = 10)
utom urllib2. URLError:
# På timeout stoppa script och returnera fel
sys.Exit(-1)
# Init i XML-tolken med vår nedladdade text
rot = ET.fromstring(response.read())
# Ta reda på några intressanta värden
Temp = root.find('temperature').get('value')
moln = root.find('clouds').get('value')
# nederbörd är en bit dificult. Antingen är det inställt till ingen...
om (root.find('precipitation').get('mode') == "nej"):
regn = 0
annat:
#... malm en värde ges
regn = root.find('precipitation').get('value')
# Nu vi pint våra parsade värden, så det är möjligt att läsa dem av
# Arduino skiss
skriva ut temp
skriva ut moln
skriva ut regn
Mail.py
#!/bin/python2.7
importera sys
importera smtplib
# Gör några config här
SMTPServerUrl = "www.host.com"
SMTPServerPort = 25
SMTPUsername = "användarnamn"
SMTPPassword = "lösenord"
E-postadress = "your.mail
ANGÅENDE = "Väder information"
# Check tanke parametrar
om (len(sys.argv) < = 2):
skriva ut "användning: [rikta e-addr.] [meddelande]"
sys.Exit(-1)
# Nästa försök att ansluta till servern
försök:
Server = smtplib. SMTP (SMTPServerUrl, SMTPServerPort)
Server.Login (SMTPUsername, SMTPPassword)
utom:
# Skriv ut några felmeddelanden
skriva ut "Fel anslutning"
sys.Exit(-1)
# Nu försöka skicka våra visst meddelande
försök:
meddelande = "ämne:" ämne "\n" + + sys.argv[2]
Server.sendmail (e-postadress, sys.argv[1], meddelande)
utom:
# Skriv ut några felmeddelanden
skriva ut "Fel skickar"
sys.Exit(-1)
# Äntligen koppla
Server.quit()
config.txt:
Aachen
Aachen; 0; 30; 0; 100; 1; 100; det regnar. Ta ett paraply med.; Your.mail
Aachen; 18; 30; 0; 33; 0; 0; Vädret är soligt. Du kan lämna din jacka hemma.; Your.mail
getIP.ino:
void setup() {
Ange baudvärde
Serial.BEGIN(9600);
}
void loop() {
Utföra ifconfig och rör allt till seriell utgång
system ("ifconfig & > /dev/ttyGS0");
Vänta lite tid
Sleep(5);
}