Baserade Arduino House värmare Controler med SMS användargränssnitt (7 / 8 steg)

Steg 7: Sammanställning och ladda upp, bibliotek



Beroende på operativsystem, placera de medföljande bibliotek i den angivna mappen och spara programmet i mappen Arduino skisser. För att programmera Freeduino, kan du antingen program ATMega på programmerare, på din Arduino, eller via en RS232-USB-kabel på Freeduino.

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.

Se Steg
Relaterade Ämnen

Wall lampetter med dolda Weather Display och påtagliga användargränssnitt

videor av projektet i aktion nedan!Disclaimer: Detta är en förkortad beskrivning av projektet eftersom jag inte hade tid att göra en fullständig steg för steg instructable i tid för en tävling. Men jag kommer gärna att göra en steg för steg "kompatib...

Baserade Arduino Solar PV energimätare med Xively anslutning (kan övervakas på android eller iPhone)

Det har varit ungefär två dagar sedan jag gjorde den Arduino PV generationen mätare, men det var ett misstag att inte att ta de steg för steg bilderna innan du fortsätter för provningen. Och det var en hemsk idé att Visa raw du för så kallade elmätar...

Baserade Arduino enkel programmering tutorials: 1 med LED

detta är bara början på en helt fantastisk serie! fortfarande awesome saker framöver!Steg 1: Bara några enkla steg... Detta är i princip helt enkel programmering;int ledde = 13. deklarerade ledde på stift 13;void setup() {pinMode(led,OUTPUT); deklare...

Arduino Android USB-seriell kommunikation med OTG kabel

Jag har gjort en Arduino baserade natten lampa med hjälp av foto motstånd och problem med det är ljusnivåer var olika från plats till plats, när jag testar jag har använt ett värde som en tröskel för att slå på ljuset och efter att fastställa det i d...

30$ övervakningssystem med användargränssnittet

extremt billigt och väldigt lätt att göra övervakningssystem. Du behöver inte vara någon form av raketforskare för att göra detta. Alla nödvändiga delar kommer förmodligen hittat från din lokala järnaffär. Du behöver bara 2 vinkel barer, 2 servomotor...

Bygga en trummaskin med billiga materiella gränssnitt (d-touch trummaskin)

d-touch trummaskin är en trummaskin med ett konkret användargränssnitt: du kan göra musik genom att placera och ordna fysiska objekt på ett A4 papper. Om du vill göra konkreta beats behöver du några gamla stype klippa & klistra. Denna instrctables fö...

BLDC Motor Control med Arduino, bärgades HD motor och hallgivare

det finns ett stort intresse dessa dagar bland hobbyister kontrollera borstlösa DC (BLDC) motorer, som har bättre prestanda och bättre energieffektivitet övertraditionella DC-motorer, är men svårare att använda. Många off-the-shelf produkter finns fö...

Baserade Arduino - Power Control System för RPi bil PC

Hej alla! Jag är Michalis Vasilakis från www.ardumotive.com och i handboken jag kommer att visa dig hur man gör en enkel - baserade Arduino - Power Control System för RPi Car PC.Detta system är utformat för att undvika abrupta stängningen av PRi bile...

Baserade Arduino 4WD Bluetooth Microbot

Denna microbot är inspirerad av Arduino-Nano-baserade-Microbot. Istället för att använda 2 servon, är denna robot drivs av 4, vilket eliminerar behovet av spår.Micro controller jag använder är Bluno skalbaggen, som är en liten Arduino baserade contro...

Arduino lösenord säkerhetssystem med magnetisk dörr sensorer

I handboken Instructables kommer jag visa dig hur man gör ditt eget lösenord säkerhetssystem genom att använda Arduino uno styrelsen och vissa magnetiska dörren växlar. Jag gjorde min egen krets med hjälp av ATmega328 micro controller men detta är et...

Baserade Arduino remote översättare

Det finns 3 fjärrkontrollen är bara att titta på min TV, för TV, sätta topp låda och sound bar. Förfarande för att titta på TV är byta på TV att sätta sin källa till A / V, inkoppling ljudsystem och sätta dess källa för aux och inkoppling sätta topp...

Hacka en $30 WiFi Pan-Tilt kamera - Video, ljud och Motor control med Python

I detta Instructable lär du dig att fånga upp den video, mikrofon och kontroller av $30 Kaicong SIP1602 trådlös pan-tilt kamera på Windows, Linux eller OSX! Allt rullas prydligt i python skript; Du kan använda utdata för saker som röst transkription,...

Baserade Arduino Bi-color LED Matrix Tetris spelet

En av elektronik DIY kit jolliFactory kom upp med är den Bi-color LED Matrix Driver modul Kit. Denna modul är utformad för att kunna kedja-så att du kan seriekoppla moduler tillsammans med antalet moduler du behöver för att passa ditt projekt.Följand...

Baserade Arduino Bi-color LED matris orm spel

Vi demonstrerade hur en Arduino baserat Bi-color LED Matrix Tetris spel kan byggas i vårt senaste instructable. Vi var ganska överraskning det var med till Instructables hemsida och har samlat en hel handfull favoriter under en kort tidsperiod. Du ka...

Arduino & Android baserat Bluetooth Controll lösenord beskyddat Smart dörrlås (spara ditt hem)

Vi är alla oroade över säkerheten i vårt hem. Världen blir smartare och smartare vardag och vi vill styra och säkrade vår grej på ett smartare sätt. I denna tutorial kommer jag att förklara hur man gjort baserade en arduino DIY smart lock som kan var...

IoT NFT Aquaponic System Controler med WebApp (Intel Edison & Node.js)

KretsloppsodlingAquaponic kombinerar vattenbruk (odla fisk) med Hydroponics (odling i vatten). Fisk utsöndrar bryts ner av bakterier till nitrat som absorberas av växter som näringsämnen, och plantera rötter agera som ett filter till rent vatten för...

Arduino och ultrasonic sensor control servo och distans mätare

Arduino och ultrasonic sensor control servo och distans mätareI detta projekt kan du se hur du styr servomotor och tu beräkna avstånd med hjälp av arduino och ultrasonic sensor. Du behöver: 1. Arduino (uno, nano, pro mini)HårdvaraInrätta trigpin ultr...

BASERADE ARDUINO MPPT sol LADDNINGSREGULATORN

BASERADE ARDUINO MPPT SOL LADDNINGSREGULATORNBesök min hemsida för Schematisk och kod Baserade ARDUINO MPPT sol LADDNINGSREGULATORNVad är Mppt (Maximum power point spårning)?"vi använder MPPT algoritm för att få maximal tillgänglig effekt från solcel...

Arduino OLED termometer och Hygrometer med DHT11 för nybörjare

Hej! Jag ska visa dig hur man gör en Arduino OLED termometer och hygrometer * med DHT11.OLED vi använder idag är 1.3″ tum i storlek, funktioner 128 × 64 pixlar och använder SPI bussen. På nästa steg hittar du mer nyttig information om OLED tech och d...