-
Notifications
You must be signed in to change notification settings - Fork 433
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
13 changed files
with
430 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
#include <M5Stack.h> | ||
#include "utility/DHT12.h" | ||
#include <Wire.h> //The DHT12 uses I2C comunication. | ||
DHT12 dht12; //Preset scale CELSIUS and ID 0x5c. | ||
|
||
/* | ||
For configuration library: | ||
DHT12 dht12("Scale temperature","ID device for I2C"); | ||
On "Scale temperature" you can select the preset scale: | ||
CELSIUS, FAHRENHEIT or KELVIN. | ||
And on "ID device", you can put ID sensor, on DHT12 | ||
normally is 0x5c. | ||
Examples: | ||
DHT12 dht12; | ||
The preset scale is CELSIUS and ID is 0x5c. | ||
DHT12 dht12(KELVIN); | ||
the preset scale is KELVIN and ID is 0x5c. | ||
DHT12 dht12(FAHRENHEIT,0x53); | ||
The preset scale is FAHRENHEIT and ID is 0x53. | ||
*/ | ||
|
||
void setup() { | ||
M5.begin(); | ||
Wire.begin(); | ||
Serial.println("Prueba de libreria DHT12:"); | ||
M5.Lcd.println("Prueba de libreria DHT12:"); | ||
} | ||
|
||
void loop() { | ||
//Read temperature with preset scale. | ||
Serial.print("Temperatura: "); | ||
M5.Lcd.print("Temperatura: "); | ||
Serial.print(dht12.readTemperature()); | ||
M5.Lcd.print(dht12.readTemperature()); | ||
|
||
//Read humidity. | ||
Serial.print("*C Humedad: "); | ||
M5.Lcd.print("*C Humedad: "); | ||
Serial.print(dht12.readHumidity()); | ||
M5.Lcd.println(dht12.readHumidity()); | ||
|
||
//Read temperature as forced fahrenheit. | ||
Serial.println("%RH"); | ||
Serial.println("%RH"); | ||
Serial.print("Temperatura: "); | ||
Serial.print(dht12.readTemperature(FAHRENHEIT)); | ||
|
||
//Read termperature as forced kelvin. | ||
Serial.println("*F"); | ||
Serial.print("Temperatura: "); | ||
Serial.print(dht12.readTemperature(KELVIN)); | ||
Serial.println("*K"); | ||
|
||
delay(5000); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,161 @@ | ||
#include <M5Stack.h> | ||
#include <TinyGPS++.h> | ||
|
||
/* | ||
This sample code demonstrates the normal use of a TinyGPS++ (TinyGPSPlus) object. | ||
It requires the use of SoftwareSerial, and assumes that you have a | ||
4800-baud serial GPS device hooked up on pins 4(rx) and 3(tx). | ||
*/ | ||
static const uint32_t GPSBaud = 9600; | ||
|
||
// The TinyGPS++ object | ||
TinyGPSPlus gps; | ||
|
||
// The serial connection to the GPS device | ||
HardwareSerial ss(2); | ||
|
||
void setup() | ||
{ | ||
M5.begin(); | ||
ss.begin(GPSBaud); | ||
|
||
// M5.Lcd.println(F("FullExample.ino")); | ||
// M5.Lcd.println(F("An extensive example of many interesting TinyGPS++ features")); | ||
// M5.Lcd.print(F("Testing TinyGPS++ library v. ")); M5.Lcd.println(TinyGPSPlus::libraryVersion()); | ||
// M5.Lcd.println(F("by Mikal Hart")); | ||
// M5.Lcd.println(); | ||
M5.Lcd.println(F("Sats HDOP Latitude Longitude Fix Date Time Date Alt Course Speed Card Distance Course Card Chars Sentences Checksum")); | ||
M5.Lcd.println(F(" (deg) (deg) Age Age (m) --- from GPS ---- ---- to London ---- RX RX Fail")); | ||
M5.Lcd.println(F("---------------------------------------------------------------------------------------------------------------------------------------")); | ||
} | ||
|
||
void loop() | ||
{ | ||
M5.Lcd.setCursor(0, 70); | ||
M5.Lcd.setTextColor(WHITE, BLACK); | ||
static const double LONDON_LAT = 51.508131, LONDON_LON = -0.128002; | ||
|
||
printInt(gps.satellites.value(), gps.satellites.isValid(), 5); | ||
printInt(gps.hdop.value(), gps.hdop.isValid(), 5); | ||
printFloat(gps.location.lat(), gps.location.isValid(), 11, 6); | ||
printFloat(gps.location.lng(), gps.location.isValid(), 12, 6); | ||
printInt(gps.location.age(), gps.location.isValid(), 5); | ||
printDateTime(gps.date, gps.time); | ||
printFloat(gps.altitude.meters(), gps.altitude.isValid(), 7, 2); | ||
printFloat(gps.course.deg(), gps.course.isValid(), 7, 2); | ||
printFloat(gps.speed.kmph(), gps.speed.isValid(), 6, 2); | ||
printStr(gps.course.isValid() ? TinyGPSPlus::cardinal(gps.course.deg()) : "*** ", 6); | ||
|
||
unsigned long distanceKmToLondon = | ||
(unsigned long)TinyGPSPlus::distanceBetween( | ||
gps.location.lat(), | ||
gps.location.lng(), | ||
LONDON_LAT, | ||
LONDON_LON) / 1000; | ||
printInt(distanceKmToLondon, gps.location.isValid(), 9); | ||
|
||
double courseToLondon = | ||
TinyGPSPlus::courseTo( | ||
gps.location.lat(), | ||
gps.location.lng(), | ||
LONDON_LAT, | ||
LONDON_LON); | ||
|
||
printFloat(courseToLondon, gps.location.isValid(), 7, 2); | ||
|
||
const char *cardinalToLondon = TinyGPSPlus::cardinal(courseToLondon); | ||
|
||
printStr(gps.location.isValid() ? cardinalToLondon : "*** ", 6); | ||
|
||
printInt(gps.charsProcessed(), true, 6); | ||
printInt(gps.sentencesWithFix(), true, 10); | ||
printInt(gps.failedChecksum(), true, 9); | ||
M5.Lcd.println(); | ||
|
||
smartDelay(1000); | ||
|
||
if (millis() > 5000 && gps.charsProcessed() < 10) | ||
M5.Lcd.println(F("No GPS data received: check wiring")); | ||
} | ||
|
||
// This custom version of delay() ensures that the gps object | ||
// is being "fed". | ||
static void smartDelay(unsigned long ms) | ||
{ | ||
unsigned long start = millis(); | ||
do | ||
{ | ||
while (ss.available()) | ||
gps.encode(ss.read()); | ||
} while (millis() - start < ms); | ||
} | ||
|
||
static void printFloat(float val, bool valid, int len, int prec) | ||
{ | ||
if (!valid) | ||
{ | ||
while (len-- > 1) | ||
M5.Lcd.print('*'); | ||
M5.Lcd.print(' '); | ||
} | ||
else | ||
{ | ||
M5.Lcd.print(val, prec); | ||
int vi = abs((int)val); | ||
int flen = prec + (val < 0.0 ? 2 : 1); // . and - | ||
flen += vi >= 1000 ? 4 : vi >= 100 ? 3 : vi >= 10 ? 2 : 1; | ||
for (int i=flen; i<len; ++i) | ||
M5.Lcd.print(' '); | ||
} | ||
smartDelay(0); | ||
} | ||
|
||
static void printInt(unsigned long val, bool valid, int len) | ||
{ | ||
char sz[32] = "*****************"; | ||
if (valid) | ||
sprintf(sz, "%ld", val); | ||
sz[len] = 0; | ||
for (int i=strlen(sz); i<len; ++i) | ||
sz[i] = ' '; | ||
if (len > 0) | ||
sz[len-1] = ' '; | ||
M5.Lcd.print(sz); | ||
smartDelay(0); | ||
} | ||
|
||
static void printDateTime(TinyGPSDate &d, TinyGPSTime &t) | ||
{ | ||
if (!d.isValid()) | ||
{ | ||
M5.Lcd.print(F("********** ")); | ||
} | ||
else | ||
{ | ||
char sz[32]; | ||
sprintf(sz, "%02d/%02d/%02d ", d.month(), d.day(), d.year()); | ||
M5.Lcd.print(sz); | ||
} | ||
|
||
if (!t.isValid()) | ||
{ | ||
M5.Lcd.print(F("******** ")); | ||
} | ||
else | ||
{ | ||
char sz[32]; | ||
sprintf(sz, "%02d:%02d:%02d ", t.hour(), t.minute(), t.second()); | ||
M5.Lcd.print(sz); | ||
} | ||
|
||
printInt(d.age(), d.isValid(), 5); | ||
smartDelay(0); | ||
} | ||
|
||
static void printStr(const char *str, int len) | ||
{ | ||
int slen = strlen(str); | ||
for (int i=0; i<len; ++i) | ||
M5.Lcd.print(i<slen ? str[i] : ' '); | ||
smartDelay(0); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
#include <M5Stack.h> | ||
|
||
HardwareSerial GPSRaw(2); | ||
|
||
void setup() { | ||
|
||
M5.begin(); | ||
GPSRaw.begin(9600); | ||
|
||
Serial.println("hello"); | ||
termInit(); | ||
} | ||
|
||
void loop() { | ||
// put your main code here, to run repeatedly: | ||
if(Serial.available()) { | ||
int ch = Serial.read(); | ||
GPSRaw.write(ch); | ||
} | ||
|
||
if(GPSRaw.available()) { | ||
int ch = GPSRaw.read(); | ||
Serial.write(ch); | ||
termPutchar(ch); | ||
} | ||
} |
Oops, something went wrong.