Blynk example for RedBearLab BLE Nano

Dependencies:   BLE_API Blynk mbed nRF51822

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?

UserRevisionLine numberNew 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 }