LogoLogo
  • OVERVIEW
  • QUICK START
  • CONNECT A DEVICE
  • ARDUINO COMPATIBLE DEVICES
  • OVERVIEW
  • SDK SETUP
    • Arduino IDE
    • Visual Studio Code
  • DEVICES
    • ESPRESSIF ESP32
    • ESPRESSIF ESP8266
    • ARDUINO ETHERNET
    • ARDUINO WIFI
    • ARDUINO GSM
    • OTHER DEVICES
  • CODING GUIDE
  • TROUBLESHOOTING
  • REMOTE OTA
  • REMOTE CONSOLE
  • LPWAN DEVICES
    • SIGFOX
    • LoRaWAN (TTN)
  • OTHER DEVICES
  • HTTP DEVICES
  • MQTT CLIENTS
  • LINUX / RASPBERRY PI
  • PLATFORM FEATURES
    • DEVICES ADMINISTRATION
    • DATA BUCKETS
    • DASHBOARDS
    • ENDPOINTS
    • ALARMS
    • ACCESS TOKENS
    • GEOFENCING
    • ASSET TYPES & GROUPS
  • BUSINESS FEATURES
    • PLUGINS MARKETPLACE
    • PRODUCTS
      • Product Profile
        • Properties
        • Buckets
        • API Resources
        • Scripts
        • Payloads
      • Product Dashboard
      • Product Services
      • Examples
        • Shelly Plug S
        • Kunbus RevPi
        • Shelly Plus 1 PM
    • FILE STORAGES
    • PROJECTS MANAGER
    • USER ACCOUNTS
    • WHITE-LABELING
    • CUSTOM WEB DOMAIN
    • OAUTH2 CLIENTS
    • PROXIES
  • Server
    • SERVER DEPLOYMENT
      • Thinger.io Cloud
      • On-Premise
    • SERVER ADMINISTRATION
      • License Setting
      • Server Settings
      • Cluster / Server Status
      • Server Logs
    • SERVER API
    • CHANGELOG
  • Others
    • OTHER SOFTWARE
      • Server Monitoring Client
    • THINGER.IO HARDWARE
      • Thinger M2IoT Modem
      • Thinger32 NB-IoT
      • ClimaStick
      • WiFi Button
    • SMARTPHONE APP
  • ABOUT
    • Community & Social Links
    • Branding
    • Terms & Conditions
    • Privacy Policy
    • Service Level Agreement
Powered by GitBook
On this page
  • Install Visual Studio Code
  • Install PlatformIO
  • Starting a Project

Was this helpful?

Edit on GitHub
  1. SDK SETUP

Visual Studio Code

PreviousArduino IDENextDEVICES

Last updated 11 months ago

Was this helpful?

For advanced developers and more complex projects, an advanced IDE can be beneficial. Visual Studio Code (VS Code) offers features like GIT control, code completion, and a variety of useful extensions to streamline the development process. By combining VS Code with PlatformIO, you get a powerful setup for your Thinger.io projects.

Benefits of Using Visual Studio Code with PlatformIO:

  • GIT Control: Easily manage your version control with integrated GIT support.

  • Code Completion: Enjoy enhanced code completion for faster and more accurate coding.

  • Extensions: Access a wide range of extensions to add functionality and improve productivity.

To get started, download and install Visual Studio Code and the PlatformIO extension.

Install Visual Studio Code

Visual Studio Code is a free distribution source-code editor developed by Microsoft for Windows, Linux and macOS. It can be extended via , available through a central repository to add language support, new programming languages, , and , or perform . It can be downloaded for free from the official website.

Install PlatformIO

PlatformIO is a cross-platform, cross-architecture, multi-framework professional tool for embedded systems engineers and software developers working on embedded products. It can be installed as an extension in Visual Studio Code.

Steps to Install PlatformIO:

  1. Open Extensions in Visual Studio Code:

    • Press Ctrl + Shift + X on Windows or Command + Shift + X on Mac to open the Extensions view.

  2. Search for PlatformIO:

    • In the Extensions view, type "PlatformIO" in the search bar.

  3. Install PlatformIO:

    • Click on the PlatformIO IDE result.

    • Click the Install button.

Once installed, PlatformIO provides powerful features to enhance your development process for Thinger.io projects.

Starting a Project

Once Visual Studio code with PlatformIO is installed, it is possible to create a new project for our specific board. For this purpose, we can access PIO Home, and click on the New Project button:

For this example, we will be using the ESP32 board, so, in the Project Wizard pop-up we enter a Project Name, select the Espressif ESP32 Dev Module, as a generic ESP32 board, and the Arduino Framework. Once done, click on Finish and wait PlatformIO to download the required toolchains for the device.

After the project initialization is done, PlatformIO generates a file structure like the following:

platformio.ini has sections (each denoted by a [header]) and key / value pairs within the sections. Lines beginning with ;are ignored and may be used to provide comments.

In our default ESP32 project looks like the following:

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino

Now, to start working with Thinger.io, it is required to add the Thinger.io client library using the lib_deps property:

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
lib_deps = thinger.io

After this configuration is done, it is possible to start compiling for our device. A basic example for our ESP32 device will look like the following:

#define THINGER_SERIAL_DEBUG

#include <ThingerESP32.h>
#include "arduino_secrets.h"

ThingerESP32 thing(USERNAME, DEVICE_ID, DEVICE_CREDENTIAL);

void setup() {
  // open serial for debugging
  Serial.begin(115200);

  pinMode(16, OUTPUT);

  thing.add_wifi(SSID, SSID_PASSWORD);

  // digital pin control example (i.e. turning on/off a light, a relay, configuring a parameter, etc)
  thing["GPIO_16"] << digitalPin(16);

  // resource output example (i.e. reading a sensor value)
  thing["millis"] >> outputValue(millis());

  // more details at http://docs.thinger.io/arduino/
}

void loop() {
  thing.handle();
}
#define USERNAME "your_user_name"
#define DEVICE_ID "your_device_id"
#define DEVICE_CREDENTIAL "your_device_credential"

#define SSID "your_wifi_ssid"
#define SSID_PASSWORD "your_wifi_ssid_password"

As shown in the above picture, each PlatformIO project has a configuration file named platformio.ini in the root directory for the project. This is a file.

INI-style
extensions
themes
debuggers
static code analysis
Download Visual Studio Code
Visual Studio Code
Create a new Project from PIO Home.
PlatformIO project Wizard
PlatformIO default project structure