Coursework template
Dependencies: BMP280 TextLCD BME280
Diff: main.cpp
- Revision:
- 0:57d39f966513
diff -r 000000000000 -r 57d39f966513 main.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Sat Nov 24 09:35:51 2018 +0000
@@ -0,0 +1,82 @@
+#include "sample_hardware.hpp"
+#include "Networkbits.hpp"
+
+// This is a very short demo that demonstrates all the hardware used in the coursework.
+// You will need a network connection set up (covered elsewhere). The host PC should have the address 10.0.0.1
+
+//Threads
+Thread nwrkThread;
+
+
+int main() {
+ //Greeting
+ printf("Testing\n\n");
+
+ //Power on self test
+ post();
+
+ //Initialise the SD card (this needs to move)
+ if ( sd.init() != 0) {
+ printf("Init failed \n");
+ lcd.cls();
+ lcd.printf("CANNOT INIT SD");
+ errorCode(FATAL);
+ }
+
+ //Create a filing system for SD Card
+ FATFileSystem fs("sd", &sd);
+
+ //Open to WRITE
+ FILE* fp = fopen("/sd/test.csv","a");
+ if (fp == NULL) {
+ error("Could not open file for write\n");
+ lcd.cls();
+ lcd.printf("CANNOT OPEN FILE\n\n");
+ errorCode(FATAL);
+ }
+
+ //Last message before sampling begins
+ lcd.cls();
+ lcd.printf("READY\n\n");
+
+
+ //Press either switch to unmount
+ while ((SW1 == 0) && (SW2 == 0)) {
+
+ //Base loop delay
+ wait(1.0);
+
+ //Read environmental sensors
+ double temp = sensor.getTemperature();
+ double pressure = sensor.getPressure();
+
+ //Write new data to LCD (not fast!)
+ lcd.cls();
+ lcd.printf("Temp Pressure\n");
+ lcd.printf("%6.1f ",temp);
+ lcd.printf("%.2f\n",pressure);
+
+ //Write to SD (potentially slow)
+ fprintf(fp, "%6.1f,%.2f\n\r", temp, pressure);
+ }
+
+ //Close File
+ fclose(fp);
+
+ //Close down
+ sd.deinit();
+ printf("Unmounted...\n");
+ lcd.cls();
+ lcd.printf("Unmounted...\n\n");
+
+ //Flash to indicate goodness
+ while(true) {
+ greenLED = 1;
+ wait(0.5);
+ greenLED = 0;
+ wait(0.1);
+ }
+}
+
+
+
Nicholas Outram