• micro:bit UART Terminal 1
  • micro:bit UART Terminal 2

micro:bit UART Terminal

This app communicates between Android and a micro:bit device. You can tranmit and receive text in 'notifivation' and 'indication' mode. The UART communication also has to be implemented at the micro:bit device.
Requirements:
- Min. Android 4.4
- Bluetooth Low Energy (BLE)
- Paired devices
- micro:bit programm (developed by yourself)

MBED example:

#include "MicroBit.h"#include "MicroBitUARTService.h"#include "BMP180.h"

MicroBit uBit;MicroBitUARTService *uart;BMP180 bmp180(P0_30, P0_0); char buffer[80];float pressure,temperature;int connected = 0;

void onConnected(MicroBitEvent e){ uBit.display.scroll("C"); connected = 1; }

void onDisconnected(MicroBitEvent e){ uBit.display.scroll("D"); connected = 0;}

void onButtonA(MicroBitEvent e){ uBit.display.scroll(buffer); }

void onButtonB(MicroBitEvent e){ uBit.display.scroll("SK"); }

/*IMPORTANT !!!Oherwise you will run out of memory !

Recommend disabling the DFU and Event services in MicroBitConfig.h since they are not needed here:microbit->microbit-dal->inc->core->MicroBitConfig.h

#define MICROBIT_BLE_DFU_SERVICE 0#define MICROBIT_BLE_EVENT_SERVICE 0#define MICROBIT_SD_GATT_TABLE_SIZE 0x500*/

int main(){ bmp180.Initialize(64, BMP180_OSS_ULTRA_LOW_POWER); pressure = -1; temperature = -1; if (bmp180.ReadData(&temperature,&pressure)) sprintf(buffer, "%.2f C %4.0f hPa", temperature, pressure); else sprintf(buffer,"NOK"); // Initialise the micro:bit runtime. uBit.init();

uBit.messageBus.listen(MICROBIT_ID_BLE, MICROBIT_BLE_EVT_CONNECTED, onConnected); uBit.messageBus.listen(MICROBIT_ID_BLE, MICROBIT_BLE_EVT_DISCONNECTED, onDisconnected); uBit.messageBus.listen(MICROBIT_ID_BUTTON_A, MICROBIT_BUTTON_EVT_CLICK, onButtonA); uBit.messageBus.listen(MICROBIT_ID_BUTTON_B, MICROBIT_BUTTON_EVT_CLICK, onButtonB);

uart = new MicroBitUARTService(*uBit.ble, 32, 32); uBit.display.scroll(":)"); while(1) { pressure = -1; temperature = -1; if (bmp180.ReadData(&temperature,&pressure)) sprintf(buffer, "%.2f C %4.0f hPa", temperature, pressure); else sprintf(buffer,"NOK"); if (!connected) { uBit.sleep(500); } else { uart->send(buffer); uBit.sleep(1000); } } release_fiber();}

Category : Communication

Related searches

Reviews (3)

Eli. J. Aug 22, 2020     

I only got to connect once

Uda. W. Jan 30, 2018     

program compiled but app shows device doesn't support UART

Ven. B. Mar 23, 2017     

It works! Thanks.