Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino Temp. Monitor en realtimeklok met 3.2-weergave

Componenten en benodigdheden

Arduino Due
× 1

Apps en online services

Arduino IDE

Over dit project

Inleiding

Beste vrienden welkom bij een nieuwe tutorial! Dit is Nick van educ8s.tv en vandaag gaan we kijken hoe we deze realtime klok en temperatuurmonitor kunnen ontwikkelen! Laten we beginnen!

Een paar weken geleden heb ik dit 3,2-inch TFT-kleurenscherm voor Arduino getest met zowel Arduino Mega als Due. Het scherm werkt prima en ik heb er een eenvoudig project mee gebouwd. Het is een temperatuurmonitor en een realtime klok. Zoals je bovenaan kunt zien, kunnen we de huidige datum en tijd zien, we kunnen de temperatuur nu zien, en onderaan registreert de Arduino de minimale en de maximale temperatuur die hij heeft gemeten. Ik heb ook geprobeerd een eenvoudige gebruikersinterface te ontwerpen met alleen eenvoudige vormen. Zoals je kunt zien werkt alles prima, en het is een heel gemakkelijk en nuttig project om te bouwen. Laten we eens kijken hoe het moet!

Stap 1:Verkrijg alle onderdelen

De onderdelen die nodig zijn om dit project te bouwen zijn deze:

  • Arduino Due
  • Een 3,2-inch TFT-kleurenscherm
  • DS3231 RTC-module
  • Mannelijke kopteksten
  • Draden

De kosten van het project bedragen ongeveer 24 $. Je hebt ongeveer 14 $ nodig voor de Arduino Due, 8 $ voor het display en ongeveer 2 $ voor de RTC-module.

Stap 2:De DS3231 Real Time Clock-module

De DS3231 real-time klokmodule is zoals de naam al doet vermoeden een Real Time Clock. Met behulp van de batterij kan hij jaren meegaan, omdat hij een minimaal stroomverbruik heeft.

De DS3231 is een goedkope, uiterst nauwkeurige I2C real-time klok (RTC) met een geïntegreerde temperatuurgecompenseerde kristaloscillator (TCXO) en kristal. Het apparaat heeft een batterij-ingang en houdt de tijd nauwkeurig bij wanneer de stroomtoevoer naar het apparaat wordt onderbroken. De integratie van de kristalresonator verbetert de nauwkeurigheid van het apparaat op lange termijn en vermindert het aantal stuks in een productielijn.

De RTC houdt informatie over seconden, minuten, uren, dag, datum, maand en jaar bij. De datum aan het einde van de maand wordt automatisch aangepast voor maanden met minder dan 31 dagen, inclusief correcties voor schrikkeljaar. De klok werkt in het 24-uurs of 12-uurs formaat met een AM/PM-indicator. Er zijn twee programmeerbare alarmen voor de tijd van de dag en een programmeerbare blokgolfuitgang. Adres en gegevens worden serieel overgedragen via een I2C bidirectionele bus.

De kosten van de module zijn extreem laag; het kost ongeveer $ 2 inclusief de batterij!

Download het hier.

We gaan het gebruiken om de tijd bij te houden en er temperatuurmetingen van te krijgen!

Stap 3:Het 3,2" TFT-kleurenscherm (HX8357C of HX8357B)

Ik heb altijd al een groot display willen hebben voor mijn Arduino-projecten. Dus een paar weken geleden besloot ik dit 3,2 Inch TFT-kleurenscherm voor Arduino Mega en Arduino Due te kopen omdat de prijs zo verleidelijk is! Minder dan $ 10 voor een 3,2-inch TFT-kleurenscherm. Met die prijs kun je niet fout gaan.

Download het hier.

Het display heeft een resolutie van 480x320 pixels en heeft een SD-kaartadapter aan de achterkant. Ik heb tot nu toe geen SD-kaartfunctionaliteit gebruikt. Ik zal het in de toekomst proberen te gebruiken. Als je goed kijkt, kun je zien dat het display ook een 3.3V-regelaar gebruikt, dus het werkt prima met logische niveaus van 5V en 3.3V.

Het display is er in twee varianten. Een van hen gebruikt de HX8357C-controller en de andere de HX8357B-controller. Gelukkig kunnen we voor beide dezelfde bibliotheek gebruiken.

WEERGAVE Bibliotheek.

Na het downloaden van de bibliotheek moet je de User_Setup.h-bestandscommentaarregel 13 openen en de commentaarregel 14 verwijderen als het scherm dat je hebt het HX8357C-stuurprogramma gebruikt, zoals het mijne.

Stap 4:De onderdelen aansluiten

Ik ga de Arduino gebruiken om dit project te bouwen, hoewel ik de iets goedkopere maar langzamere Arduino Mega zou kunnen gebruiken. Arduino Due is veel sneller dan de Arduino Mega en heeft veel geheugen, daarom geef ik er de voorkeur aan voor dit project.

Eerst moeten we alle onderdelen met elkaar verbinden. Ik ga deze mannelijke headers gebruiken om de RTC-module aan te sluiten op de Arduino DUE.

We hebben vier header-pinnen nodig. Twee voor voeding en twee voor de I2C-interface. We buigen ze zo en we verbinden er een met de 3.3V-pin van het Arduino Due-bord, de andere met GND en de andere twee met de SDA- en SCL-pin van het bord. Met enkele vrouwelijke draden verbinden we de module met het bord. Dat is het.

Nu kunnen we het display aan het bord bevestigen. Je hoeft deze twee pinnen niet op het Arduino-bord aan te sluiten, dus ik laat ze zweven.

Nu zijn we klaar om het project krachtiger te maken. Zoals je ziet werkt het prima! Zo gemakkelijk is het! Laten we nu naar de computer gaan om de softwarekant van het project te bekijken.

Stap 5:De code van het project

Nu zijn we klaar om de code te bekijken. We gebruiken twee bibliotheken in dit project:

  • Bibliotheek weergeven
  • DS3231-bibliotheek

Je moet ze installeren en dan zal het project prima compileren!

Het eerste dat we moeten doen, is de tijd instellen op de realtimeklokmodule als deze nog niet is ingesteld. Om dit te doen, voert u de huidige datum en tijd in bij de void setRTCTime-functie,

void setRTCTime(){ DateTime dt(2016, 4, 4, 13, 56, 30, 1); // Jaar, maand, dag, uur, minuten, seconden, dag van de week rtc.setDateTime(dt); } 

verwijder commentaar op de aanroep van de functie in de Setup-functie:

void setup(){ rtc.begin(); tft.init(); tft.setRotatie(1); tft.fillScreen(0xC618); vertraging (100); printUI(); setRTCTime();} 

En upload het programma naar Arduino. Nu is de tijd ingesteld. Maar dan moeten we de aanroep van de setRTCTime-functie opnieuw becommentariëren en het programma opnieuw naar Arduino uploaden.

void setup(){ rtc.begin(); tft.init(); tft.setRotatie(1); tft.fillScreen(0xC618); vertraging (100); printUI(); //setRTCTime();} 

Zoals u kunt zien, is de code van het project eenvoudig. We printen gewoon de gebruikersinterface en geven vervolgens de datum, de tijd en de erop weer.

void loop(){ float-temperatuur =rtc.getTemperature(); getAndPrintTime(); printTemperatuur(temperatuur); if(temperatuur>maxTemperature) { maxTemperature =temperatuur; updateMaxTemperatuur(); }if(temperatuur 

U vindt de code bij deze stap. U kunt de nieuwste versie van de code hier downloaden van de website van het project:http://educ8s.tv/arduino-real-time-clock-32/

DueRTC.ino

Stap 6:Laatste gedachten

Zoals je kunt zien, kunnen we met een paar regels code en tegen zeer lage kosten een zeer nuttig project bouwen. Ik ga meer aan dit project werken omdat het een geavanceerd weerstation wordt, met meer sensoren, grafieken en wifi-mogelijkheden.

Omdat de Arduino Due erg snel is en veel geheugen heeft, denk ik dat dit het ideale Arduino-bord is om te gebruiken. Wat vind je van dit project? Hoe wil je het zien evolueren?

Plaats uw opmerkingen of ideeën in de opmerkingen hieronder.

Code

  • Codefragment #2
  • Codefragment #3
  • Codefragment #4
Codefragment #2Platte tekst
ongeldige setup(){ rtc.begin(); tft.init(); tft.setRotatie(1); tft.fillScreen(0xC618); vertraging (100); printUI(); setRTCTime();}
Codefragment #3Platte tekst
ongeldige setup(){ rtc.begin(); tft.init(); tft.setRotatie(1); tft.fillScreen(0xC618); vertraging (100); printUI(); //setRTCTime();}
Codefragment #4Platte tekst
void loop(){ float-temperatuur =rtc.getTemperature(); getAndPrintTime(); printTemperatuur(temperatuur); if(temperatuur>maxTemperature) { maxTemperature =temperatuur; updateMaxTemperatuur(); }if(temperatuur 
Github
https://github.com/Bodmer/TFT_HX8357_Duehttps://github.com/Bodmer/TFT_HX8357_Due
Github
https://github.com/SodaqMoja/Sodaq_DS3231https://github.com/SodaqMoja/Sodaq_DS3231

Productieproces

  1. Een effect besturen met echte sensoren
  2. Arduino klok met islamitische gebedstijden
  3. Word Clock met minutenresolutie van tijd in woorden
  4. Spelen met Nextion Display
  5. TM1637 digitale klok met tijdinstelling en alarmfunctie
  6. DIY voltmeter met Arduino en een Nokia 5110-display
  7. BME280 temperatuur, vochtigheid en druk op Nextion-display
  8. Besturing van servomotor met Arduino en MPU6050
  9. u-blox LEA-6H 02 GPS-module met Arduino en Python
  10. Spraakherkenning en synthese met Arduino
  11. Eenvoudige wekker met DS1302 RTC