Specific Pelion ready example using features of Seeed Wio boards including cellular and SD Card

Dependencies:   WS2812 PixelArray

Fork of simple-mbed-cloud-example-wio_3g by Toyomasa Watarai

DEPRECATED

This example application is not maintained and not recommended. It uses an old version of Mbed OS, Pelion DM, and Arm toolchain. It doesn't work with Mbed Studio.

Please use: https://os.mbed.com/teams/mbed-os-examples/code/mbed-os-example-pelion/

This example is known to work great on the following platforms:
Seeed Wio 3G and Seeed Wio LTE-M1/NB1(BG96) over cellular and using SD card.

https://os.mbed.com/media/cache/platforms/Wio_3G.png.250x250_q85.png

Follow the Quick-Start instructions: https://cloud.mbed.com/quick-start

Example functionality

This example showcases the following device functionality:

  • Allow the user to change the state of the board LED from Pelion LWM2M led_state resource and PUT request.

Instructions to use this program with mbed CLI

1. Import the application into your desktop:

mbed import https://os.mbed.com/teams/Seeed/code/pelion-example-common/

cd pelion-example-common

2. Install the CLOUD_SDK_API_KEY

mbed config -G CLOUD_SDK_API_KEY <PELION_DM_API_KEY>

For instructions on how to generate your API key, please see the documentation.

3. Initialize firmware credentials (done once per repository). You can use the following command:

mbed dm init -d "<your company name in Pelion DM>" --model-name "<product model identifier>" -q --force

If above command do not work for your Mbed CLI, please consider upgrading Mbed CLI to version 1.9.x or above.

  • Set APN name, username and password in the mbed_app.json.

            "nsapi.default-cellular-plmn"      : "\"00000\"",
            "nsapi.default-cellular-sim-pin"   : "\"0000\"",
            "nsapi.default-cellular-apn"       : "\"apn\"",
            "nsapi.default-cellular-username"  : "\"username\"",
            "nsapi.default-cellular-password"  : "\"password\""

Information

For the Wio LTE-M1/NB1(BG96) target, PLMN (Public land mobile network) should be specified to get quick connection to the network. This is usually found first 5 digit from your SIM card IMSI (International Mobile Subscriber Identity) number. e.g. 44052

4. Compile and program:

mbed compile -t <toolchain> -m WIO_3G

(supported toolchains : GCC_ARM / ARM / IAR)

Troubleshooting

  • Make sure the fields nsapi.default-cellular-sim-pin, nsapi.default-cellular-apn, nsapi.default-cellular-username and nsapi.default-cellular-password from the mbed_app.json file are filled in correctly. The correct values should appear in the user manual in the details of the SIM card.
  • Enable trace flag to have access to debug information "mbed-trace.enable": true.
  • Try both TCP and UDP socket types.
  • Try both "lwip.ppp-enabled": true and "lwip.ppp-enabled": false.
  • The modem and network may only support IPv6 in which case "lwip.ipv6-enabled": true shall be defined.
  • The SIM and modem must have compatible cellular technology (3G, 4G, NB-IoT, ...) supported and cellular network available.
Committer:
MACRUM
Date:
Fri Dec 21 02:13:03 2018 +0000
Revision:
1:ddb04b438959
Child:
2:aadfd874279d
Add Wio LED control

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MACRUM 1:ddb04b438959 1 #include "WS2812.h"
MACRUM 1:ddb04b438959 2 #include "PixelArray.h"
MACRUM 1:ddb04b438959 3
MACRUM 1:ddb04b438959 4 #define WS2812_BUF 8
MACRUM 1:ddb04b438959 5 #define NUM_COLORS 8
MACRUM 1:ddb04b438959 6 #define NUM_LEDS_PER_COLOR 8
MACRUM 1:ddb04b438959 7 #define H0 8
MACRUM 1:ddb04b438959 8 #define L0 32
MACRUM 1:ddb04b438959 9 #define H1 17
MACRUM 1:ddb04b438959 10 #define L1 32
MACRUM 1:ddb04b438959 11
MACRUM 1:ddb04b438959 12 DigitalOut LEDPower(PE_8, 1);
MACRUM 1:ddb04b438959 13 PixelArray px(WS2812_BUF);
MACRUM 1:ddb04b438959 14 WS2812 ws(PB_1, WS2812_BUF, H0, L0, H1, L1);
MACRUM 1:ddb04b438959 15
MACRUM 1:ddb04b438959 16 const int colorbuf[NUM_COLORS] = {0x000000, 0x2f0000,0x2f2f00,0x002f00,0x002f2f,0x00002f,0x2f002f, 0x2f2f2f};
MACRUM 1:ddb04b438959 17
MACRUM 1:ddb04b438959 18 enum ws2812_color {
MACRUM 1:ddb04b438959 19 WS2812_BLACK = 0,
MACRUM 1:ddb04b438959 20 WS2812_RED,
MACRUM 1:ddb04b438959 21 WS2812_YELLOW,
MACRUM 1:ddb04b438959 22 WS2812_GREEN,
MACRUM 1:ddb04b438959 23 WS2812_CYAN,
MACRUM 1:ddb04b438959 24 WS2812_BLUE,
MACRUM 1:ddb04b438959 25 WS2812_PURPLE,
MACRUM 1:ddb04b438959 26 WS2812_WHITE
MACRUM 1:ddb04b438959 27 };
MACRUM 1:ddb04b438959 28
MACRUM 1:ddb04b438959 29 void setcolor(int color)
MACRUM 1:ddb04b438959 30 {
MACRUM 1:ddb04b438959 31 px.Set(0, colorbuf[color]);
MACRUM 1:ddb04b438959 32 px.SetI(0, 0x80);
MACRUM 1:ddb04b438959 33 ws.write_offsets(px.getBuf(), 0, 0, 0);
MACRUM 1:ddb04b438959 34
MACRUM 1:ddb04b438959 35 }