StaticJsonBuffer ‘не был объявлен в этой области с использованием платы Feather Huzzah (ESP8266) с использованием учебника MSFT IOT Azure

Все,

Я работаю над проектом с моим Adafruit Feather Huzzuh.

Я прорабатываю следующий урок

https://docs.microsoft.com/nl-nl/azure/iot-hub/iot-hub-arduino-huzzah-esp8266-get-started

Кстати, все еще использую Arduino IDE.

Плата и датчик DHT работали раньше.

Я считаю, что все пакеты установлены.

Я использую код с открытым исходным кодом из:

https://github.com/Azure-Samples/iot-hub-feather-huzzah-client-app.git

Я получаю сообщение об ошибке компиляции при попытке скомпилировать основной файл app.ino (https://github.com/Azure-Samples/iot-hub-feather-huzzah-client-app/blob/master/app/app.ino).

Ошибка:

Arduino: 1.8.5 (Windows 10), плата: «Adafruit Feather HUZZAH ESP8266»,
80 МГц, вспышка, 4M (3M SPIFFS), более низкая память v2, отключено, нет, только
Эскиз, 115200 «

C: \ Users \ Edwin \ Dropbox \ Projects \ Arduino
project \ DHT_online_azure \ app \ message.ino: в функции ‘bool
readMessage (int, char *) ‘:

сообщение: 46: ошибка: «StaticJsonBuffer» не был объявлен в этой области

 StaticJsonBuffer<MESSAGE_MAX_LEN> jsonBuffer;

^

C: \ Users \ Edwin \ Dropbox \ Projects \ Arduino
project \ DHT_online_azure \ app \ message.ino: 46: 5: примечание: предлагается
альтернатива:

В файл включен из C: \ Users \ edwin \ Dropbox \ Projects \ Arduino
Проект \ библиотеки \ arduino_163901 \ SRC / ArduinoJson / StaticJsonDocument.hpp: 8: 0,

             from C:\Users\edwin\Dropbox\Projects\Arduino project\libraries\arduino_163901\src/ArduinoJson.hpp:10,

from C:\Users\edwin\Dropbox\Projects\Arduino project\libraries\arduino_163901\src/ArduinoJson.h:9,

from C:\Users\edwin\Dropbox\Projects\Arduino project\DHT_online_azure\app\message.ino:2:

C: \ Users \ Edwin \ Dropbox \ Projects \ Arduino
Проект \ библиотеки \ arduino_163901 \ SRC / ArduinoJson / Память / StaticJsonBuffer.hpp: 110: 7:
примечание: ‘ArduinoJson :: Internals :: StaticJsonBuffer’

класс StaticJsonBuffer: общедоступные внутренние структуры :: StaticJsonBufferBase {

   ^

сообщение: 46: ошибка: ‘jsonBuffer’ не был объявлен в этой области

 StaticJsonBuffer<MESSAGE_MAX_LEN> jsonBuffer;

^

сообщение: 74: ошибка: у класса ArduinoJson :: JsonObject нет члена с именем
‘PrintTo’

 root.printTo(payload, MESSAGE_MAX_LEN);

^

C: \ Users \ Edwin \ Dropbox \ Projects \ Arduino
project \ DHT_online_azure \ app \ message.ino: в функции ‘void
parseTwinMessage (символ *) ‘:

сообщение: 80: ошибка: «StaticJsonBuffer» не был объявлен в этой области

 StaticJsonBuffer<MESSAGE_MAX_LEN> jsonBuffer;

^

C: \ Users \ Edwin \ Dropbox \ Projects \ Arduino
project \ DHT_online_azure \ app \ message.ino: 80: 5: примечание: предлагается
альтернатива:

В файл включен из C: \ Users \ edwin \ Dropbox \ Projects \ Arduino
Проект \ библиотеки \ arduino_163901 \ SRC / ArduinoJson / StaticJsonDocument.hpp: 8: 0,

             from C:\Users\edwin\Dropbox\Projects\Arduino project\libraries\arduino_163901\src/ArduinoJson.hpp:10,

from C:\Users\edwin\Dropbox\Projects\Arduino project\libraries\arduino_163901\src/ArduinoJson.h:9,

from C:\Users\edwin\Dropbox\Projects\Arduino project\DHT_online_azure\app\message.ino:2:

C: \ Users \ Edwin \ Dropbox \ Projects \ Arduino
Проект \ библиотеки \ arduino_163901 \ SRC / ArduinoJson / Память / StaticJsonBuffer.hpp: 110: 7:
примечание: ‘ArduinoJson :: Internals :: StaticJsonBuffer’

класс StaticJsonBuffer: общедоступные внутренние структуры :: StaticJsonBufferBase {

   ^

сообщение: 80: ошибка: «jsonBuffer» не был объявлен в этой области

 StaticJsonBuffer<MESSAGE_MAX_LEN> jsonBuffer;

^

сообщение: 82: ошибка: у класса ArduinoJson :: JsonObject нет члена
«Успех»

 if (!root.success())

^

сообщение: 88: ошибка: ‘ArduinoJson :: Internals :: enable_if> :: type’ имеет
ни один участник с именем «успех»

 if (root["desired"]["interval"].success())

^

статус выхода 1 «StaticJsonBuffer» не был объявлен в этой области

Этот отчет будет иметь больше информации с «Показать подробный вывод
во время компиляции «опция включена в Файл -> Настройки.

файл ArduinoJson.h включен в файл message.ino.

Не нарушен ли код с открытым исходным кодом, предоставленный MSFT?

У кого-нибудь есть идея, чтобы это исправить?

РЕДАКТИРОВАТЬ 2018-08-23

Ответ от Риты Хан — MSFT сработал (откат библиотеки json до версии 5.x), и теперь я вижу, что устройство подключено к моей точке доступа. Я столкнулся со следующей проблемой:

подключен к NETGEAR33, клиент 10 канала dhcp запускается …
ip: 192.168.1.29, маска: 255.255.255.0, gw: 192.168.1.1 подключена к Wi-Fi
NETGEAR33. Выбранное время эпохи NTP: 28821. идентификатор устройства не найден
Не удалось на IoTHubClient_CreateFromConnectionString.

Я скопировал «Строка подключения — первичный ключ» из меню iothubowner в разделе настройки: политики общего доступа.

Почему-то он не принимает мой общий ключ доступа. Я буду гуглить немного, чтобы попытаться решить это. Помощь приветствуется.

РЕДАКТИРОВАТЬ 2018-08-03
Решено также! Я вижу измерения в серийном мониторе. Нужно найти способ изменить его с DH22 на DH11 … но я должен сам это выяснить. Видел и исправил проблему на моей попытке Adafruit IO.

0

Решение

Причина этой ошибки заключается в том, что вы устанавливаете версию ArduinoJson> = 6. Будет установлена ​​версия по умолчанию 6.2.3-beta, но с версии 6 и выше JsonBuffer заменен на JsonDocument. Это также указывает на сообщение об ошибке:

C: \ Users \ Edwin \ Dropbox \ Projects \ Arduino
project \ DHT_online_azure \ app \ message.ino: 80: 5: note: предложенный
альтернатива
:

В файл включен из C: \ Users \ edwin \ Dropbox \ Projects \ Arduino
Проект \ библиотеки \ arduino_163901 \ SRC / ArduinoJson /StaticJsonDocument.HPP: 8: 0,

Чтобы решить эту проблему, вы можете вернуться к предыдущей версии. Версия 5.13.2 у меня работает.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector