Natur Tracker: mappningen med Intel Edison (3 / 7 steg)

Steg 3: kodning




All kodning i detta instructable gjordes av min medarbetare på detta projekt: dennishore, python guru och elektronik entusiast. Jag kommer att vända saker till honom för detta steg och steg 6: rapport. Han har har gått med på att besvara frågor och all kod i slutet av detta steg och steg 6.

Sensorer och anslutningar

Grove temperaturgivare - AI0
Grove roterande potentiometer - AI1
Grove ljussensor - AI2
Grove ljud sensor - AI3
Grove 16 x 2 LCD-display - I2C bussen
Grove LED - digital 2
Grove knapp - digital 3
Grove Summer - digital 4
Grove GPS - UART

GPS kommunicerar som en seriell enhet. Grove GPS sida (som sidan likvärdiga för alla Grove sensorer) har en Arduino och en Raspberry Pi del. För andra sensorer, jag hade en bra gissning om hur man gör det på Edison utifrån anslutning från avsnittet Arduino och kommandon baserat på Raspberry Pi python moduler. Men detta skilde sig för GPS. För tydlighetens skull är det uppdaterade SIM28 GPS-modulen. I slutändan, det fungerar anslutna till UART på Grove skölden och initieras:

UART = mraa. UART(0)
ser = följetong. Serial(UART.getDevicePath(), 9600)

SIM28 specifikationer har angett att starta upp tid kan vara så kort som en sekund (varma och internet hjälp), eller så länge som 32 s (kallt och utan internet). Den mest utmanande (pågående) delen av detta projekt har varit att felsöka vad är en (1) GPS fel, (2) seriell port läst fel, (3) GPS-data parsning problem. Parsning görs för närvarande med modulen pymnea2. Den kompletta initieringsrutinen är

Temp = mraa. AIO(0)
kruka = mraa. AIO(1)
ljus = mraa. AIO(2)
ljud = mraa. AIO(3)
Visa = lcd. Jhd1313m1 (0, 0x3E, 0x62)
display.setColor (100, 0, 0)
LED = mraa. Gpio(2)
LED.dir (mraa. DIR_OUT)
knappen = mraa. Gpio(3)
summern = mraa. Gpio(4)
BUZZER.dir (mraa. DIR_OUT)
B = 3975.
UART = mraa. UART(0)
ser = följetong. Serial(UART.getDevicePath(), 9600)
typer = "turdstool röksvamp logOysters deathcap fungweed minishrooms'.split()
Discovery = {}
för t i typer:
Discovery [t] = 0

Detta omfattar definition av kategorier. Eftersom vi använder roterande potentiometer Grove (och inte en rotationsencoder), har vi begränsat vinkelformig upplösning. Sex kategorier kan enkelt väljas på LCD-skärmen genom att vrida vredet, men vi kunde sannolikt hysa upp till ~ 15 utan att ha valen vara för nära varandra. Koden sedan försöker en inledande GPS fix:

fixa = False
attemps = 0
medan fix == False:
försök:
gpsTime, lat, lon, framtidsforskare, nsats = getGpsData()
testa = '%8 .4f' % float(lat) # får jobbet gjort
fixa = sant
skärmen ('natureTracker', ' ver 0.1')
BUZZER.write(1)
Time.Sleep(.1)
BUZZER.write(0)
Time.Sleep(3)
utom:
skärmen ("initiera GPS", "%d sats... %d ' % (nsats, attemps))
Time.Sleep(5)
attemps += 1

Oändlig loop är bruten när data från mer än två satelliter returneras. Framgång är ett mått av tolkning av latitude datan i en flottör. Underlåtenhet att göra detta kan tyda på olika typer av GPS fel, inklusive seriell kommunikationsfel. När en fix har fastställts, används aktuell tid för systemet att initiera loggfilen:

inledande = datetime.datetime.now()

Core algoritmen är då:

# händelse röstningen
Jag = 0
samtidigt sant:
# scan för tryck på knapp
plockade = pick(pot.read())
om button.read():
Discovery [tog] + = 1
# uppdatering display
skärmen (plockade,'> %s' % discovery[picked])
# uppdateringsloggen
om jag > 10:
data = getData()
recordData (data, discovery)
Jag = 0

# spenslig försening
Time.Sleep(0.5)
Jag + = 1

Halv-sekunders fördröjning ger viss stabilitet för att registrera knappen tryck på händelserna, utan ett finare sätt att avvisa flera tryck på händelser. Detta fungerar också som tiden bas för inspelning av data, för närvarande inställd 10 gånger detta mellanrum (ca var 5 sekunder). Detaljer för plockning, skärmen, getData och recordData funktioner kan ses i den fullständiga koden bifogas i slutet av detta avsnitt.

För tillfället LED vändna av/blinkar när det förlorar sin GPS-fix, eller om antalet satelliter sjunker under 2. Under dessa tider är det fortfarande möjligt att registrera fältdata med alla sensorer utom GPS, dvs inte latitud, longitud och höjd för de datapunkterna. Tabellen Sammanfattning produceras från utdata visar hjälpmedel för data, med hänsyn till om höjd var tillgängliga eller inte. Genom att observera staten LED innan du registrerar data, ger detta möjlighet att vänta (ibland bara några sekunder) för att få GPS-data tillgängliga. Naturligtvis visas datapunkter utan GPS inte på kartan.

Fullständiga koden är länkade nedan.

Starta automatiskt vid uppstart (huvudlösa)

Eftersom vi kräver data collection programmet ska starta så snart makten är ansluten (och starta om om vi måste byta batterier i fältet), kräver vi att python programmet startar på när Edison klar dess startsekvensen.

Cat /etc/init.d/go.sh
#! / usr/bin/env sh
python natureTracker.py

chmod + x go.sh
uppdatera-rc.d go.sh försummelsen

Se Steg
Relaterade Ämnen

IoT RC bil med Intel Edison (IntelIoT)

FörordLåt oss först förstå vad vi försöker uppnå här. Vi har alla typer av RC leksaker för våra barn och sedan finns det video och mobila spel. En detta är säkert att alla bara älskar bilar, oavsett om det är verkligt eller i 3D-spel eller en leksaks...

Komma igång med Intel Edison - Python programmering

Denna guide är för alla er python programmerare som har alltid undrat,vad är det bästa sättet att komma in i "IoT"(Internet of Things) , nu sedan du har gjort det till den här sidan, köpa dig en Intel Edison från Amazon eller online lagra som Ad...

Automatiserad studiemiljö med Intel Edison

I detta projekt ska jag visa dig hur man gör en automatiserad studiemiljö med Intel Edison!Intel-Edison använder flera sensor för att övervaka miljön i ditt studierum. Edison optimerar miljön på ditt rum som passar dina angivna parametrar för att stu...

Dagis övervakning och spårning System med Intel Edison Development Kit

Vi har byggt ett dagis övervakning och spårning system med Intel Edison styrelsen tillsammans med Bluetooth låg energi (BLE) enheter och en USB-kamera. Det är en demonstration av hur lätt Intel Edison DevKit kan användas för att bygga en lösning till...

Anslutning av Intel® RealSense™ 3D-kamera med Intel® Edison

Intel® har infört många stor innovation. En är Intel® RealSense™ teknologi med Intel® RealSense™ 3D kameror och SDK; Vi kan skapa program som kan utföra gest upptäckt, ansikts analys, bakgrunden segmentering, röstigenkänning, röst-syntes, och mer, SD...

Audio Server och inspelare med Intel Edison

En av de bästa sakerna med Intel Edison är att den kan fungera som en server. Detta innebär att du kan lagra filer och dela dem om du vill. Detta en stor möjlighet för curating spellistor och lagra andra ljudfiler. Detta kan typ av ses en digital ver...

Automatiserad vattning av krukväxter med Intel Edison

Automatiserade vattna krukväxter med Intel Edison... En fukt Sensor känner av den låga fukthalten i jord och aktiverar vattenpumpen eller magnetventilen som styr flödet av vatten. När det krävs vattnet pumpas till växterna, sensorn automatiskt stanna...

Gest baserat Home Automation med Intel Edison (Intel IoT))

Gest baserade hemautomation är det nya sättet att interagera med elektriska apparater tillgängliga på vårt hus. I detta projekt kommer vi att använda sensorer i stället för kamera för gestigenkänning, eftersom det ger bättre konsistens, miljö oberoen...

Grundläggande Internet saker ram med Intel Edison

Sakernas Internet stacken kan innebära sensorer, små datorenheter, Cloud Computing tjänster och API: er. För de flesta nybörjare är genomförande av var och en av dessa delar var för sig billigt och enkelt, med flera tillgängliga alternativ för prisvä...

Intellekten IoT EDI - övervakning en bekväm och säker miljö (med Intel Edison)

Innan för att starta, jag skulle vilja tacka Intel och Instructables för tillfället: Jag har valts bland annat vinnaren av en fantastisk Intel IoT Edison & Grove Kit... Det var mycket förvånande för mig, och jag är mycket tacksam för det. Tack! :-)In...

Smart Lock med Intel Edison

I detta projekt har vi använt en Intel Edison för att göra en smart lås låda. Detta är främst eftersom vi kan integrera ett ljudkort, finger avtrycken sensoren och nödsänkningssolenoiden lås på enklast möjliga sätt. En annan viktig användning av att...

Lösa Sudoku med Intel Edison

Mål• Från en bild av en Sudoku pussel, extrahera och (valfritt) lösa pussel.Målet element• Packa pussel från bilden (omforma bilden).• Identifiera talen i varje cell. – Korrelera nummer till deras respektive cell position.• (valfritt) lösa pussel och...

Flux kondensator dörrklocka med Intel Edison

Sedan jag var barn, är tillbaka till framtiden min favorit film, alla tre. För vem vet filmen, är flux kondensatorn primära utrustningen i Time Machine. Flux kondensatorn är vad gör tiden resa möjlig.År 2015 är året Marty McFly besöket framtid, och j...

Att skapa en digital termometer med Intel Edison

Först och främst vill jag tacka Instructables och Intel för att ge mig Intel edison med startpaket. Detta Instructable handlar om att skapa digital termometer (med intel edison). Att göra digitala termometer är ganska enkel och kan göras av alla som...

Telefon styrs garageporten, drivs med Intel Edison Blynk & Arduino

Automatiserad produkter har blivit vanligare och lösningar som är billiga finns i vissa områden, ett exempel kan vara inomhus blixt eller automatiska timers. Men om du vill att en garageport som kan öppnas med en telefon och inte vill betala för nya...

Smart TV-fjärrkontrollen med Intel Edison (Intel IoT)

IR sändare/mottagare TSOP1738 kan vara gränssnitt med Intel Edison med PWM gränssnitt finns i libmraa bibliotek.Detta kan användas i samband med USB-mikrofon för att styra TV voulme under kontroll när som helst.Normalt när annons gäller mellan vanlig...

Textilen dörrmatta med Intel Edison

Dörrklockor är så gammaldags. Vem vill lita på förbrukaren insatsen för att berätta när någon är på din dörr när du kan använda en mikrokontroller att berätta?I detta projekt kommer vi att bygga en tryckgivare som lever under din dörrmatta. När tryck...

Telegram med Intel Edison och Python

Detta instructables visar hur du konfigurerar Yocto pakethanteraren och använder ett Telegram bot Python bibliotek. Även om Intel Edison är styrelsens mål, är det möjligt att anpassa följande steg för att en liknande maskinvara.Steg 1: Komma igång me...

Komma igång med Intel® Edison Mini Breakout ombord

Intel erbjuder 2 olika hårdvaruplattformar att arbeta med Intel® Edison utveckling styrelse.Core modulen av Intel® Edison kallas Intel® Edison beräkna modul, medan 2 förlängning styrelser kallas Intel® Edison Arduino ombord Intel® Edison Breakout sty...