Example for BBC Micro:bit
Fork of microbit-samples by
source/main.cpp@8:552c2e4675c5, 2017-11-27 (annotated)
- 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?
User | Revision | Line number | New 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 | } |