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

main.cpp

Committer:
kanpapa
Date:
2017-12-15
Revision:
8:40f4585a5172
Parent:
7:ae282775cbcc

File content as of revision 8:40f4585a5172:

/* 
 * micro:bit weather:bit + SSD1306 OLED 128x64 OLED Test program
 *
 * Copyright (c) 2017 Kazuhiro Ouchi (@kanpapa)
 * Released under the MIT License: http://mbed.org/license/mit
 *
 * version 0.1 Initial Release
 */
#include "MicroBit.h"
#include "mbed_logo.h"
#include "SSD1308.h"  // https://os.mbed.com/users/wim/code/SSD1308_128x64_I2C/
#include "BME280.h"   // https://os.mbed.com/users/MACRUM/code/BME280/

MicroBit uBit;
MicroBitI2C i2c(I2C_SDA0, I2C_SCL0); 

// Instantiate OLED SSD1306
// I2C address 0x78
SSD1308 oled = SSD1308(i2c, SSD1308_SA0);

// I2C address 0x76(default)
// Instantiate BME280 sensor
BME280 sensor = BME280(i2c);
     
int main() {
    // Initialise the micro:bit runtime.
    uBit.init();
    
    // micro:bit LED test
    uBit.display.scroll("HELLO WORLD! :)");
    
    // OLED test
    oled.writeString(0, 0, "Hello World !");
   
    oled.fillDisplay(0xAA);
    oled.setDisplayOff();
    wait(1);   
    oled.setDisplayOn();
 
    // weather info display
    while (1) {
        oled.clearDisplay();
        oled.setDisplayInverse();
        wait(0.5);
        oled.setDisplayNormal();                                         
 
        oled.writeBitmap((uint8_t*) mbed_logo);
        wait(1);
    
        oled.clearDisplay();
        oled.printf("%2.2f degC, %04.2f hPa, %2.2f %%\n", sensor.getTemperature(), sensor.getPressure(), sensor.getHumidity());
        wait(10);
    }
} //main