SODAQ (compatibel met Arduino) bier-temperatuur-monitor (2 / 2 stap)

Stap 2: De code


De volgende code is wat loopt de bier-monitor. Is is ook te downloaden op onze GIThub repository

Het toont het proces voor het meten van de temperatuur en het weer te geven op het OLED display.
Wanneer de temperatuur daalt onder de 8 graden Celsius (ideale temperatuur voor bier), verzendt een SMS gebruikend de GPRSbee.

#include < OneWire.h >
#include < Wire.h >
#include < SeeedOLED.h >
#include < GPRSbee.h >

#define GPRSBEE_PWRPIN 7
#define XBEECTS_PIN 8

Privacy ds(2);  op pin 2

int sent_sms = 0;  We willen alleen maar eens een sms versturen
float beertemp;
BOOL smsSent;

VOID Setup / *---(SETUP: loopt eenmaal)---* /
{
Serial.begin(9600);      Serial1 is verbonden met SIM900 GPRSbee
gprsbee.init (serieel, XBEECTS_PIN, GPRSBEE_PWRPIN);
gprsbee.off();
Wire.begin();
SeeedOled.init();  initialze SEEED OLED-display
SeeedOled.clearDisplay();          wissen van het scherm en startpositie ingesteld op linksboven hoek
SeeedOled.setNormalDisplay();      Weergave ingesteld op normale modus (dwz niet-inverse)
SeeedOled.setPageMode();           Set adressering modus naar pagina modus

} / *--(eind setup)---* /

void loop / *---(lus: loopt voortdurend)---* /
{
SeeedOled.setTextXY(0,0);          Stel de cursor op Xth Page, y-kolom
SeeedOled.putString("Beer(oC):"); De afdrukreeks
beertemp = OWtemp();
SeeedOled.putFloat(beertemp,1);
Als (beertemp < 8 & & sent_sms == 0) {}
sent_sms = 1;  alleen het verzenden van sms eenmaal
SeeedOled.setTextXY(4,0);
SeeedOled.putString ("het verzenden van SMS");
SeeedOled.setTextXY(5,0);
smsSent = gprsbee.sendSMS ("het bier is koud", "+99999999");  telefoonnummer inclusief landnummer
Als (smsSent) {}
SeeedOled.setTextXY(6,0);
SeeedOled.putString ("SMS'JES OK");
} else {}
SeeedOled.setTextXY(6,0);
SeeedOled.putString ("SMS niet verzonden");
}

}

} / *--(einde hoofdlus)--* /

float OWtemp(void) {}

byte i;
byte aanwezig = 0;
byte type_s;
bytegegevens [12];
byte addr [8] = "";
zweven celsius;

DS.Search(addr);
DS.reset();
DS.Select(addr);
DS.write(0x44, 1);        Start conversie, met kracht van de parasiet op eind

delay(1000);     Misschien volstaat 750ms, misschien niet
wij hier een ds.depower() zou kunnen doen, maar het resetten zal verzorgen.

huidige = ds.reset();
DS.Select(addr);
DS.write(0xBE);         Lees Kladblok

voor (ik = 0; ik < 9; i ++) {/ / moeten we 9 bytes
gegevens [i] = ds.read();

}

De gegevens converteren naar werkelijke temperatuur
omdat het resultaat een 16-bits ondertekend geheel getal is, het zou moeten
een "int16_t"-type, die altijd 16 bits worden opgeslagen
zelfs wanneer gecompileerd op een 32-bits processor.
int16_t ruwe = (gegevens [1] << 8) | gegevens [0];
Als (type_s) {}
ruwe = rauwe << 3; 9 bits resolutie standaard
Als (gegevens [7] == 0x10) {}
"count blijft" geeft volledige 12 bit resolutie
ruwe = (raw & 0xFFF0) + 12 - gegevens [6];
}
} else {}
byte cfg = (gegevens [4] & 0x60);
bij lagere res, de lage bits zijn gedefinieerd, dus laten we nul hen
Als (cfg == 0x00) rauwe = raw & ~ 7;  9 bit resolutie, 93.75 ms
anders als (cfg == 0x20) rauwe = raw & ~ 3; 10 bit res, 187,5 ms
anders als (cfg == 0x40) rauwe = raw & ~ 1; 11 bits res, 375 ms
Standaard is 12 bit resolutie, 750 ms conversietijd
}
Celsius = (zweven) rauwe / 16.0;
retourneren celsius;
}

/ * (Het einde) * /

Gerelateerde Artikelen

TinyDice LED sterven (compatibel met Arduino)

TinyDice LED sterven (compatibel met Arduino)

ik een ATtiny25 om te controleren enkele LEDs gebruikt, het een aantal willekeurig gegenereerd en weergegeven als een dobbelsteen.Het toont eerste lichte reeks, dan de willekeurig getal en het gaat ten slotte om te slapen, verbruiken minder dan 0.1uA
Stap voor stap handleiding op Micro goochelaar robot controller (compatibel met Arduino)

Stap voor stap handleiding op Micro goochelaar robot controller (compatibel met Arduino)

de Micro goochelaar uit DAGU is een low-cost Arduino compatibele controller speciaal ontworpen voor beginners die willen bouwen van een kleine robot. De Raad van bestuur heeft een aantal handige accessoires ingebouwd zodat schilden in de meeste geval
Arduino Basic temperatuur Monitor - Exosite

Arduino Basic temperatuur Monitor - Exosite

Deze code Arduino leest een Dallas Semiconductor een-draads temperatuursensor en rapporteert aan een portaal van de Exosite via de Ethernet-Shield. Dit artikel beschrijft de hook-up informatie en de code voor een eenvoudig netwerk aangesloten tempera
PSU-voeding van oude ATX met Arduino en LCD Monitor een proefbank

PSU-voeding van oude ATX met Arduino en LCD Monitor een proefbank

Hallo allemaal en welkom op mijn eerste Instructable.Ik wilde altijd een bankje PSU voor gemakkelijke toegang tot een bron van macht, en iets dat ik kan rekenen op wanneer u werkt aan verschillende projecten. Ik wilde een PSU dat:• biedt 3, 3V, 5v en
Arduino Based temperatuur Monitor

Arduino Based temperatuur Monitor

deze video toont een monitor van de temperatuur met behulp van de LM34 precisie temperatuursensor, Arduino en 16 X 2 LCD-display. De monitor slaat ook de laatste 10 temperatuur lezingenMeer foto's en projecten @ http://www.kunaldoshi.comHeres de link
Het gebruik van E-ink display module op de stm32 (compatibel met arduino 3,3 v)

Het gebruik van E-ink display module op de stm32 (compatibel met arduino 3,3 v)

Hallo jongens, dit is de derde keer dat wij (slimme prototyping) een instructable hier, Bedankt posten voor het kijken! Wij zullen houden op post grappige instructable. Dit is een E-ink display module! hoop dat we u kunnen helpen een beetje en commun
MCU stem uitzending systeem gebaseerd op ICStation Mega compatibel met Arduino

MCU stem uitzending systeem gebaseerd op ICStation Mega compatibel met Arduino

ICStationteam introduceren u dit MCU stem uitzending stelsel gebaseerd op ICStation Mega2560. Dit systeem werkt onder DC5V spanning. Het kunt interne verworven liedjes in het MCU uitzenden. Wat meer is, kan het de functie van replay, onderbreken afsp
Menselijk lichaam infrarode rook temperatuur alarmsysteem met Arduino

Menselijk lichaam infrarode rook temperatuur alarmsysteem met Arduino

ICStation Team introduceren u dit menselijke lichaam infrarood roken temperatuur alarmsysteem op basis van ICStation-Meag2560 compatibel met Arduino.The menselijk lichaam infrarode roken temperatuur alarmsysteem werkt onder de DC 5v spanning en gebru
LinkIt One Tutorials - #8 DS18B20 één draad Water Temperatuur Monitor

LinkIt One Tutorials - #8 DS18B20 één draad Water Temperatuur Monitor

Voor deze tutorial ga ik om een water temperatuur monitor met behulp van een DS18B20.De DS18B20 is een apparaat van een draad. Één draad betekent dat het krijgt opdrachten van het controle-apparaat (in dit geval onze LinkIt een boord) en stuurt ze te
PlotClock met Arduino

PlotClock met Arduino

Hallo, wij zijn een groep van studenten en dit is ons eerste project in instructables en we hope u like it!Dit project was voor 'Creatieve Electronics', een Beng elektronica Engineering 4e jaar module op de Universiteit van Málaga, School van telecom
NRF2L401 Wireless PC Data Transmission System met Arduino

NRF2L401 Wireless PC Data Transmission System met Arduino

ICStation team introduceren u hoe maak je dit NRF2L401 Wireless PC Data transmissiesysteem gebaseerd op de ICStation UNO en de ICStation mega2560 compatibel met Arduino.Het NRF2L401 Wireless PC Data transmissiesysteem werkt onder DC5V spanning en maa
DIY TV LCD-scherm met Arduino en Smart Remote

DIY TV LCD-scherm met Arduino en Smart Remote

In de volgende volgende stappen, u maakt een DIY "TV" met code voor een smart remote afstandsbediening,, en eigenlijk video's afspelen en de slimme afstandsbediening zelfs mogelijk verbinding te maken met de werkelijke moederbord.Materialen:Foli
Eerste stap naar uw smarthome met Arduino

Eerste stap naar uw smarthome met Arduino

de eerste stap in het creëren van een smarthome, is het simpelweg wissel voort en vandoor lichten.Om te beginnen van dit project zijn de volgende items nodig:• Relais module compatibel met Arduino (betekent werken bij 5V)• een Arduino, ik kies de Meg
De Wireless Single Point System met Arduino bellen

De Wireless Single Point System met Arduino bellen

ICStation team introduceren u de Wireless één punt roepen systeem gebaseerd op de ICStation UNO en de ICStation Mega2560 compatibel met Arduino. De enkele punt roepen radiosysteem werkt onder de DC 5V spanning en maakt gebruik van de NRF905 draadloze