Vi får mange henvendelser fra folk, der gerne vil have udviklet en app, som sætter en iPhone eller en iPad i stand til at kommunikere med et stykke hardware. Det kan være alt fra en espressomaskine eller en tørretumbler til en cykelcomputer eller regnvandsmåler.
Og det er en fremragende idé! En iPhone har en stor berøringsfølsom skærm og er et godt alternativ til en dedikeret kontrolenhed: udover skærm og multi-touch-interface, er der indbygget GPS, Wi-Fi, kamera, mikrofon, højttaler, accelerometer og gyro, SMS og mobiltelefon.
Og man har altid sin telefon på sig eller i nærheden.
Et eksempel på denne trend er, at firmaet Sonos, som laver trådløse musikanlæg, har besluttet helt at holde op med at lave deres egne controllere og vil for fremtiden kun benytte smartphones som controllere. (læs mere her). Og deres controllere er ellers glimrende. Men hardwaren i en iPhone eller iPod touch er endnu bedre. Og meget billigere…
I dette indlæg vil jeg gennemgå, hvordan man kan få en app til at snakke sammen med et stykke hardware.
Der er flere forskellige måder at integrere en iPhone eller iPad til eksternt hardware på. De mest brugte er:
1) Apples MFi-program
Den “rigtige” måde at gøre det på er ved at tilmelde sig Apples MFi-program. “MFi” står for Made for iPhone, Made for iPod eller Made for iPad.
Når man er registreret som MFi-udvikler, har man adgang til teknisk information og mulighed for at købe hardware, som gør det muligt at lave apps, som bruger enten Bluetooth eller stikket i bunden (“dock connector”) til at kommunikere med eksterne enheder.
Uheldigvis gør Apple det ikke nemt at blive medlem af MFi-programmet. De skal godkende ansøgerne, og man skal have forretnings- og udviklingsplaner klar. Og man skal betale for det. Og det er stort set umuligt at finde noget information om MFi-programmet, og hvilke krav og priser der er gældende. Det skyldes, at Apple gerne vil have, at det kun er “seriøse” firmaer med “modne” produkter, som bliver godkendt af Apple som “Made for iPhone”.
Desuden skal alle enheder indeholder en særlig chip fra Apple – som koster penge, og som stiller krav til den hardware, man bruger.
Fordele:
+ Giver den bedste brugeroplevelse, fordi det er meget nemt at parre en iPhone og en ekstern enhed.
+ Virker enten trådløst med Bluetooth eller med kabel via en dock connector.
Ulemper:
÷ Man skal være med i MFi-programmet.
÷ Nødvendig hardware og godkendelser koster en hel del.
÷ Alle enheder skal indeholde en Apple iAP-autentificeringschip.
÷ Svært at finde information: alt om MFi er dækket af fortrolighedsaftaler, så det er meget svært at finde konkrete priser osv.
Eksempler:
iHome iA17 clockradio-vækkeur
Sony S300BTX Bluetooth bilradio
2) Wi-Fi-modul
En anden mulighed er at lave en enhed, der kan kommunikere via Wi-Fi. Det er ret enkelt at lave en app, der bruger almindelige internet-protokoller (HTTP, TCP eller UDP) til at hente og sende data fra og til en ekstern enhed, der grundlæggende fungerer som en lille webserver.
Til gengæld kræver det, at iPhonen er tilsluttet det samme trådløse netværk som enheden. Det kan enten være enhedens eget netværk, eller det kan være et eksisterende netværk, som enheden også er koblet på. Og desværre er det ikke muligt at lave en app, som selv skifter til et bestemt netværk. Det skal brugeren selv gøre ved at gå ind i telefonens indstillinger.
Fordele:
+ Trådløs forbindelse. Endda med længere rækkevidde end Bluetooth.
+ Enheder kan kobles sammen med eksisterende Wi-Fi-netværk.
Ulemper:
÷ Bruger skal manuelt skifte Wi-Fi-netværk for at forbinde; det giver en kluntet brugeroplevelse.
÷ Ikke helt billigt: et Wi-Fi-modul koster ml. 100 og 300 kroner.
Eksempler:
AR.Drone fjernstyret helikopter
Sonos flerrums trådløst musiksystem
3) Audio
Det er jo både højttaler og mikrofon i hovedtelefonstikket, så det er faktisk muligt at sende og modtage information på den måde. iPhonen kommer til at fungere som et modem (for dem af jer, der er gamle nok til at huske den slags forældet teknologi).
Men fordi det går så langsomt, er det reelt kun en farbar vej for enheder, der skal overføre meget lidt information til iPhonen.
De teknisk interesserede kan læse mere her: Sensor Data to iPhone Through the Headphone Jack
Fordele:
+ Det er billigt
Ulemper:
÷ Information sendes og modtages meget langsomt. Kun ca. 5-10 tegn i sekundet!
÷ Det er ikke trådløst: enheden skal være forbundet via hovedtelefonstikket.
Eksempler:
Square kreditkortlæser
4) Bluetooth LE
En helt ny måde at kommunikere med eksterne enheder på er ved hjælp af Bluetooth Low Energy. Det er understøttet i iOS 5, og det er ikke nødvendigt at tilmelde sig MFi-programmet for at benytte Bluetooth LE.
Men der er et par ulemper:
÷ Det virker kun på iPhone 4S med iOS 5 eller nyere.
÷ Det kræver specielle (dvs. dyrere) Bluetooth LE-moduler.
Til gengæld er der også en masse fordele. Læs fx her Bluetooth 4.0 Solutions for Apple iOS Devices og her The amazing iOS 5 API nobody talks about .
Hej,
Tusind tak for artiklen! Det var lige hvad jeg manglede. Det er svært nok at finde noget om emnet på engelsk – så at finde noget på dansk er helt fantastisk.
Jeg står og skal igang med et projekt (iPad app), og jeg tror at et stykke ekstern hardware vil løfte hele projektet. Det jeg har brug for, i første omgang, er noget i stil med en guitar-pedal. Dvs. jeg har brug for en klods med en enkelt knap. Om den er trådløs eller ej er helt ligegyldigt.
Efter at have læst indlægget her, forestiller jeg mig at det vil være passende (på alle måder: nemmest, billigst, etc.) at bruge audio-indgangen. Er det rigtigt antaget?
Et andet spørgsmål er, hvor mange forskellige kommandoer man kan sende gennem den kanal? Altså, hvis jeg får brug for at lave en klods med fire knapper, vil jeg så stadig kunne bruge audio-indgangen til kommunikation?
Sidst, men ikke mindst: Ved du/I om delene der skal bruges et let tilgængelige og billige i Danmark?
Mvh
Tor
Hej Tor
Hvis det bare handler om at sende en helt simpelt kommando (fx “der er trykker på knappen”), så er audio-indgangen fin at bruge. Og som der står, så kan der ca. overføres 5-10 tegn i sekundet, men ét tegn kan indeholde op til 256 forskellige kommandoer, så det kan sagtens være, at det er nok.
Og ja: alle delene er let tilgængelige i Danmark. Se på indlægget om “Sensor data to iPhone Through the Headphone Jack”, hvor der står, hvad du skal bruge. Og der er masser af elektronikforretninger, hvor du kan købe de nødvendige dele.
mvh,
Jens W.