read TI TMP102 temperature and display on SSD1306 OLED

Dependencies:   Adafruit_GFX TMP102 mbed

Fork of DisplayOled by Frank Girald

Committer:
poushen
Date:
Tue Jun 12 03:23:03 2018 +0000
Revision:
1:c636842ce79c
Parent:
0:3b87797f65fc
Child:
3:6fd4514ca28c
combind oled (ssd1306), and tmp102 sensor to one project; add one shot, sleep, wakeup, extended mode, ... to test_TMP102

Who changed what in which revision?

UserRevisionLine numberNew contents of line
poushen 1:c636842ce79c 1 /*
franni 0:3b87797f65fc 2 #include "mbed.h"
franni 0:3b87797f65fc 3 #include "Adafruit_SSD1306.h"
franni 0:3b87797f65fc 4
franni 0:3b87797f65fc 5 DigitalOut led1(LED_RED);
franni 0:3b87797f65fc 6
franni 0:3b87797f65fc 7 // SPI sub-class that provides a constructed default
franni 0:3b87797f65fc 8 class I2CPreInit : public I2C
franni 0:3b87797f65fc 9 {
franni 0:3b87797f65fc 10 public:
franni 0:3b87797f65fc 11 I2CPreInit(PinName sda, PinName scl) : I2C(sda, scl)
franni 0:3b87797f65fc 12 {
poushen 1:c636842ce79c 13 frequency(1000000);
poushen 1:c636842ce79c 14 //frequency(100000);
poushen 1:c636842ce79c 15 //start();
franni 0:3b87797f65fc 16 };
franni 0:3b87797f65fc 17 };
franni 0:3b87797f65fc 18
poushen 1:c636842ce79c 19 I2CPreInit myI2C(PB_9,PB_8);
franni 0:3b87797f65fc 20 Adafruit_SSD1306_I2c myOled(myI2C,NC,0x78,64,128);
franni 0:3b87797f65fc 21
franni 0:3b87797f65fc 22 int main()
franni 0:3b87797f65fc 23 {
franni 0:3b87797f65fc 24 uint16_t x=0;
franni 0:3b87797f65fc 25
franni 0:3b87797f65fc 26 myOled.begin();
franni 0:3b87797f65fc 27 myOled.printf("%ux%u Hellow World\r\n", myOled.width(), myOled.height());
franni 0:3b87797f65fc 28 myOled.display();
franni 0:3b87797f65fc 29
franni 0:3b87797f65fc 30 while(1)
franni 0:3b87797f65fc 31 {
franni 0:3b87797f65fc 32 led1 = !led1;
franni 0:3b87797f65fc 33 myOled.printf("%u\r",x);
franni 0:3b87797f65fc 34 myOled.display();
franni 0:3b87797f65fc 35 x = x + 1;
franni 0:3b87797f65fc 36 wait(1.0);
franni 0:3b87797f65fc 37 }
franni 0:3b87797f65fc 38 }
franni 0:3b87797f65fc 39
poushen 1:c636842ce79c 40 */
franni 0:3b87797f65fc 41
franni 0:3b87797f65fc 42
franni 0:3b87797f65fc 43
franni 0:3b87797f65fc 44
franni 0:3b87797f65fc 45
franni 0:3b87797f65fc 46 #include "mbed.h"
franni 0:3b87797f65fc 47 #include "Adafruit_SSD1306.h"
poushen 1:c636842ce79c 48 #include "test_TMP102.h"
franni 0:3b87797f65fc 49
franni 0:3b87797f65fc 50 class I2CPreInit : public I2C
franni 0:3b87797f65fc 51 {
franni 0:3b87797f65fc 52 public:
franni 0:3b87797f65fc 53 I2CPreInit(PinName sda, PinName scl) : I2C(sda, scl)
franni 0:3b87797f65fc 54 {
poushen 1:c636842ce79c 55 frequency(1000000);
poushen 1:c636842ce79c 56 //start();
franni 0:3b87797f65fc 57 };
franni 0:3b87797f65fc 58 };
franni 0:3b87797f65fc 59
poushen 1:c636842ce79c 60 I2CPreInit myI2C(PB_9,PB_8);
franni 0:3b87797f65fc 61 Adafruit_SSD1306_I2c myOled(myI2C,NC,0x78,64,128);
poushen 1:c636842ce79c 62
poushen 1:c636842ce79c 63 test_TMP102 temp1(myI2C);
franni 0:3b87797f65fc 64
franni 0:3b87797f65fc 65 int main()
franni 0:3b87797f65fc 66 {
poushen 1:c636842ce79c 67 uint16_t x=0;
franni 0:3b87797f65fc 68
poushen 1:c636842ce79c 69 // ------------ tmp102 --------------
poushen 1:c636842ce79c 70 temp1.setExtendedMode(1);
poushen 1:c636842ce79c 71 temp1.setConversionRate(2);
poushen 1:c636842ce79c 72 temp1.sleep();
poushen 1:c636842ce79c 73
poushen 1:c636842ce79c 74 // ------------ oled --------------
poushen 1:c636842ce79c 75 myOled.begin();
poushen 1:c636842ce79c 76 myOled.clearDisplay();
poushen 1:c636842ce79c 77 myOled.display();
poushen 1:c636842ce79c 78 wait(0.1);
poushen 1:c636842ce79c 79
poushen 1:c636842ce79c 80 myOled.fillCircle(64, 42, 10, 1);
poushen 1:c636842ce79c 81 myOled.display();
poushen 1:c636842ce79c 82 wait(1);
poushen 1:c636842ce79c 83 myOled.fillCircle(64, 42, 5, 0);
poushen 1:c636842ce79c 84 myOled.display();
poushen 1:c636842ce79c 85 wait(1);
poushen 1:c636842ce79c 86
poushen 1:c636842ce79c 87 myOled.clearDisplay();
poushen 1:c636842ce79c 88 myOled.display();
poushen 1:c636842ce79c 89 wait(0.1);
poushen 1:c636842ce79c 90
poushen 1:c636842ce79c 91 myOled.printf("\r\n OLED %ux%u \r\n\r\n Hello World\r\n\n", myOled.width(), myOled.height());
poushen 1:c636842ce79c 92
poushen 1:c636842ce79c 93 myOled.drawRect(0, 0, 128, 64,1);
poushen 1:c636842ce79c 94 myOled.display();
poushen 1:c636842ce79c 95 wait(0.5);
poushen 1:c636842ce79c 96 while(1)
poushen 1:c636842ce79c 97 {
poushen 1:c636842ce79c 98 temp1.oneShot();
poushen 1:c636842ce79c 99 float t1 = temp1;
poushen 1:c636842ce79c 100
poushen 1:c636842ce79c 101 //myOled.printf("%u\r ",x);
poushen 1:c636842ce79c 102 myOled.printf(" Temp: %.3f ~c\r", t1);
franni 0:3b87797f65fc 103
poushen 1:c636842ce79c 104 myOled.drawRect(0, 0, 128, 64,1);
poushen 1:c636842ce79c 105
poushen 1:c636842ce79c 106 myOled.display();
poushen 1:c636842ce79c 107 x = x + 1;
poushen 1:c636842ce79c 108 wait(0.5);
poushen 1:c636842ce79c 109 }
franni 0:3b87797f65fc 110 }
franni 0:3b87797f65fc 111
franni 0:3b87797f65fc 112
franni 0:3b87797f65fc 113
franni 0:3b87797f65fc 114
poushen 1:c636842ce79c 115