Blynk example for RedBearLab BLE Nano
Dependencies: BLE_API Blynk mbed nRF51822
source/main.cpp@5:c52894060941, 2017-11-27 (annotated)
- Committer:
- vshymanskyy
- Date:
- Mon Nov 27 22:48:09 2017 +0000
- Revision:
- 5:c52894060941
- Parent:
- 4:27632dd38be6
- Child:
- 9:6d4eec96b28e
Update
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 | 3:1a1b4df54a17 | 26 | //#define BLYNK_DEBUG |
vshymanskyy | 3:1a1b4df54a17 | 27 | #define BLYNK_PRINT pc |
vshymanskyy | 3:1a1b4df54a17 | 28 | |
vshymanskyy | 3:1a1b4df54a17 | 29 | #include <BlynkSimpleRedBearLab_BLE_Nano.h> |
vshymanskyy | 3:1a1b4df54a17 | 30 | |
vshymanskyy | 3:1a1b4df54a17 | 31 | // You should get Auth Token in the Blynk App. |
vshymanskyy | 3:1a1b4df54a17 | 32 | // Go to the Project Settings (nut icon). |
vshymanskyy | 4:27632dd38be6 | 33 | char auth[] = "YourAuthToken"; |
vshymanskyy | 3:1a1b4df54a17 | 34 | |
vshymanskyy | 3:1a1b4df54a17 | 35 | uint8_t device_name[] = "Blynk"; |
vshymanskyy | 3:1a1b4df54a17 | 36 | |
vshymanskyy | 3:1a1b4df54a17 | 37 | PwmOut speaker(p30); |
vshymanskyy | 3:1a1b4df54a17 | 38 | BLYNK_WRITE(V1) { |
vshymanskyy | 3:1a1b4df54a17 | 39 | if (param.asInt()) { |
vshymanskyy | 3:1a1b4df54a17 | 40 | speaker.period(1.0/param.asInt()); |
vshymanskyy | 3:1a1b4df54a17 | 41 | speaker = 0.5; |
vshymanskyy | 3:1a1b4df54a17 | 42 | } else { |
vshymanskyy | 3:1a1b4df54a17 | 43 | speaker = 0; |
vshymanskyy | 3:1a1b4df54a17 | 44 | } |
vshymanskyy | 3:1a1b4df54a17 | 45 | } |
vshymanskyy | 3:1a1b4df54a17 | 46 | |
vshymanskyy | 3:1a1b4df54a17 | 47 | PwmOut ledR(p15); |
vshymanskyy | 3:1a1b4df54a17 | 48 | BLYNK_WRITE(V2) { |
vshymanskyy | 3:1a1b4df54a17 | 49 | ledR = 1.0 - (param.asDouble()/1024.0f); |
vshymanskyy | 3:1a1b4df54a17 | 50 | } |
vshymanskyy | 3:1a1b4df54a17 | 51 | |
vshymanskyy | 3:1a1b4df54a17 | 52 | void setup() { |
vshymanskyy | 3:1a1b4df54a17 | 53 | ble.init(); |
vshymanskyy | 3:1a1b4df54a17 | 54 | |
vshymanskyy | 3:1a1b4df54a17 | 55 | ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED); |
vshymanskyy | 3:1a1b4df54a17 | 56 | ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::SHORTENED_LOCAL_NAME, |
vshymanskyy | 3:1a1b4df54a17 | 57 | device_name, sizeof(device_name) - 1); |
vshymanskyy | 3:1a1b4df54a17 | 58 | |
vshymanskyy | 3:1a1b4df54a17 | 59 | ble.gap().setDeviceName(device_name); |
vshymanskyy | 3:1a1b4df54a17 | 60 | ble.gap().setTxPower(4); |
vshymanskyy | 3:1a1b4df54a17 | 61 | |
vshymanskyy | 3:1a1b4df54a17 | 62 | // Add Blynk service... |
vshymanskyy | 3:1a1b4df54a17 | 63 | Blynk.begin(auth); |
vshymanskyy | 3:1a1b4df54a17 | 64 | |
vshymanskyy | 3:1a1b4df54a17 | 65 | ble.gap().setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED); |
vshymanskyy | 3:1a1b4df54a17 | 66 | ble.gap().setAdvertisingInterval(Gap::MSEC_TO_GAP_DURATION_UNITS(1000)); |
vshymanskyy | 3:1a1b4df54a17 | 67 | ble.gap().setAdvertisingTimeout(0); |
vshymanskyy | 3:1a1b4df54a17 | 68 | ble.startAdvertising(); |
vshymanskyy | 3:1a1b4df54a17 | 69 | |
vshymanskyy | 3:1a1b4df54a17 | 70 | printf("Waiting for connections...\n"); |
vshymanskyy | 3:1a1b4df54a17 | 71 | |
vshymanskyy | 3:1a1b4df54a17 | 72 | ledR = 1.0; |
vshymanskyy | 3:1a1b4df54a17 | 73 | speaker = 0.0; |
vshymanskyy | 3:1a1b4df54a17 | 74 | } |
vshymanskyy | 3:1a1b4df54a17 | 75 | |
vshymanskyy | 3:1a1b4df54a17 | 76 | void loop() { |
vshymanskyy | 3:1a1b4df54a17 | 77 | Blynk.run(); |
vshymanskyy | 3:1a1b4df54a17 | 78 | } |
vshymanskyy | 3:1a1b4df54a17 | 79 | |
vshymanskyy | 3:1a1b4df54a17 | 80 | int main(void) { |
vshymanskyy | 3:1a1b4df54a17 | 81 | setup(); |
vshymanskyy | 3:1a1b4df54a17 | 82 | while(1) { |
vshymanskyy | 3:1a1b4df54a17 | 83 | loop(); |
vshymanskyy | 3:1a1b4df54a17 | 84 | } |
vshymanskyy | 3:1a1b4df54a17 | 85 | } |