Docs

Getting started with Plynx

From a bare board to live data on your iPhone in about 15 minutes.

You need:

  • An iPhone with Plynx installed (free)
  • An ESP32, ESP8266 or Arduino with a network connection
  • The Arduino IDE

1. Create your account and project

Open Plynx and register. The default server is the free public cloud, which is fine to start with (you can move to your own server later, see below).

Create a project, add a widget (a Button is a good first one) and bind it to a pin, for example virtual pin V1. Open the project settings to find your device auth token: that string is how your board identifies itself.

Widgets feel like this (go ahead, they work):

Pump V1 = 0
Temperature V2 = 23.5
180
Brightness V3 = 180

Every widget in the app maps to a pin exactly like these: buttons and sliders write to it, gauges and charts read from it.

2. Install the Plynx library

Install the Plynx library in the Arduino IDE. Two ways:

Library Manager (once it is listed): open Tools, then Manage Libraries, search for Plynx, and click Install.

From GitHub (works today):

  1. Download the ZIP from github.com/NickP005/plynx-library (green Code button, then Download ZIP, or grab it from the Releases page)
  2. In the Arduino IDE go to Sketch, then Include Library, then Add .ZIP Library
  3. Pick the downloaded ZIP

You also need the core for your board (ESP32 or ESP8266) from the Boards Manager, if you have not installed it already.

3. Flash the sketch

ESP32:

main.ino
#define PLYNX_PRINT Serial
#include <WiFi.h>
#include <PlynxSimpleEsp32.h>

char auth[] = "YOUR_AUTH_TOKEN";      // from the app, board settings
char ssid[] = "YOUR_WIFI";
char pass[] = "YOUR_WIFI_PASSWORD";

void setup() {
  Serial.begin(115200);
  Plynx.begin(auth, ssid, pass);      // default server: yes.plynx.cc
}

void loop() {
  Plynx.run();
}

ESP8266: same sketch, but include <ESP8266WiFi.h> and <PlynxSimpleEsp8266.h> instead.

Running your own server? Pass it explicitly: Plynx.begin(auth, ssid, pass, "your.server", 8080);

Flash it, open the Serial Monitor, and within a few seconds you should see Ready. In the app, your device dot turns green.

4. Make it do something

React to the button you created on V1:

PLYNX_WRITE(V1) {
  int state = param.asInt();          // 1 pressed, 0 released
  digitalWrite(LED_BUILTIN, state);
}

Send a sensor value to the phone every 5 seconds (add a Gauge or Value widget on V2 in the app):

PlynxTimer timer;

void sendReading() {
  Plynx.virtualWrite(V2, analogRead(A0));
}

void setup() {
  // ...as above, then:
  timer.setInterval(5000L, sendReading);
}

void loop() {
  Plynx.run();
  timer.run();
}

That’s the whole loop: widgets in the app talk to pins, your code reads and writes those pins. Everything else (charts, sliders, RGB, terminal, Home Screen widgets, Apple Watch) builds on this.

Run your own server (optional)

The public cloud is convenient, but the server is a single open source jar you can run on any Raspberry Pi:

java -jar server-0.41.18.jar -dataFolder ./data

Then in the app: login screen, tap the server pill, add your host. Your boards connect to port 8080, the app to 9443. Your data never leaves your network.

For a full walkthrough with systemd, backups and remote access, read Self-hosting your IoT dashboard on a Raspberry Pi.

Troubleshooting

  • Board prints Connecting to... forever: wrong server or port, or the Plynx library not installed, or an old Blynk 1.x library shadowing it. Check both.
  • Invalid auth token: the token in the sketch doesn’t match the one in the project settings. Copy it again.
  • Device connects but widgets don’t move: widget bound to the wrong pin type (virtual vs digital) or wrong pin number.
  • Anything else: write to the developer through the App Store page. Real user reports have driven most releases so far.