Fristående Arduino höjdmätare (2 / 3 steg)

Steg 2: Programmet

Koden förklaringar (full koden nedan):

#include "U8glib.h"
#include "BMP280.h"

De är 2-bibliotek måste du sätta inne Documents\Arduino\libraries\

#define P0 1021.97

Det är där du kalibrera höjdmätaren, ändra detta värde. När det är gjort, är det ganska exakt!

(som standard det var 1013.25, jag fick upp det till 1021.97 ha rätt höjd i min stad)

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK);

Här du ange typ av Oled-skärm (128 x 64 etc...)

U8G.drawStr (5, 10, "Temp:");
U8G.drawStr (5, 30, "Bar:");
U8G.drawStr (5, 50, "Alt:");
U8G.drawStr (50, 10, sT);
U8G.drawStr (50, 30, sP);
U8G.drawStr (50, 50, sA);

Här information du vill visa på första skärmen och deras position (Y, X, värde)

dtostrf (A_MIN, 4, 2, sA_MIN);
dtostrf (A_MAX, 4, 2, sA_MAX);
U8G.drawStr (5, 20, "A Min:");
U8G.drawStr (60, 20, sA_MIN);
U8G.drawStr (5, 45, "A Max:");
U8G.drawStr (60, 45, sA_MAX);

Samma för andra skärmen

om (A > A_MAX) {
A_MAX = A;
}

om (A < A_MIN || A_MIN == 0) {
A_MIN = A;
}

Här uppdaterar vi den minsta och maximala höjd lagras

göra {
Rita (T, P, A);
} medan (u8g.nextPage());
U8G.firstPage();
Delay(1000);

Med försening värde (1000 i detta fall) bor du här, 1 sekund på den första skärmen innan du byter till det andra. Så ändra det om du vill anpassa visningstiden :)

göra {
draw2 (A_MIN, A_MAX);
} medan (u8g.nextPage());
U8G.firstPage();
Delay(1000);

Samma för andra skärmen!

Hoppas det är klart, gärna skicka en fråga i kommentarerna om det behövs!

Här är den fullständiga koden:

#include "U8glib.h"
#include "BMP280.h"
#include "Wire.h"
#define P0 1021.97 //1013.25
BMP280 bmp;

OLED typ
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK);

char sT [20].
char sP [9].
char sA [9].
char sA_MIN [9].
char sA_MAX [9].
Double A_MIN = 0;
Double A_MAX = 0;

void Rita (dubbel T, dubbel P, dubbel A) {
U8G.setFont(u8g_font_unifont);

dtostrf T, 4, 2, sT,
dtostrf (P, 4, 2, sP);
dtostrf A, 4, 2, sA.

U8G.drawStr (5, 10, "Temp:");
U8G.drawStr (5, 30, "Bar:");
U8G.drawStr (5, 50, "Alt:");
U8G.drawStr (50, 10, sT);
U8G.drawStr (50, 30, sP);
U8G.drawStr (50, 50, sA);
}

void draw2 (dubbel A_MIN, dubbel A_MAX) {
U8G.setFont(u8g_font_unifont);

dtostrf (A_MIN, 4, 2, sA_MIN);
dtostrf (A_MAX, 4, 2, sA_MAX);
U8G.drawStr (5, 20, "A Min:");
U8G.drawStr (60, 20, sA_MIN);
U8G.drawStr (5, 45, "A Max:");
U8G.drawStr (60, 45, sA_MAX);
}

void setup() {
Serial.BEGIN(9600);
om (! bmp.begin()) {
Serial.println ("BMP init misslyckades!");
samtidigt (1).
}
annat Serial.println ("BMP init framgång!");

bmp.setOversampling(4);

U8G.setColorIndex(1);
U8G.setFont(u8g_font_unifont);
}

void loop(void) {
dubbel T, P;
char resultatet = bmp.startMeasurment();

om (resultatet! = 0) {
Delay(Result);
resultat = bmp.getTemperatureAndPressure (T, P);

om (resultatet! = 0) {
Double A = bmp.altitude (P, P0);

om (A > A_MAX) {
A_MAX = A;
}

om (A < A_MIN || A_MIN == 0) {
A_MIN = A;
}

Serial.Print ("T = \t"); Serial.Print (T, 2); Serial.Print ("degC\t");
Serial.Print ("P = \t"); Serial.Print (P, 2); Serial.Print ("mBar\t");
Serial.Print ("A = \t"); Serial.Print (A, 2). Serial.println ("m").

U8G.firstPage();
göra {
Rita (T, P, A);
} medan (u8g.nextPage());
U8G.firstPage();
Delay(1000);

göra {
draw2 (A_MIN, A_MAX);
} medan (u8g.nextPage());
U8G.firstPage();
Delay(1000);

}
annat {
Serial.println("Error.");
}
}
annat {
Serial.println("Error.");
}

Delay(100);

}

Se Steg
Relaterade Ämnen

Fristående Arduino stoppur - SainSmart LCD knappsatsen sköld

så, för min första Instructable, jag kommer också dela med mig mitt första projekt: en fristående Arduino tidtagarur.Jag måste erkänna att detta inte var helt skapad av mig. Jag tog idén om en annan stoppur där du läsa info om den seriella porten och...

WT588D fristående / Arduino ljud spelare

Denna tutorial är för WTD588D-du kan användas i fristående lägeI detta instructable jag visar dig de nödvändiga verktygen och steg för att ladda några ljudfiler och har dem spela på tryckning.Perfekt för att testa modulen innan den läggs till din Ard...

En kompakt, Arduino höjdmätare för RC plan

Vänligen rösta för detta Instructable om du tror att den förtjänar det! Tack!Ultimate höjdmätare är en superkompakt, Arduino kontrollerade höjdmätare kan mäta höjden med en noggrannhet av 0.3 meter, och spara de högsta och lägsta värden som det har u...

Fristående Arduino UNO

detta är bara en kopia av min arduino UNO. De är lätta att program, allt du behöver göra är bara att ansluta RX TX GND återställa---så långt jag har gjort 6 av dem lol som för närvarande används av andra projekt....

Fristående 16-siffrig display - Arduino & Attiny85

någonsin ville ha en 7-segment display för runt huset? Här är din chans att göra en!Det kan även vara interaktiva baserat på programmering.Delar:($7,60) 16-siffriga TM1640 baserat uppvisningDealExtreme.com SKU: 104311http://www.DealExtreme.com/p/jy-M...

Arduino fristående web aktiverat bell

inspirerad av detta inlägg, jag ville skapa en Arduino powered bell som var helt fristående.Med lite PHP och (om du vill) vissa jQuery på någon webbplats, kan du göra denna klocka ring när en viss åtgärd utförs.Denna Arduino stack är wifi; När den är...

$2 Arduino. ATMEGA328 som en fristående. Lätt, Billigt och mycket små. En komplett guide.

I detta instructable du lära dig att använda Arduino ATMEGA328 mikrokontroller chip som en fristående mikrokontroller.De kan kostar endast 2 dollar, göra samma sak som din Arduino och göra dina projekt extremt liten.Vi kommer att täcka pin layout, hu...

Fristående WiFi Radio Control Panel (Arduino Powered)

jag ville ha en Internet-Radio för en lång tid, och var mycket glad över att hitta Tinkernut's Wifi-radion projekt (http://tinkernut.com/archives/2387 ), som jag byggt och har haft i några månader.Men brydde jag mig verkligen för Ario baserad kontrol...

ESP8266 (fristående) väderstation med hjälp av Arduino IDE och GadgetKeeper moln plattform

Detta är en uppgradering av mitt tidigare projekt GadgetKeeper-väderstation. I detta projekt bygger jag samma funktioner men bara använder ESP8266 WiFi SoC fristående med DHT11 temperatur och luftfuktighet sensor. I det tidigare projektet använde jag...

En fristående Data logga vindmätaren

jag älskar samla in och analysera uppgifter. Jag älskar också bygga elektroniska prylar. Ett år sedan när jag upptäckte de Arduino produkterna, jag omedelbart tänkte, "Jag vill samla in miljödata." Det var en blåsig dag i Portland, OR, så jag be...

Fristående 7 x 7 x 7 ledde kub

LED kuber är sann 3D-skärmar som arbetar med belysning upp punkter i ett 3D galler av lysdioder.På 3D-visningen kan du producera vissa verkligen fascinerande animeringar. Detta Instructable kommer att gå igenom hur du skapar en LED cube själv som är...

ESP 8266 fristående WiFI Relay kontroll [ytUt]

SYFTETAtt styra en reläutgång med esp8266 i fristående läge (utan arduino, pic eller någon annan mikro-controller) via Web-UIESP sänder sina egna SSID. Det ansluta inte till en router. lokala IP-adressen för esp är 192.168.4.1Steg 1: Samla hårdvaraES...

Fristående Whiteboard

det finns ett gäng riktigt fina DIY whiteboard mönster på Instructables, och jag trodde en fin komplimang att dem skulle vara en enkel, billig, fristående whiteboard som kan göras med lätt-tillgängligt material. Särskilt för home schoolers, små studi...

Outrigger kanot med fristående mast

en segelbåt byggd av luan plywood, glasfiber, epoxi och en liten mahogny. Mestadels plywood men. Det är en UTRIGGARE canoe modelleras ungefär efter en proa, men med en mer västerländsk stil skrovkonstruktion och segla. Jag tror det tog ungefär 200 ma...

Glatt picknickbord med fristående bänkar

fick vi äntligen vår tillbaka uteplats byggd och allt som saknades var en tabell. Hellre än att spendera en båt belastning av pengar på en som ganska arbetat för oss, jag bestämde mig att bara bygga en. Så här är vi. Jag faktiskt används två picknick...

Delvis fristående Loft säng Under $50

Lofting queen size upp fem fot skapar nästan 200 kubikfot av användbart utrymme. Möjligheterna är oändliga: lagring, en annan säng, en soffa och vardagsrum område, ett skrivbord, en workshop, etc. (jag valde en mindre konventionella alternativet: väx...

Gränsyta höjdmätare MS5067 med Linkit-ett

MS50XX serien är serien av höjdmätare multilaterala miljöavtalen-Specs, använder luft mätning för att uppskatta höjden. Här kommer jag att använda MS5607 enhetDatablad: http://www.meas-spec.com/downloads/MS5607-02BA03.pdfSteg 1: anslutningarMS5607: L...

Fristående Intelligent sensorsystem

Fristående Intelligent Sensor (SIS) är en billig bygg-det-själv system som bearbetar information från en mängd olika passiva trådlösa sensorer för att skapa en tidsstämplad logg med meningsfulla uppgifter och slutsatser om en persons hemmet aktivitet...

Billig ($134) fristående bärbara shop-vac dammsamlare

Jag tog nyligen upp träbearbetning och insåg snabbt att städa upp sågspån var en smärta och är också en hälsofara. Här är en lösning som jag kom upp med hjälp av en liten Stanley shop-vac, en Damm vice, en 20-gallon drum och viktigast av allt en P-fä...