Я пытаюсь подключить устройство ESP32 к облачной платформе Google (GCP) с ОС Mon goose. Я новичок в ОС Mon goose, но дошел до постройки и запуска кода sh, а также подключения к Wi-Fi. Но у меня возникают проблемы, когда я добавляю информацию в файл mos.yml для подключения к GCP. Это ошибка:
mgos.gcp. c: 361 Invalid gcp.key (0xffffc200)
Я создал пару ключей со следующими командами:
openssl ecparam -genkey -name prime256v1 -noout -out ec_private.pem
openssl ec -in ec_private.pem -pubout -out ec_public.pem
Это мой mos.yml:
author: HiMinds.com
description: Test application for connecting to Google IoT Core via MQTT-bridge
version: 0.1
arch: esp32
libs_version: ${mos.version}
modules_version: ${mos.version}
mongoose_os_version: ${mos.version}
# Optional. List of tags for online search.
tags:
- js
- c
# List of files / directories with C sources. No slashes at the end of dir names.
sources:
- src
# List of dirs. Files from these dirs will be copied to the device filesystem
filesystem:
- fs
config_schema:
- ["pins", "o", {title: "Pins layout"}]
- ["pins.button", "i", 0, {title: "Button GPIO pin"}]
- ["pins.button_pull_up", "b", true, {title: "True if button is pulled up when inactive"}]
- ["pins.led", "i", 5, {title: "LED GPIO pin"}]
- ["wifi.ap.enable", false]
- ["wifi.sta.enable", true]
- ["wifi.sta.ssid", "my_SSID"]
- ["wifi.sta.pass", "my_password"]
- ["device.id", "esp32"]
- ["mqtt.enable.", true]
- ["mqtt.server", "mqtt.googleapis.com:8883"]
- ["mqtt.ssl_ca_cert", "roots.pem"]
- ["gcp.enable", true]
- ["gcp.project", "project_name"]
- ["gcp.region", "europe-west1"]
- ["gcp.registry", "registry_name"]
- ["gcp.device", "esp32"]
- ["gcp.key", "ec_private.pem"]
- ["provision.max_state", 3]
libs:
# - origin: https://github.com/mongoose-os-libs/ca-bundle
- origin: https://github.com/mongoose-os-libs/core
- origin: https://github.com/mongoose-os-libs/provision
- origin: https://github.com/mongoose-os-libs/rpc-service-config
- origin: https://github.com/mongoose-os-libs/rpc-service-fs
- origin: https://github.com/mongoose-os-libs/rpc-service-gpio
- origin: https://github.com/mongoose-os-libs/rpc-uart
#IoT
- origin: https://github.com/mongoose-os-libs/adc
- origin: https://github.com/mongoose-os-libs/mjs
- origin: https://github.com/mongoose-os-libs/mqtt
- origin: https://github.com/mongoose-os-libs/wifi
- origin: https://github.com/mongoose-os-libs/gcp
- origin: https://github.com/mongoose-os-libs/sntp
# Used by the mos tool to catch mos binaries incompatible with this file format
manifest_version: 2017-09-29
Чего мне не хватает?
Я запустил mos put full_path_to_key/ec_private.pem
, чтобы отправить ключ на устройство, который работает только когда я излучаю строки GCP из моего "mos.yml". Нужно ли мне повторно отправлять ключ после восстановления и перепрошивки нового кода, включая строки GCP? Я также отправил загруженный файл сертификата root «roots.pem» (но фактически нигде не читал, что вы должны отправить этот файл на устройство).
Я также не уверен, что пути к ключу file (и файл roots.pem) должны быть полными на моем компьютере, или если они ссылаются на файлы на самом устройстве, и этого достаточно только с именем файла без пути. Однако ни одна из опций не работает.
В качестве примечания, я также получаю эту ошибку, даже без информации GCP в mos.yml, если это может иметь какое-либо отношение к ней:
M JS ошибка: не удалось запустить c файл "api_ aws. js": не удалось прочитать файл "api_ aws. js"