Все,
Я работаю над проектом с моим 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.
Причина этой ошибки заключается в том, что вы устанавливаете версию 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 у меня работает.
Других решений пока нет …