BLYNK
BLYNK.IO       📲 GETTING STARTED       📗 DOCS       ❓HELP CENTER       👉 SKETCH BUILDER

User_Interface.h : No such file or directory

Hello,
Board info: Arduino Nano 33 IOT
I keep getting the user_interface error when compiling my code under the edgent 8266 sketch.

I have tried to create an header file with that name and still doesn’t work. I have tried a different company and still faced with the same issue.

My arduino IDE is 1.8.15
Blynk 1.01

I don’t know what I am doing wrong here please help.

The Nano 33 IOT isn’t an ESP8266 based board, so that’s probably the cause of the error message.

Pete.

Thank you Pete for your prompt reply as usual. Below is the error I am currently getting when I use ESP32.

 #include <WiFiClientSecure.h>
          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.

The Nano 33 IOT isn’t an ESP32 either!

Pete.

Hey there.

Are you choosing the right board and the right com port just like the image ?

Thank you John93. I am. Here is my screenshot. image

Can you show me your sketch ?

I am using the Blynk Edgent sketch. It has multiple header files. This is the Edgent_ESP32.ino. Let me know if you want the content of all the header files as well.

// Fill-in information from your Blynk Template here
#define BLYNK_TEMPLATE_ID ""
#define BLYNK_DEVICE_NAME ""

#define BLYNK_FIRMWARE_VERSION        "0.1.0"

#define BLYNK_PRINT Serial
//#define BLYNK_DEBUG

#define APP_DEBUG

// Uncomment your board, or configure a custom board in Settings.h
//#define USE_WROVER_BOARD
//#define USE_TTGO_T7

#include "BlynkEdgent.h"

void setup()
{
  Serial.begin(115200);
  delay(100);


  BlynkEdgent.begin();
}
void loop() {
  BlynkEdgent.run();
}

Okay.

First go to blynk / blynk.edgent and choose edgent_MKR1000 not edgent_ESP32

Second they will ask you to download some libraries ( if not already installed ) just download them and everything should work just fine.

It errored on header file BlynkEdgent.h.
Sketch:

  void app_loop();
  void restartMCU();
}

#include "Settings.h"
#include <SPI.h>
#include <WiFi101.h>

#define BLYNK_SEND_ATOMIC
//#define BLYNK_USE_SSL

#include <Blynk.h>
#include <Adapters/BlynkWiFiCommon.h>

WiFiSSLClient _blynkWifiClient;
//WiFiClient _blynkWifiClient;

BlynkArduinoClient _blynkTransport(_blynkWifiClient);
BlynkWifiCommon Blynk(_blynkTransport);

#include <BlynkWidgets.h>

#ifndef BLYNK_NEW_LIBRARY
#error "Old version of Blynk library is in use. Please replace it with the new one."
#endif

#if !defined(BLYNK_TEMPLATE_ID) || !defined(BLYNK_DEVICE_NAME)
#error "Please specify your BLYNK_TEMPLATE_ID and BLYNK_DEVICE_NAME"
#endif

#include "BlynkState.h"
#include "ConfigStore.h"
#include "ResetButton.h"
#include "ConfigMode.h"
#include "Indicator.h"
#include "OTA.h"
#include "Console.h"

inline
void BlynkState::set(State m) {
  if (state != m && m < MODE_MAX_VALUE) {
    DEBUG_PRINT(String(StateStr[state]) + " => " + StateStr[m]);
    state = m;

    // You can put your state handling here,
    // i.e. implement custom indication
  }
}

void printDeviceBanner()
{
  Blynk.printBanner();
  DEBUG_PRINT("--------------------------");
  DEBUG_PRINT(String("Product:  ") + BLYNK_DEVICE_NAME);
  DEBUG_PRINT(String("Firmware: ") + BLYNK_FIRMWARE_VERSION " (build " __DATE__ " " __TIME__ ")");
  if (configStore.getFlag(CONFIG_FLAG_VALID)) {
    DEBUG_PRINT(String("Token:    ...") + (configStore.cloudToken+28));
  }
  DEBUG_PRINT(String("Device:   ") + BLYNK_INFO_DEVICE);
  DEBUG_PRINT(String("WiFi FW:  ") + WiFi.firmwareVersion());
  DEBUG_PRINT("--------------------------");
}

void runBlynkWithChecks() {
  Blynk.run();
  if (BlynkState::get() == MODE_RUNNING) {
    if (!Blynk.connected()) {
      if (WiFi.status() == WL_CONNECTED) {
        BlynkState::set(MODE_CONNECTING_CLOUD);
      } else {
        BlynkState::set(MODE_CONNECTING_NET);
      }
    }
  }
}

class Edgent {

public:
  void begin()
  {
    // Required to get MAC
    WiFi.begin();

    indicator_init();
    button_init();
    config_init();
    console_init();

    printDeviceBanner();

    if (configStore.getFlag(CONFIG_FLAG_VALID)) {
      BlynkState::set(MODE_CONNECTING_NET);
    } else if (config_load_blnkopt()) {
      DEBUG_PRINT("Firmware is preprovisioned");
      BlynkState::set(MODE_CONNECTING_NET);
    } else {
      BlynkState::set(MODE_WAIT_CONFIG);
    }
  }

  void run() {
    app_loop();
    switch (BlynkState::get()) {
    case MODE_WAIT_CONFIG:       
    case MODE_CONFIGURING:       enterConfigMode();    break;
    case MODE_CONNECTING_NET:    enterConnectNet();    break;
    case MODE_CONNECTING_CLOUD:  enterConnectCloud();  break;
    case MODE_RUNNING:           runBlynkWithChecks(); break;
    case MODE_OTA_UPGRADE:       enterOTA();           break;
    case MODE_SWITCH_TO_STA:     enterSwitchToSTA();   break;
    case MODE_RESET_CONFIG:      enterResetConfig();   break;
    default:                     enterError();         break;
    }
  }

};

Edgent BlynkEdgent;
BlynkTimer edgentTimer;

void app_loop() {
    edgentTimer.run();
    edgentConsole.run();
}


Error Code: 
```#include <WiFi101.h>
          ^~~~~~~~~~~
compilation terminated
exit status 1
WiFi101.h: No such file or directory


Screenshot:
[image|690x270](upload://vEVe1QQbrL7auSkRkQcdtOLahYr.png)

I’m sorry choose MKR_1010 not MKR1000

Got hit by another error:

BlynkEdgent.h:9:10: fatal error: WiFiNINA.h: No such file or directory
 #include <WiFiNINA.h>
          ^~~~~~~~~~~~
compilation terminated.

Download wifinina library, timer5 library and ArduinoOTA library.

I have successfully installed those libraries.

Now try to upload the sketch

After I ran it, the error went away and now, I am being confronted with another error:

 #include <FlashStorage.h>
          ^~~~~~~~~~~~~~~~
compilation terminated.
FlashStorage.h: No such file or directory

You can find it here :

I dont have EEPROM feature on my board, should I still proceed?

Yes

Wow! Wow! Wow! Thank you, Thank you so very much John93. You are AMAZING. I most deeply appreciate your patience and your guidance.
I am able to compile my code successfully and also able to see my board SSID when I scanned for it.