We connected an OLED to I2C of weather:bit.

Dependencies:   BME280 SSD1308_128x64_I2C microbit

Fork of mbed_oled by Wim Huiskamp

/media/uploads/kanpapa/img_20171215_224649.jpg

Committer:
kanpapa
Date:
Fri Dec 15 06:38:28 2017 +0000
Revision:
8:40f4585a5172
Parent:
7:ae282775cbcc
1st release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kanpapa 8:40f4585a5172 1 /*
kanpapa 8:40f4585a5172 2 * micro:bit weather:bit + SSD1306 OLED 128x64 OLED Test program
wim 1:00053cb70ac5 3 *
kanpapa 8:40f4585a5172 4 * Copyright (c) 2017 Kazuhiro Ouchi (@kanpapa)
wim 1:00053cb70ac5 5 * Released under the MIT License: http://mbed.org/license/mit
wim 1:00053cb70ac5 6 *
kanpapa 8:40f4585a5172 7 * version 0.1 Initial Release
wim 1:00053cb70ac5 8 */
kanpapa 8:40f4585a5172 9 #include "MicroBit.h"
wim 1:00053cb70ac5 10 #include "mbed_logo.h"
kanpapa 8:40f4585a5172 11 #include "SSD1308.h" // https://os.mbed.com/users/wim/code/SSD1308_128x64_I2C/
kanpapa 8:40f4585a5172 12 #include "BME280.h" // https://os.mbed.com/users/MACRUM/code/BME280/
wim 7:ae282775cbcc 13
kanpapa 8:40f4585a5172 14 MicroBit uBit;
kanpapa 8:40f4585a5172 15 MicroBitI2C i2c(I2C_SDA0, I2C_SCL0);
wim 1:00053cb70ac5 16
kanpapa 8:40f4585a5172 17 // Instantiate OLED SSD1306
kanpapa 8:40f4585a5172 18 // I2C address 0x78
wim 1:00053cb70ac5 19 SSD1308 oled = SSD1308(i2c, SSD1308_SA0);
wim 1:00053cb70ac5 20
kanpapa 8:40f4585a5172 21 // I2C address 0x76(default)
kanpapa 8:40f4585a5172 22 // Instantiate BME280 sensor
kanpapa 8:40f4585a5172 23 BME280 sensor = BME280(i2c);
wim 1:00053cb70ac5 24
kanpapa 8:40f4585a5172 25 int main() {
kanpapa 8:40f4585a5172 26 // Initialise the micro:bit runtime.
kanpapa 8:40f4585a5172 27 uBit.init();
wim 1:00053cb70ac5 28
kanpapa 8:40f4585a5172 29 // micro:bit LED test
kanpapa 8:40f4585a5172 30 uBit.display.scroll("HELLO WORLD! :)");
wim 1:00053cb70ac5 31
kanpapa 8:40f4585a5172 32 // OLED test
kanpapa 8:40f4585a5172 33 oled.writeString(0, 0, "Hello World !");
wim 2:d86478c0f5da 34
kanpapa 8:40f4585a5172 35 oled.fillDisplay(0xAA);
kanpapa 8:40f4585a5172 36 oled.setDisplayOff();
kanpapa 8:40f4585a5172 37 wait(1);
kanpapa 8:40f4585a5172 38 oled.setDisplayOn();
kanpapa 8:40f4585a5172 39
kanpapa 8:40f4585a5172 40 // weather info display
kanpapa 8:40f4585a5172 41 while (1) {
kanpapa 8:40f4585a5172 42 oled.clearDisplay();
kanpapa 8:40f4585a5172 43 oled.setDisplayInverse();
kanpapa 8:40f4585a5172 44 wait(0.5);
kanpapa 8:40f4585a5172 45 oled.setDisplayNormal();
kanpapa 8:40f4585a5172 46
kanpapa 8:40f4585a5172 47 oled.writeBitmap((uint8_t*) mbed_logo);
kanpapa 8:40f4585a5172 48 wait(1);
wim 1:00053cb70ac5 49
kanpapa 8:40f4585a5172 50 oled.clearDisplay();
kanpapa 8:40f4585a5172 51 oled.printf("%2.2f degC, %04.2f hPa, %2.2f %%\n", sensor.getTemperature(), sensor.getPressure(), sensor.getHumidity());
kanpapa 8:40f4585a5172 52 wait(10);
wim 1:00053cb70ac5 53 }
kanpapa 8:40f4585a5172 54 } //main