Example for BBC Micro:bit

Dependencies:   Blynk microbit

Fork of microbit-samples by BBC

Committer:
vshymanskyy
Date:
Mon Nov 27 21:32:38 2017 +0000
Revision:
8:552c2e4675c5
Child:
9:fbe11a5939af
Initial version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vshymanskyy 8:552c2e4675c5 1 /*************************************************************
vshymanskyy 8:552c2e4675c5 2 Blynk is a platform with iOS and Android apps to control
vshymanskyy 8:552c2e4675c5 3 Arduino, Raspberry Pi and the likes over the Internet.
vshymanskyy 8:552c2e4675c5 4 You can easily build graphic interfaces for all your
vshymanskyy 8:552c2e4675c5 5 projects by simply dragging and dropping widgets.
vshymanskyy 8:552c2e4675c5 6
vshymanskyy 8:552c2e4675c5 7 Downloads, docs, tutorials: http://www.blynk.cc
vshymanskyy 8:552c2e4675c5 8 Sketch generator: http://examples.blynk.cc
vshymanskyy 8:552c2e4675c5 9 Blynk community: http://community.blynk.cc
vshymanskyy 8:552c2e4675c5 10 Follow us: http://www.fb.com/blynkapp
vshymanskyy 8:552c2e4675c5 11 http://twitter.com/blynk_app
vshymanskyy 8:552c2e4675c5 12
vshymanskyy 8:552c2e4675c5 13 Blynk library is licensed under MIT license
vshymanskyy 8:552c2e4675c5 14 This example code is in public domain.
vshymanskyy 8:552c2e4675c5 15
vshymanskyy 8:552c2e4675c5 16 *************************************************************
vshymanskyy 8:552c2e4675c5 17
vshymanskyy 8:552c2e4675c5 18 NOTE: Please set this config in your MicroBitConfig.h:
vshymanskyy 8:552c2e4675c5 19 #define MICROBIT_BLE_ENABLED 1
vshymanskyy 8:552c2e4675c5 20 #define MICROBIT_BLE_PAIRING_MODE 0
vshymanskyy 8:552c2e4675c5 21 #define MICROBIT_BLE_OPEN 1
vshymanskyy 8:552c2e4675c5 22
vshymanskyy 8:552c2e4675c5 23 Optionally, you can disable unused services:
vshymanskyy 8:552c2e4675c5 24 #define MICROBIT_BLE_DFU_SERVICE 0
vshymanskyy 8:552c2e4675c5 25 #define MICROBIT_BLE_EVENT_SERVICE 0
vshymanskyy 8:552c2e4675c5 26
vshymanskyy 8:552c2e4675c5 27 Warning: Bluetooth support is in beta!
vshymanskyy 8:552c2e4675c5 28
vshymanskyy 8:552c2e4675c5 29 *************************************************************/
vshymanskyy 8:552c2e4675c5 30
vshymanskyy 8:552c2e4675c5 31 #include <MicroBit.h>
vshymanskyy 8:552c2e4675c5 32
vshymanskyy 8:552c2e4675c5 33 MicroBit uBit;
vshymanskyy 8:552c2e4675c5 34
vshymanskyy 8:552c2e4675c5 35 #define BLYNK_DEBUG
vshymanskyy 8:552c2e4675c5 36 #define BLYNK_PRINT uBit.serial
vshymanskyy 8:552c2e4675c5 37
vshymanskyy 8:552c2e4675c5 38 #include <BlynkSimpleMicroBit.h>
vshymanskyy 8:552c2e4675c5 39
vshymanskyy 8:552c2e4675c5 40 // You should get Auth Token in the Blynk App.
vshymanskyy 8:552c2e4675c5 41 // Go to the Project Settings (nut icon).
vshymanskyy 8:552c2e4675c5 42 char auth[] = "338b85a6c7aa451689ee3590cde0ad33";
vshymanskyy 8:552c2e4675c5 43
vshymanskyy 8:552c2e4675c5 44
vshymanskyy 8:552c2e4675c5 45 void onConnected(MicroBitEvent e)
vshymanskyy 8:552c2e4675c5 46 {
vshymanskyy 8:552c2e4675c5 47 uBit.display.printChar('+', 500);
vshymanskyy 8:552c2e4675c5 48 Blynk.startSession();
vshymanskyy 8:552c2e4675c5 49 }
vshymanskyy 8:552c2e4675c5 50
vshymanskyy 8:552c2e4675c5 51 void onDisconnected(MicroBitEvent e)
vshymanskyy 8:552c2e4675c5 52 {
vshymanskyy 8:552c2e4675c5 53 uBit.display.print("- - -", 100);
vshymanskyy 8:552c2e4675c5 54 Blynk.disconnect();
vshymanskyy 8:552c2e4675c5 55 }
vshymanskyy 8:552c2e4675c5 56
vshymanskyy 8:552c2e4675c5 57 int counter = 0;
vshymanskyy 8:552c2e4675c5 58
vshymanskyy 8:552c2e4675c5 59 void onPressed(MicroBitEvent e)
vshymanskyy 8:552c2e4675c5 60 {
vshymanskyy 8:552c2e4675c5 61 char buf[8];
vshymanskyy 8:552c2e4675c5 62 sprintf(buf, "%d", counter);
vshymanskyy 8:552c2e4675c5 63
vshymanskyy 8:552c2e4675c5 64 Blynk.virtualWrite(V1, buf);
vshymanskyy 8:552c2e4675c5 65 uBit.serial.printf("%s\n", buf);
vshymanskyy 8:552c2e4675c5 66 uBit.display.scroll(buf);
vshymanskyy 8:552c2e4675c5 67
vshymanskyy 8:552c2e4675c5 68 counter++;
vshymanskyy 8:552c2e4675c5 69 }
vshymanskyy 8:552c2e4675c5 70
vshymanskyy 8:552c2e4675c5 71 void setup() {
vshymanskyy 8:552c2e4675c5 72 // Initialise the micro:bit runtime.
vshymanskyy 8:552c2e4675c5 73 uBit.init();
vshymanskyy 8:552c2e4675c5 74 uBit.display.scrollAsync("BLYNK", 100);
vshymanskyy 8:552c2e4675c5 75
vshymanskyy 8:552c2e4675c5 76 // listen for Bluetooth connection state changes
vshymanskyy 8:552c2e4675c5 77 uBit.messageBus.listen(MICROBIT_ID_BLE, MICROBIT_BLE_EVT_CONNECTED, onConnected);
vshymanskyy 8:552c2e4675c5 78 uBit.messageBus.listen(MICROBIT_ID_BLE, MICROBIT_BLE_EVT_DISCONNECTED, onDisconnected);
vshymanskyy 8:552c2e4675c5 79
vshymanskyy 8:552c2e4675c5 80 //
vshymanskyy 8:552c2e4675c5 81 uBit.messageBus.listen(MICROBIT_ID_BUTTON_A, MICROBIT_BUTTON_EVT_CLICK, onPressed);
vshymanskyy 8:552c2e4675c5 82
vshymanskyy 8:552c2e4675c5 83 // Add Blynk service
vshymanskyy 8:552c2e4675c5 84 Blynk.begin(*uBit.ble, auth);
vshymanskyy 8:552c2e4675c5 85 }
vshymanskyy 8:552c2e4675c5 86
vshymanskyy 8:552c2e4675c5 87 void loop() {
vshymanskyy 8:552c2e4675c5 88 Blynk.run();
vshymanskyy 8:552c2e4675c5 89 }
vshymanskyy 8:552c2e4675c5 90
vshymanskyy 8:552c2e4675c5 91 int main(void) {
vshymanskyy 8:552c2e4675c5 92 setup();
vshymanskyy 8:552c2e4675c5 93 while(1) {
vshymanskyy 8:552c2e4675c5 94 loop();
vshymanskyy 8:552c2e4675c5 95 uBit.sleep(10);
vshymanskyy 8:552c2e4675c5 96 }
vshymanskyy 8:552c2e4675c5 97 }