Baserade Arduino House värmare Controler med SMS användargränssnitt (7 / 8 steg)
Steg 7: Sammanställning och ladda upp, bibliotek
Menyn strängar är bosatta i processorns EEPROM-minne, måste de laddas det först. Detta görs genom ett litet program (streeng.ino) som har för att laddas och lanserade innan kompilera och installera programmet huvudsakliga controller (steuerung.ino). Streeng programmet samt controler göra använda av streeng klassbibliotek, som gör det möjligt för att spara och komma åt teckensträngar i EEPROM.
Några ord på bibliotek:
Menysystem
Funktionerna i enheten kräver en strukturerad användargränssnitt. Jag utvecklade menysystemet med tre mål: enkelhet, flexibilitet och låg minnesanvändning. Menyerna är hierarkiska ner till 4 nivåer. Menyposter kan ändras under körning och systemet innehåller också funktioner för inmatning av data alfanumeriska och tid. För de insatsen endast tre knapparna behövs (upp/in/ner). Knappen push tid används också för ytterligare funktionalitet.
LCD-skärmen visar en huvudrad panel (statusinformation, tid, temperatur, drift läge och panna stat) samt 3 linjer-menyn. Beroende på bildskärmsstorlek, kan detta vara mer eller mindre (t.ex. huvudet plus 1 rad för en liten 16 x 2 display). Menynavigering påverkar inte panelen huvud. Den aktuella menyn positionen kan ses till vänster mest sidan och indikeras av en ' >'. Texten för menyposten ses på skärmen center. I fall som det finns undermenyer för en menypost, en ">" visas på längst till höger. Menyn objekt är markerade genom att trycka på Enter, upp och ner navigerar på motsvarande i menyträdet. Trycka in för längre återgår till menyn roten, trycka "upp" längre navigerar en meny upp en nivå.
Strängarna är redigeras genom att ändra värdet under markerade markören med hjälp av upp/ner knapparna. Hålla dem längre flyttas markören. Enter-tangenten avslutar redigering med det nya värdet taget över, håller det längre upphör också, men återställer det ursprungliga strängvärdet.
Klassbiblioteket menyn ger för tre sätt att lagra menyn artikeln texten: 1) programminne, 2) EEPROM, 3) för båda ovanstående dynamisk beräkning av en funktion. Vid programstart behöver menyträdet byggas upp med hjälp av post-funktionen. I detta exempel på grund av minnesbegränsningar används EEPROM mestadels för lagring (telefon böcker är dynamiska och därmed använda dynamiska menyn intrade skapelse). Menyposter identifieras genom ett indexnummer (index att placera i EEPROM eller Funktionsargument) och ett antal kodning deras position i menyträdet (4 hexadecimala siffror som anger en nivå). Så skulle 0x1000 innebära den första menyposten på den översta nivån, 0x2000 menyn andra högsta nivån, medan 0x1400 skulle beteckna fjärde undermenyn till posten första menyobjekt. Indexnumret möjliggör en förändring på Menytext vid körning genom upprepade anrop till funktionen post (t.ex. på/av växla).
Den huvudsakliga funktionen anropas från användarprogrammet är en händelsehanterare som returnerar menyalternativ valts och hanterar alla menynavigering, uppdatering och rullning. Händelsehanteraren kan väntan menyn händelser, det anropande programmet att använda processortid via en anpassad rutin, som måste lämnas.
Command Line Interface
Ett viktigt inslag i användargränssnittet är kommandoraden gränssnittet, som möjliggör inmatning av oformaterad textkommandon. Det används för input från SMS, kan den också användas och anpassas för andra kommandosyntaxen och ändamål (t.ex. ingång via IP).
I huvudsak kommandoraden analyseras för sökord (som bor i programmet utrymme), som sedan översätts till en kompakt mellanliggande kod, som sedan enkelt kontrolleras för syntax. Argument som tid och temperatur information förväntas i en viss form (tt: mm för tid, tt.t för temperatur). I fall där ett syntaxfel upptäckas, produceras ett felmeddelande.
Telefonboken
Telefonboken hanterar telefonboksposter och lagrar dem i handkontrollens EEPROM. Biblioteket beror starkt på menyn biblioteket, som tillhandahåller redigera funktioner som ryggraden i telefonboken menystrukturen.
Telefonboken biblioteket skapas en menystruktur med dynamisk menyposter, som båda har undermenyer för att redigera och ta bort. Rutiner för redigering och borttagning finns på menyn Library. I allmänhet telefonnummer kan ha 16 siffror och lagras i internationellt format inleds med en start "+" och landskoden.
Controler
Pannans tvåläges kontakt styrs av kontrollermjukvaran. Biblioteket växlar värmaren beroende på relevanta normvärdet, som är antingen manuellt ställa in (via temperatur menyn intrade), använder standardvärden (komfort, ekonomi eller frostskyddsvätska, som i sin tur anges av menyalternativet inställningar) eller bestäms av scheman programmeras av användaren. Scheman kan programmeras med en minut tid upplösning. Upp till fem tidsintervall med enskilda temperatur kan inställningar programmeras.
Samtidigt kontrollera pannan, hand biblioteket tar inte för att köra värmaren för mindre än pre in minsta runtime, och också kontrolleras för eventuella felfunktioner, dvs när rumstemperaturen inte ökar under värmaren drift. I fall som ett fel påträffas eller temperaturen understiger (Alert 0) eller överskrider (Alert 1) programmerade setpunkter, alert meddelanden skickas via SMS. Slutligen försöker registeransvarige försäkra på alla gånger att den uppmätta temperaturen aldrig faller under nivån som frostskyddsvätska definieras.
GSM
GSM biblioteket utför kommunikationen mellan Freeduino och Modem. Biblioteket utför grundläggande IO med modemet, ger en metod för att skicka kommandon till modemet och erbjuder grundläggande funktionalitet att övervaka inkommande samtal och hantera inkommande SMS-meddelanden samt initiera utgående SMS-meddelanden.