Using Hexiware, Hexiware dock and an Alcohol click board, create your own breathalizer that connects to Wolksense to record your readings
Dependencies: Hexi_KW40Z Hexi_OLED_SSD1351
Fork of Hexi_OLED_Text_Example by
Revision 6:7f4ba36b025f, committed 2016-09-27
- Comitter:
- daveyclk
- Date:
- Tue Sep 27 10:23:28 2016 +0000
- Parent:
- 5:a27fdb811237
- Commit message:
- fixed first test bug
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Tue Sep 27 09:27:06 2016 +0000
+++ b/main.cpp Tue Sep 27 10:23:28 2016 +0000
@@ -84,7 +84,9 @@
text3[20];
float value[20], // initial sensor set up values
- value1[20]; // initial sensor set up values
+ value1[20]; // initial sensor set up values
+
+bool isFirstBoot = true;
/******************************************************************************
@@ -103,18 +105,17 @@
/******************************************************************************
* Instance setups
*******************************************************************************/
+/* Define timer for haptic feedback */
+RtosTimer hapticTimer(StopHaptic, osTimerOnce);
+
+//set up Analog read pin for alcohol sensor
+AnalogIn Alcohol(PTB2);
/* Instantiate the SSD1351 OLED Driver */
SSD1351 oled(PTB22,PTB21,PTC13,PTB20,PTE6, PTD15); /* (MOSI,SCLK,POWER,CS,RST,DC) */
/* Get OLED Class Default Text Properties */
oled_text_properties_t textProperties = {0};
-
-//set up Analog read pin for alcohol sensor
-AnalogIn Alcohol(PTB2);
-
-/* Define timer for haptic feedback */
-RtosTimer hapticTimer(StopHaptic, osTimerOnce);
/* Instantiate the Hexi KW40Z Driver (UART TX, UART RX) */
KW40Z kw40z_device(PTE24, PTE25);
@@ -175,7 +176,7 @@
hang = iBreatheHang_bmp; // You'll have a hangover image
ini = iBreatheini_bmp; // Initialising image
sober = iBreatheSober_bmp; // Sober as a judge image
-
+
/* Set initial Values */
sysinit();
}
@@ -341,6 +342,9 @@
void ButtonUp(void)
{
StartHaptic();
+
+ bool Ref = false;
+ bool Test = true;
/* LED set to green for test beginning*/
redLed = LED_OFF;
@@ -350,15 +354,25 @@
/* Fill 96px by 96px Screen with 96px by 96px Initialising Image starting at x=0,y=0 */
oled.DrawImage(ini,0,0);
+ /* first boot bug work around to stop junk values */
+ if (isFirstBoot == true)
+ {
+ /*read ambient atmosphere levels with 10 samples and set flag to show it's ambient basline figure*/
+ ambient(1);
+ CalculatePPM(1,Ref);
+ isFirstBoot = false;
+ }
+
/*read ambient atmosphere levels with 10 samples and set flag to show it's ambient basline figure*/
ambient(10);
- CalculatePPM(10,false);
+ CalculatePPM(10,Ref);
+
/* Fill 96px by 96px Screen with 96px by 96px Blowing Image starting at x=0,y=0 */
oled.DrawImage(blow,0,0);
/*read breathe alcohol levels with 10 samples and set flag to show it's breathilyzer test figure*/
- CalculatePPM(10,true);
+ CalculatePPM(10,Test);
/*Calculate the difference in Alcohol level based on Ambient and test sample*/
ppm = ppm - ppm_1;
Dave Clarke
