У меня возникли проблемы при подключении платы NodeMCU к серверу ThingWorx Foundation.
Пользовался данным
мануалом
Сервер нужен для создания устройств IoT и умного дома в том числе.
Кусок кода из манула. Главное тут - WiFi Definitions и ThingWorx server definitions. Это те части, которые я редактировал под себя, заменив Wi-Fi SSID на имя сети, к которой я подключен и пароль от этой сети.
TWPlatformBaseURL я заменил на ссылку, которая сгенерировалась, когда я запустил пробную версию удаленного сервера ThingWorx.
AppKey - это ключ приложения, который я создал на этом сервере (он определяет какие IP-адреса могут подключаться к моему серверу).
/**
*
* ESP8266_ThingWorx_REST_Demo.ino
*
*
* (c) PTC, Inc. 2016-2020
*
*/
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClientSecureBearSSL.h>
//////////////////////
// WiFi Definitions //
//////////////////////
const char WiFiSSID[] = "Liberty454"; // WiFi access point SSID
const char WiFiPSK[] = "Flutie22"; // WiFi password - empty string for open access points
//////////////////////////////////////////////
// ThingWorx server definitions //
// modify for a specific platform instance //
//////////////////////////////////////////////
const char TWPlatformBaseURL[] = "https://pp-2007011431nt.devportal.ptc.io";
const char appKey[] = "2d4e9440-3e51-452f-a057-b55d45289264";
Далее я подключил плату NodeMCU, загрузил в нее скетч:
скетч
Вот что я получаю от Монитора Порта в Arduino IDE.
WiFi connected
IP address:
*мойIPАдресс*
DeviceID>ESP8266Board-FXX
[httpsGetPropertry] begin...GET URL>https://pp-2103XXXXXXXX.devportal.ptc.io/Thingworx/Things/ESP8266Board-FXX/Properties/SomeNumber?appKey=МойAppKey<
Fatal exception 28(LoadProhibitedCause):
epc1=0x4020a2c0, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00300030, depc=0x00000000
Wi-Fi подключается, проблема возникает именно, когда происходит запрос httpsGetPropertry.
Судя по всему он не может найти Things/ESP8266Board-FXX и вылетает ошибка. Хотя по идеи, если эта вещь не найдена, он создаст ее автоматически. В моем случае это не сработало, но даже когда я вручную создал объект ESP8266Board-FXX, то по прежнему получал ту же ошибку fatal exception.
Мне нужно, чтобы NodeMCU подключилась к серверу и создала там объект (Thing) с моей платой ESP8266.
Постарался объяснить максимально понятным способом.