Blynk example for RedBearLab BLE Nano
Dependencies: BLE_API Blynk mbed nRF51822
source/main.cpp@10:6e02ef811ea3, 2018-01-26 (annotated)
- Committer:
- vshymanskyy
- Date:
- Fri Jan 26 22:25:31 2018 +0000
- Revision:
- 10:6e02ef811ea3
- Parent:
- 9:6d4eec96b28e
Remove debug by default
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
vshymanskyy | 5:c52894060941 | 1 | /************************************************************* |
vshymanskyy | 5:c52894060941 | 2 | Blynk is a platform with iOS and Android apps to control |
vshymanskyy | 5:c52894060941 | 3 | Arduino, Raspberry Pi and the likes over the Internet. |
vshymanskyy | 5:c52894060941 | 4 | You can easily build graphic interfaces for all your |
vshymanskyy | 5:c52894060941 | 5 | projects by simply dragging and dropping widgets. |
vshymanskyy | 5:c52894060941 | 6 | |
vshymanskyy | 5:c52894060941 | 7 | Downloads, docs, tutorials: http://www.blynk.cc |
vshymanskyy | 5:c52894060941 | 8 | Sketch generator: http://examples.blynk.cc |
vshymanskyy | 5:c52894060941 | 9 | Blynk community: http://community.blynk.cc |
vshymanskyy | 5:c52894060941 | 10 | Follow us: http://www.fb.com/blynkapp |
vshymanskyy | 5:c52894060941 | 11 | http://twitter.com/blynk_app |
vshymanskyy | 5:c52894060941 | 12 | |
vshymanskyy | 5:c52894060941 | 13 | Blynk library is licensed under MIT license |
vshymanskyy | 5:c52894060941 | 14 | This example code is in public domain. |
vshymanskyy | 5:c52894060941 | 15 | |
vshymanskyy | 5:c52894060941 | 16 | ************************************************************* |
vshymanskyy | 5:c52894060941 | 17 | This example shows how to use RedBearLab BLE Nano |
vshymanskyy | 5:c52894060941 | 18 | to connect your project to Blynk. |
vshymanskyy | 5:c52894060941 | 19 | |
vshymanskyy | 5:c52894060941 | 20 | Warning: Bluetooth support is in beta! |
vshymanskyy | 5:c52894060941 | 21 | |
vshymanskyy | 5:c52894060941 | 22 | *************************************************************/ |
vshymanskyy | 3:1a1b4df54a17 | 23 | #include <mbed.h> |
vshymanskyy | 3:1a1b4df54a17 | 24 | Serial pc(USBTX, USBRX); |
vshymanskyy | 3:1a1b4df54a17 | 25 | |
vshymanskyy | 9:6d4eec96b28e | 26 | // TODO: these defines are included as a workaround. |
vshymanskyy | 9:6d4eec96b28e | 27 | // I'm investigating further. |
vshymanskyy | 9:6d4eec96b28e | 28 | #define BLYNK_NO_INFO |
vshymanskyy | 9:6d4eec96b28e | 29 | #define BLYNK_USE_DIRECT_CONNECT |
vshymanskyy | 9:6d4eec96b28e | 30 | // end of workaround |
vshymanskyy | 9:6d4eec96b28e | 31 | |
vshymanskyy | 10:6e02ef811ea3 | 32 | //#define BLYNK_DEBUG |
vshymanskyy | 3:1a1b4df54a17 | 33 | #define BLYNK_PRINT pc |
vshymanskyy | 3:1a1b4df54a17 | 34 | |
vshymanskyy | 3:1a1b4df54a17 | 35 | #include <BlynkSimpleRedBearLab_BLE_Nano.h> |
vshymanskyy | 3:1a1b4df54a17 | 36 | |
vshymanskyy | 3:1a1b4df54a17 | 37 | // You should get Auth Token in the Blynk App. |
vshymanskyy | 3:1a1b4df54a17 | 38 | // Go to the Project Settings (nut icon). |
vshymanskyy | 4:27632dd38be6 | 39 | char auth[] = "YourAuthToken"; |
vshymanskyy | 3:1a1b4df54a17 | 40 | |
vshymanskyy | 3:1a1b4df54a17 | 41 | uint8_t device_name[] = "Blynk"; |
vshymanskyy | 3:1a1b4df54a17 | 42 | |
vshymanskyy | 3:1a1b4df54a17 | 43 | void setup() { |
vshymanskyy | 3:1a1b4df54a17 | 44 | ble.init(); |
vshymanskyy | 3:1a1b4df54a17 | 45 | |
vshymanskyy | 3:1a1b4df54a17 | 46 | ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED); |
vshymanskyy | 3:1a1b4df54a17 | 47 | ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::SHORTENED_LOCAL_NAME, |
vshymanskyy | 3:1a1b4df54a17 | 48 | device_name, sizeof(device_name) - 1); |
vshymanskyy | 3:1a1b4df54a17 | 49 | |
vshymanskyy | 3:1a1b4df54a17 | 50 | ble.gap().setDeviceName(device_name); |
vshymanskyy | 3:1a1b4df54a17 | 51 | ble.gap().setTxPower(4); |
vshymanskyy | 3:1a1b4df54a17 | 52 | |
vshymanskyy | 3:1a1b4df54a17 | 53 | // Add Blynk service... |
vshymanskyy | 3:1a1b4df54a17 | 54 | Blynk.begin(auth); |
vshymanskyy | 3:1a1b4df54a17 | 55 | |
vshymanskyy | 3:1a1b4df54a17 | 56 | ble.gap().setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED); |
vshymanskyy | 3:1a1b4df54a17 | 57 | ble.gap().setAdvertisingInterval(Gap::MSEC_TO_GAP_DURATION_UNITS(1000)); |
vshymanskyy | 3:1a1b4df54a17 | 58 | ble.gap().setAdvertisingTimeout(0); |
vshymanskyy | 3:1a1b4df54a17 | 59 | ble.startAdvertising(); |
vshymanskyy | 3:1a1b4df54a17 | 60 | |
vshymanskyy | 3:1a1b4df54a17 | 61 | printf("Waiting for connections...\n"); |
vshymanskyy | 3:1a1b4df54a17 | 62 | } |
vshymanskyy | 3:1a1b4df54a17 | 63 | |
vshymanskyy | 3:1a1b4df54a17 | 64 | void loop() { |
vshymanskyy | 9:6d4eec96b28e | 65 | ble.waitForEvent(); |
vshymanskyy | 9:6d4eec96b28e | 66 | Blynk.run(); |
vshymanskyy | 3:1a1b4df54a17 | 67 | } |
vshymanskyy | 3:1a1b4df54a17 | 68 | |
vshymanskyy | 3:1a1b4df54a17 | 69 | int main(void) { |
vshymanskyy | 3:1a1b4df54a17 | 70 | setup(); |
vshymanskyy | 9:6d4eec96b28e | 71 | |
vshymanskyy | 3:1a1b4df54a17 | 72 | while(1) { |
vshymanskyy | 3:1a1b4df54a17 | 73 | loop(); |
vshymanskyy | 3:1a1b4df54a17 | 74 | } |
vshymanskyy | 3:1a1b4df54a17 | 75 | } |