Sensornätverk för dummies

Sun Microsystems har tillkännagivit ett projekt som kan ge lätthanterliga sensornätverk i händerna på vanliga datorprogrammerare över hela världen – vilket hjälper till att göra nätverksanslutna sensorer mer utbredda. En värld full av sensorer är en värld där till exempel byggnadsklimatet är mikrokontrollerat, rum vaknar till liv med ljus och musik när människor kommer in i dem och hälsan hos äldre familjemedlemmar övervakas på avstånd.





I maj kommer företaget att börja sälja sin egen sensorhårdvara – prylar storleken på en liten kortlek som kan konfigureras för att känna av temperatur, ljus och rörelse – samt ett operativsystem som använder det vanliga datorspråket Java, som redan har en programmerarebas på över fyra miljoner människor. Enligt företaget kan detta sensorutvecklingspaket, kallat Sun SPOT (Small Programmable Object Technology), skapa innovativa sensorapplikationer och påskynda lösningar på några av de kvardröjande utmaningarna – som att utveckla och felsöka sensorprogram – som hittills har behållit teknologin från att vara allestädes närvarande.

[ Klicka här för bilder av en Sun SPOT-sensor och dess komponenter.]

Sensornätverk är samlingar av noder, ibland så små som millimeter i längd eller diameter, som består av små datorprocessorer, minnesenheter och radioapparater som sänder och tar emot information mellan enheter. Dessa nätverk lovar mycket för att utföra uppgifter som att övervaka och reglera de tuffa miljöerna i industrianläggningar, kontrollera hem- och kontorsklimatet (se Where Sensors Make Sense) och spåra paketens tillstånd.



Mycket forskning inom detta område har utförts under de senaste åren (se 10 nya teknologier som kommer att förändra världen ), från företag inklusive Sun, Intel och Siemens, till akademiska program vid University of California i Berkeley och Los Angeles och Harvard Universitet, för att nämna några. Och startups, som t.ex Mänsklig och Armborstteknik , säljer tekniken för tillämpningar som sträcker sig från bildiagnostik till slagfältsövervakning.

Även med så mycket uppmärksamhet förblir dagens sensorer notoriskt svåra att utveckla och felsöka, säger Roger Meike, senior director på Sun Labs. För det mesta förblir pyssel med en sensors funktionalitet en specialiserad uppgift, överlåten till datavetenskapsexperter.

Att programmera sensorer är så svårt, delvis för att många av dem använder ett operativsystem som heter TinyOS. Även om det är mjukvarugrunden för tusentals sensorforskningsprojekt, kräver det kunskap om det relativt komplexa programmeringsspråket C. Vad värre är, när ett TinyOS-program väl har etablerats för ett sensornätverk är det mer eller mindre permanent, förklarar Mani Srivastava , en elektroingenjör vid UCLA. Om du vill modifiera en liten del av nätverkets funktion, säger han, måste du börja om. Dessutom måste varje detalj av sensorn noggrant beaktas vid programmering, från när ström ska sparas till hur många beräkningar som ska göras innan data skickas över nätverket.



Java – ett programmeringsspråk som utvecklades på Sun 1990 – ger några tydliga fördelar, säger Roger Meike, senior director på Sun Labs. För det första är det välkänt för en stor gemenskap av programmerare, och det har redan varit framgångsrikt i applikationer för andra små enheter som mobiltelefoner.

Men till skillnad från mobiltelefoner kör Java för Sun SPOT-sensorer, kallade Java 2 Micro Edition, direkt på hårdvaran och fungerar som ett operativsystem. Det betyder att Java-programmerare kan skriva ett program, ladda det på enheten, köra det och felsöka det, med grundläggande programmeringskunskaper i Java, säger Meike. Hårdvaran och mjukvaran är designad för att fungera tillsammans, säger han, vilket gör att Java-sensorerna enkelt kan konfigureras om till olika uppgifter, till skillnad från TinyOS. Java hanterar även strömresurser bra, enligt Meike, en viktig funktion, eftersom vissa sensorer måste vara på hela tiden. Java har kontroll över ett litet batteri och det kan vara väldigt smart om när man ska lägga systemet i vila, säger han.

Sun SPOTs Java får direkt slut på flashminne, en typ av lagring som inte använder lika mycket ström som RAM-minne. Detta minskar behovet av vaksamhet kring hur man bäst fördelar resurser. Dessutom tillåter Java-plattformen att applikationer stoppas mitt i driften och flyttas till en annan enhet, förklarar Meike. Så du kan föreställa dig att om batteriet dör på en enhet kan du flytta din applikation till en annan.



Denna mobilitetsfunktion är särskilt viktig för att felsöka sensorns hårdvara och mjukvara, vilket är mycket en mardröm, säger Srivastava, som har utvecklat ett sensoroperativsystem vid UCLA som heter SOS . Buggar kan verkligen få ner något, tillägger han. Därför är det användbart att kunna överföra en felaktig applikation till en dator där den kan åtgärdas, något Sun SPOT kan göra.

Men Srivastava noterar också att Java är ett tungt programmeringsspråk, vilket betyder att det kräver mer minne än TinyOS eller SOS. I själva verket kräver Suns nya sensorer en 32-bitars centralenhet, till skillnad från 8-bitars sensorprocessorer som kan köra TinyOS. Dessutom har Suns sensorer 512 kilobyte RAM, 4 megabyte flashminne, en 2,4 gigahertz radio och ett USB-gränssnitt – vilket gör dem till veritabla goliater jämfört med de flesta sensorer.

Men stora sensorer kan vara användbara, säger Matt Welsh , professor i datavetenskap vid Harvard. Det är uppenbart att i alla verkliga applikationer kommer du att få en mångfald av enheter, säger han. Du kanske har ett stort antal trådlösa sensorer med mycket låg effekt, men du behöver också enheter som kan samla in information, bearbeta och samla data. Sun SPOT-enheten ser ut att kunna vara en bra kandidat för den trådlösa enheten. Det är dock osannolikt, säger han, att Java kommer att ersätta TinyOS eller SOS för de minsta sensorerna.

Suns Meike förväntar sig att processorer, minnesenheter och radioapparater kommer att fortsätta att krympa och att Suns sensorer inte kommer att vara så stora om ett par år. Trenderna säger oss att dessa enheter kommer att bli mer kapabla, konstaterar han. Under tiden, säger Meike, kommer de smarta applikationerna som Java-programmerare kommer att skapa redo för framtida generationer av mindre sensorer.

Meike tror att lek med sensorer kommer att erbjuda en övertygande upplevelse för Java-amatörer och studenter. Det gör att Java-programmerare kan ha en enhet som får plats i deras handflata, säger han. Istället för att programmera stationära datorer kan de programmera hela världen.

Dölj