blynkkk / BlynkNcpExample

Example IoT application using Blynk.NCP

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Blynk.NCP

Issues Downloads PlatformIO CI License Stand With Ukraine

Blynk.NCP is a solution that off-loads connectivity to a Network Co-Processor (NCP), while your application logic resides on the Primary MCU. This implies a dual-Microcontroller Unit (MCU) architecture.

When to use Blynk.NCP?

Using Blynk.NCP is recommended if one of these is true:

  • You have one of the supported dual-MCU boards and want connect it to Blynk
  • You're building a new IoT product with specific requirements for the Primary MCU, so you're adding a separate connectivity module
  • You are using Blynk for retrofitting your existing products
  • You have included an AT command-based module, but you struggle to make it work right or to achieve your product goals
  • You are looking for ridiculously low risks, integration efforts, and time to market, along with improved reliability of your products
Core Features
  • Blynk.Inject: connect your devices easily using Android App, iOS App or 🌐 Web Dashboard
    • BLE-assisted device provisioning for the best end-user experience
    • WiFiAP-based provisioning for devices without BLE support
    • Network Manager: WiFi (up to 16 saved networks), Ethernet, Cellular (depending on the hardware)
    • Advanced network connection troubleshooting
  • Secure Blynk.Cloud connection that provides simple API for:
    • Data transfer with Virtual Pins, reporting Events, and accessing Metadata
    • Time, Timezone and Location, with an ability to track local time when the device is offline, including DST transitions
  • Blynk.Air - automatic Over The Air firmware updates using Web Dashboard
    • Both NCP and the Primary MCU firmware updates
    • Direct firmware upgrade using iOS/Android App, before device activation
Extra Features

Additional services that can be provided by the Blynk.NCP:

  • ⏳ soon Persistent automation scenarios - work even if the device is offline
  • ⏳ soon Non-volatile storage for the Preferences library
  • βœ… ready NCP-assisted fail-safe OTA updates
  • βœ… ready Connectivity-related device state indication - requires a monochrome/RGB/addressable LED attached to the NCP
  • βœ… ready User button (also used for configuration reset) - requires a momentary push button attached to the NCP
  • βœ… ready Factory testing and provisioning
  • πŸ€” later Generic File System storage
  • πŸ€” later Generic UDP/TCP/TLS socket API
Supported Boards

Dual-MCU Boards

This example project is compatible with a set of ready-to-use Dual-MCU boards:

Board πŸ”„ MCU / NCP 🌐 βš™οΈ πŸ—ƒοΈ
UNO R4 WiFi unoR4wifi ⏳ / βœ… WiFi 2.4 BLE 4.25 MB
Portenta C33 portentaC33 ⏳ / βœ… WiFi 2.4 BLE 512 KB
Nano RP2040 Connect rp2040connect βœ… / ❌ WiFi 2.4 BLE 384 KB
Nano 33 IoT nano33iot βœ… / ❌ WiFi 2.4 BLE 384 KB
MKR WiFi 1010 mkrwifi1010 βœ… / ❌ WiFi 2.4 BLE 384 KB
T-PicoC3 t_pico_c3 βœ… / βœ… WiFi 2.4 BLE 512 KB
RPi Pico + ESP8266 pico_esp8266 βœ… / βœ… WiFi 2.4 WiFiAP 1000 KB
Wio Terminal ⏳ βœ… / ❔ WiFi 2.4/5 BLE ❔

πŸ”„ Over-the-Air Updates, 🌐 Connectivity, βš™οΈ Provisioning, πŸ—ƒοΈ File System

Custom Boards

You can also add one of the supported connectivity modules to your own board.

Getting started

  1. This is a PlatformIO project. Please install the VSCode plugin or PlatformIO CLI.

  2. Clone this repository using git, or download it as a ZIP file.

  3. Flash the Blynk.NCP firmware (replace nano33iot with your board type):

    pio run -e nano33iot -t upload_ncp

    Warning: This overwrites both the Main MCU and the connectivity module firmware.
    You can restore the stock firmware easily.

  4. Open src/main.cpp and fill in information from your Blynk Template:

    #define BLYNK_TEMPLATE_ID           "TMPxxxxxx"
    #define BLYNK_TEMPLATE_NAME         "MyDevice"
  5. Upload the example project, and run the serial monitor:

    pio run -e nano33iot -t upload -t monitor
  6. Use the Blynk iOS/Android app to configure your new device
    Ensure that the Blynk App is installed on your smartphone and scan this QR code:
    Add New Device QR
    Alternatively: Open the Blynk App -> click Add New Device -> select Find Devices Nearby

Troubleshooting

If something doesn't work, try some of these solutions:

  • If your board is based on a Raspberry Pi RP2040 chip, it may fail to work on Windows. Please apply this fix
  • Upgrade PlatformIO to the latest version. Run: pio upgrade
  • Upgrade packages to the latest version. Run: pio pkg update --no-save

Disclaimer

The community edition of Blynk.NCP is available for personal use and evaluation.
If you're interested in using Blynk.NCP for commercial applications, feel free to contact Blynk. Thank you!

About

Example IoT application using Blynk.NCP

License:The Unlicense


Languages

Language:C 84.9%Language:Python 8.2%Language:C++ 6.9%