Lav en Android App til at styre via Bluetooth en Arduino, der styrer dit hus via RF, alt sammen med AppInventor: 6 trin

Lav en Android App til at styre via Bluetooth en Arduino, der styrer dit hus via RF, alt sammen med AppInventor: 6 trin

Indholdsfortegnelse:

Anonim

Jeg ved, at titlen er ganske mundfuld, men det er præcis, hvad det er.

For en tid siden lavede jeg en instruerbar beskrivelse af et kredsløb omkring en atmega328 (eller en 'Arduino'), der skulle afskrække burglars ved at simulere mig at være hjemme.

Efterhånden blev systemet udvidet til et "home automation" -system, som det også omfattede at tage vare på min have.

Selvom det kunne fungere helt alene, tilføjede jeg en Bluetooth-grænseflade for at få nogle feedback fra systemet, eller for at indstille nogle parametre eller at gribe ind ved at tænde eller slukke for en lampe alene.

"Interface" jeg brugte til Bluetooth-kommunikation med min telefon var "Bluetooth terminal". Ikke rigtig brugervenligt, og det ville miste forbindelsen, når jeg vippede telefonen langt nok til at programmet gik til liggende tilstand.

Så jeg var i reelt behov for en "App", trods alt, ikke noget anstændigt kontrolsystem kan i dag gøre uden. Vi lever ikke længere i stenalderen:-)

Selvom jeg ikke er nybegynder på HTML og Java, havde jeg ingen erfaring med at lave apps. Dybest set havde jeg ingen idé om, hvor jeg skulle starte. Downloadet nogle app udvikle systemer som Android studio, men jeg tror, ​​at der var brug for en triljard gazillion magabyte af diskspace og ærligt fandt jeg det en smule uvenlig.

Så efter nogle søgning kom jeg til 'App opfinder'. Det gode ved App Inventor er, at det fungerer online. Alt du behøver, er en google-konto. App opfinder behøver ikke nogen tidligere programoplevelse, det gøres ved at vedhæfte grafiske 'blokke' til hinanden

I første omgang kan App opfinder være lidt skræmmende, taler om "emulatorer" og at skulle downloade 'compagnon'-appen til din telefon, men det er ikke nødvendigt.

Hvad du gør, er du her til app opfinder, og hvis du har en google konto, kan du starte med det samme.

Så jeg anbefaler at tage deres grundlæggende tutorial, Hello Purr, så du får en fornemmelse af, hvordan det virker.

Når du først har lavet 'Hello Purr' -eksemplet, kan du vide, hvordan det virker, men du har sandsynligvis stadig spørgsmål som: 'ja men hvordan kan jeg oprette forbindelse til bluetooth?'

Nå, det er det, jeg vil forklare i næste trin

forsyninger:

Trin 1: Appen: Tryk på en knap, læs indgang og udgang

Mit Arduino kredsløb, som nævnt, har et almindeligt bluetooth modul tilsluttet seriel port. Det virker autonomt, men det kan tage kommandoer fra seriel port Derfra tager det kommandoer for at få det til at gøre ting. Tænd et lys, tænd en pumpe. Disse kommandoer var alle udskrivbare ascii-tegn, da jeg måtte vælge dem fra mit tastatur, da jeg stadig bruger Bluetooth Terminal. I en app er det ikke så vigtigt, om det er printbart ascii eller ej, men i de to billeder ovenfor kan du se de forskellige inputværdier, som arduino'en scanner via 'Serial.read ()'

Så alt hvad vi skal gøre i appen er at definere knapper, der sender disse værdier til bluetooth på telefonen, hvem der sender det videre til bluetooth-modulet i Arduino og til seriel porten.

Jeg vil ikke beskrive appen i alle detaljer, fordi det ville være kedeligt, og jeg er overbevist om, at den bedste måde at lære er at bare spille med det selv, så jeg vil give app-kilden til, at du kan indlæse og lege med. Jeg vil dog diskutere nogle grundlæggende principper, så du forstår, hvad appen gør.

Hvis du gik igennem 'Hello Purr' eksempelet på App Inventor, ved du, at der er to skærme: Designskærmen og blokskærmen.

I designskærmen bestemmer vi layoutet af vores app. Det er grundlæggende 'træk og slip'of elementer på det mock' phonescreen '. Alle slags egenskaber som farve, placering, fontsize osv. Er alle færdige i designskærmen, og du vil snart få fat i det.

Derefter definerer vi i blokskærmen funktionen af ​​de forskellige elementer: Ved at klikke på et emne i den venstre kolonne, kommer vi til at vælge en række mulige handlinger for den pågældende genstand.

På det tredje billede kan du se, hvordan det virker på to knapper:

Hvis knappen 1 klikkes, kalder den Bluetooth-klienten for at sende en byte, og i dette tilfælde er det nummer 72 (eller 'H'). I Serial.read () strukturen i Arduino programmet kan du se, at det betyder at tænde lysene i den levende.

Lignende for knap 2: det kalder bluetoothclient til at sende nummer 104 ('h'). Det i Arduinoprogrammet betyder "Skifte af lyset i stuen"

Arduino-programmet sender også data (tid, temperatur) til seriel porten, og vi skal fange disse data og udskrive det på telefonen. Det fjerde billede viser, hvordan det gøres. Vi har ikke kun defineret en knap, men også en tekstboks til at udskrive resultaterne. Igen kalder knappen Bluetooth-klienten for at sende en byte, 116, (a 't'), som som vi kan se fra vores Arduinoprogram, resulterer i at tiden bliver udskrevet til seriel porten.

Vi definerer derfor en anden handling under den knap, og det er at få tekstboksen til at kalde Bluetooth-klienten for at læse indkomstbytes. Nu er det ret rå, fordi hvis der er noget, der allerede blev udskrevet til serialporten (siger en automatisk statusmeddelelse), så bliver det også trykt, så det er stadig i orden

Trin 2: Appen: Skift en knap

tidligere viste jeg, hvordan du kunne sende en kommando med en knap: En knap til 'ON' og en knap til 'OFF'.

Kedelig!!! Det ville tage mindre plads, hvis vi bare havde en knap, vi kunne veksle, og det ser også flinkere ud.

Nå det er ikke så svært. Hvis du ser på snap på designskærmen, ser du en masse "outlandish gobbledydock" (undskyld for det), men i den nederste del ser du en knap med en grøn Vandkande. Det har naturligvis noget at gøre med at skylle haven.

På de næste to billeder viser det udseendet på den faktiske fungerende app: Tryk på den grønne knap, og den sender en kommando til bluetooth-klienten og bliver derefter rød. Tryk på den røde knap, og den sender en anden kommando og bliver grøn igen

I første omgang fandt jeg en metode som illustreret i det fjerde billede. Under knappen definerer vi en 'If Then Else' struktur, hvor vi den tilstand vi kontrollerer er navnet på det billede, vi vedhæfter til knappen. Afhængigt af dette navn går vi til en af ​​to procedurer, hvor vi udsteder den ønskede kommando (i dette tilfælde sender vi en 'I' eller 'I') og skifter billedet på knappen.

Det forekom imidlertid unødigt kompliceret, og det femte billede viser en nemmere måde uden at skulle kalde procedurer

Trin 3: Appen: Bluetooth-forbindelsen

App ville være værdiløs, hvis det ikke kunne forbinde til bluetooth. Jeg er ikke sikker på, om den måde jeg gjorde det er den bedste måde, men det virker for mig. Jeg starter med at kalde listen over parrede enheder, og når jeg vælger min, og den forbinder, ændrer jeg farven og teksten på forbindelsesknappen.

Nu selvfølgelig, hvis du har en app, der kun er beregnet til en bestemt enhed, kan du gøre væk med listevælgeren og bare oprette forbindelse til UUID af den nødvendige enhed.

Det andet billede viser to grundlæggende måder at oprette forbindelse til Bluetooth:

via listen picker og via UUID af yr ønsket enhed. UUID er det navn, hvor din enhed vises, når du tilføjer den, parrer den eller forbinder den. Det er normalt en række tal med et navn som

XX: XX: XX: XX: XX: XX HC-05

Der er mange andre måder at oprette forbindelse til Bluetooth, og du kan finde nogle interessante læsninger her.

Trin 4: App: Stemmekommandoer

Jeg har tilføjet grundlæggende stemmekommandoer til appen. Jeg fandt ud af, at noget længere ord fungerer bedre end kortere ord "ON" har aldrig arbejdet for mig, "OFF" fungerede bedre, men "Soveværelse" var normalt stedet på. Måske er det fordi engelsk ikke er mit modersmål. Jeg er også ikke sikker på, hvor godt talegenkendelse er med at forstå andre sprog

Trin 5: App: Testing og uploading af det

App opfinder tilbyder flere måder at teste din app på. Jeg gjorde det ved at downloade App opfinder companion på min telefon. Så længe din computer og din telefon bruger det samme netværk, fungerer det.

Men selvfølgelig, efter nogle gange gav jeg op med at bruge App opfinderens ledsager, men jeg uploadede bare apk-koden til min telefon.

Så hvordan skal du uploade en apk-fil?

Nå skal du først få en. Du gør det ved at klikke på 'build'-knappen i topværktøjslinjen: Det giver dig to muligheder: scanning af en QR-kode eller downloadning af apk-filen til en computer.

Jeg plejer at gå til sidstnævnte. Den nemmeste måde at installere den kode på din Android-telefon på er at sende den som vedhæftet fil til årets egen gmail-konto, som du har på års telefon. Åbning af vedhæftet fil giver dig derefter mulighed for at installere det.

Trin 6: Appen: Bare nogle små tidbitter og koden

Bare et par ting, og så lader jeg dig få koden til at spille med.

Designet jeg gav, er ikke meget prangende, jeg er sikker på, at du kan skræddersy det til årets eget behov med mange flere ikoner, men det er kun ment som et eksempel at tinker med.

Apk-filen installeres med et standard kedeligt ikon. Du kan angive dit eget prangende appikon i egenskaberne 'Screen1'. Dette er også her, hvor du kan angive navnet på din app.

husk på det tidspunkt, jeg skriver dette, må jeg kun være en dag foran dig i samarbejde med App Inventor. Det er rigtigt let, brug det.

her er filen, skal du bare gå til 'import' i App Inventor og begynde at bruge og ændre den til dine behov