Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: CheckRTC LPS25H hts221
Fork of ELEC350-extended-referral2 by
Revision 39:504f5dc30a33, committed 2017-11-15
- Comitter:
- spanesar
- Date:
- Wed Nov 15 11:43:05 2017 +0000
- Parent:
- 38:10aadcc9a2dd
- Child:
- 40:426cd176ce80
- Commit message:
- discussion with tutor
Changed in this revision
| CheckRTC.lib | Show annotated file Show diff for this revision Revisions of this file |
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CheckRTC.lib Wed Nov 15 11:43:05 2017 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/kenjiArai/code/CheckRTC/#921a188e61c0
--- a/main.cpp Fri Sep 29 12:21:33 2017 +0000
+++ b/main.cpp Wed Nov 15 11:43:05 2017 +0000
@@ -2,62 +2,113 @@
#include "rtos.h"
#include "hts221.h"
#include "LPS25H.h"
+//#include "CheckRTC.h"
+
DigitalOut myled(LED1);
I2C i2c2(I2C_SDA, I2C_SCL);
-
+Serial pc(USBTX, USBRX);
float tempCelsius = 25.50;
float humi = 55;
-int humiMax = 100;
+int humiMax = 100;
char cmd=0;
-uint32_t seconds = 0, minutes=0, hours=0;
+uint32_t seconds = 0, minutes=0, hours=0;
+Ticker t;
+volatile static unsigned short sample16 = 0;
+void doSample1Hz();
+int count = 0;
+char *buf;
+size_t sz;
+
LPS25H barometer(i2c2, LPS25H_V_CHIP_ADDR);
HTS221 humidity(I2C_SDA, I2C_SCL);
+
+
+
+
int main()
- {
- humidity.init();
- humidity.calib();
- printf("ELEC350/351 Simple Temperature Humidity and Pressure Sensor Monitor\n\r");
- printf("Using the X-NUCLEO-IKS01A1 shield and mbed-os Libraries\n\r");
- printf("Press A to take a measurement\n\r");
-
- aA
- while(1)
- {
- cmd=NULL;
- while(cmd==NULL){cmd=getchar();}
- if(cmd=='?'){
- printf("SOFT253 simple Temperature Humidity and Pressure Sensor Monitor\n\r");
- printf("Using the X-NUCLEO-IKS01A1 shield and MBED Libraries\n\r");
-
- }
- if(cmd=='A'){
- humidity.ReadTempHumi(&tempCelsius, &humi);
- printf("%4.2fC %3.1f%%", tempCelsius, humi);
- barometer.get();
- printf(" %6.1f %4.1f\r\n", barometer.pressure(), barometer.temperature());
- myled = 1; // LED is ON
- Thread::wait(200); // 200 ms NB 'Thread::wait(int d);' !!! d is in milliseconds!
- myled = 0; // LED is OFF
- Thread::wait(100); // 100 ms
- }
- }
- }
-
+{
+ pc.baud(9600); //sets baud rate to 9600
+ time_t seconds = time(NULL);
+ char time [32];
+ char date [32];
+ strftime(time, 32, "%H:%M:%S %p", localtime(&seconds));
+ strftime(date, 32, "%Y/%m/%d %a", localtime(&seconds));
+ humidity.init();
+ humidity.calib();
+ //t.attach(doSample1Hz, 1.0);
+ printf("press T to set time and date \n\r");
+ printf("press S to start sampling\n\r");
+ printf("press D to delete sensor data\n\r");
+ printf("Press A to read all sensor data\n\r");
+ printf("Press R to read sensor data in memory\n\r");
+
+
+
-/*#include "mbed.h"
-
-DigitalOut led1(LED1);
+ while(1) {
-// main() runs in its own thread in the OS
-int main() {
- while (true) {
- led1 = !led1;
- wait(0.5);
+ cmd=NULL;
+ while(cmd==NULL) {
+ cmd=getchar();
+ }
+ if(cmd=='?') {
+ printf("SOFT253 simple Temperature Humidity and Pressure Sensor Monitor\n\r");
+ printf("Using the X-NUCLEO-IKS01A1 shield and MBED Libraries\n\r");
+ }
+/*--------------If 'A' is pressed then all sensor data is diplayed---------------------*/
+ if(cmd=='A') {
+ humidity.ReadTempHumi(&tempCelsius, &humi); // reads temperature and humity levels
+ barometer.get(); // gets barometer readings
+ // displays all the variables of time, date, temperature, humidity and all the barometric readings to the serial
+ printf("%s, %s, %4.2fC , %3.1f%%, %6.1f, %4.1f\n\r", time, date, tempCelsius, humi, barometer.pressure(), barometer.temperature());
+ myled = 1; // LED is ON
+ Thread::wait(200); // 200 ms NB 'Thread::wait(int d);' !!! d is in milliseconds!
+ myled = 0; // LED is OFF
+ Thread::wait(100); // 100 ms
+ }
+ /*-------------- if 'T' is pressed then the time and date are set to the UTC below------------------------*/
+ if(cmd=='T') {
+ set_time(1508268288);
+ printf("time and date updated to %s %s\n\r", time, date);
+ myled = 1;
+ Thread::wait(200);
+ myled = 0;
+ Thread::wait(100);
+ }
+/*-------------if 's' is pressed, 5 sample of data are taken and stored to the RAM every second-------------------------*/
+ if(cmd=='S') {
+ for (count = 0; count < 5; count++){
+ sz = snprintf(NULL, 0,"%s, %s, %4.2fC , %3.1f%%, %6.1f, %4.1f\n\r", time, date, tempCelsius, humi, barometer.pressure(), barometer.temperature());
+ buf = (char *)malloc(sz + 1);
+ snprintf(buf, sz + 1, "%s, %s, %4.2fC , %3.1f%%, %6.1f, %4.1f\n\r", time, date, tempCelsius, humi, barometer.pressure(), barometer.temperature());
+ printf("%s\n\r",buf);
+ printf("written to memory\n\r");
+ myled = 1;
+ Thread::wait(200);
+ myled = 0;
+ Thread::wait(100);
+ wait(1);
+ }
+ if(cmd=='R'){
+ printf("%s\n\r", buf);
+ myled = 1;
+ Thread::wait(200);
+ myled = 0;
+ Thread::wait (100);
+ }
+ }
}
+
}
-*/
+void doSample1Hz()
+{
+ //sz = snprintf(NULL, 0,"%s, %s, %4.2fC , %3.1f%%, %6.1f, %4.1f\n\r", time, date, tempCelsius, humi, barometer.pressure(), barometer.temperature());
+ //buf = (char *)malloc(sz + 1);
+ //snprintf(buf, sz + 1, "%s, %s, %4.2fC , %3.1f%%, %6.1f, %4.1f\n\r", time, date, tempCelsius, humi, barometer.pressure(), barometer.temperature());
+
+}
