Demo of the sample LCD class, BMP280 Sensor and network with power on self test. Requires a network connectionb

Dependencies:   BME280 BMP280 ELEC350-Practicals-FZ429 TextLCD

Fork of ELEC350-LCD-DEMO by University of Plymouth - Stage 2 and 3

Files at this revision

API Documentation at this revision

Comitter:
noutram
Date:
Thu Dec 07 15:29:33 2017 +0000
Parent:
2:40403785b690
Child:
4:d26b261b76c9
Commit message:
Coursework template for ELEC350 + ELEC351 2017

Changed in this revision

ELEC350-Coursework-2017.lib Show annotated file Show diff for this revision Revisions of this file
ELEC350-Practicals-FZ429.lib 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/ELEC350-Coursework-2017.lib	Thu Dec 07 15:29:33 2017 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/teams/University-of-Plymouth-Stage-2-and-3/code/ELEC350-Practicals-FZ429/#df979097cc71
--- a/ELEC350-Practicals-FZ429.lib	Wed Dec 06 17:00:37 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-https://os.mbed.com/teams/University-of-Plymouth-Stage-2-and-3/code/ELEC350-Practicals-FZ429/#d0e445a97c60
--- a/main.cpp	Wed Dec 06 17:00:37 2017 +0000
+++ b/main.cpp	Thu Dec 07 15:29:33 2017 +0000
@@ -1,35 +1,25 @@
-#include "mbed.h"
-#include "TextLCD.h"
-#include "SDBlockDevice.h"
-#include "FATFileSystem.h"
 #include "sample_hardware.hpp"
-
-
+#include "Networkbits.hpp"
 
-//#define BME
-#ifdef BME
-#include "BME280.h"
-#else
-#include "BMP280.h"
-#endif
+// 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
 
-//LCD Driver
-//RS D9
-//E  D8
-//D7,6,4,2 are the 4 bit for d4-7
-TextLCD lcd(D9, D8, D7, D6, D4, D2); // rs, e, d4-d7
-SDBlockDevice sd(PB_5, D12, D13, D10); // mosi, miso, sclk, cs
+//Threads
+Thread nwrkThread;
  
+
 int main() {
     //Greeting
-    lcd.printf("Testing\n\n");    
+    printf("Testing\n\n");    
     
     //Power on self test
     post();
     
-    //Initialise the SD card
+    //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);
     } 
     
@@ -40,21 +30,34 @@
     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
+        //Write to SD (potentially slow)
         fprintf(fp, "%6.1f,%.2f\n\r", temp, pressure);
-        
-        wait(1.0);
     }
     
     //Close File