Difference between revisions of "R-Car/Boards/Yocto-Gen3/Azure IoT Edge/v5.5.0"
< R-Car | Boards/Yocto-Gen3 | Azure IoT Edge
(→Receive telemetry messages) |
(→Receive telemetry messages) |
||
Line 196: | Line 196: | ||
##:: [[File:Azure-list.png|1000px]]<br><br> | ##:: [[File:Azure-list.png|1000px]]<br><br> | ||
# Procedure on the Azure IoT Explorer | # Procedure on the Azure IoT Explorer | ||
− | #: Check that it receives telemetry messages from the | + | #: Check that it receives telemetry messages from the IoT Edge Device. |
## Install the Azure IoT Explorer. | ## Install the Azure IoT Explorer. | ||
##:: Download the installer from https://github.com/Azure/azure-iot-explorer/releases/tag/v0.14.1. | ##:: Download the installer from https://github.com/Azure/azure-iot-explorer/releases/tag/v0.14.1. |
Revision as of 00:10, 22 December 2021
Contents
Introduction
This page describes how to build the images to connect to the Azure IoT Hub on the R-Car, and receive telemetry messages from IoT Edge Device.
Environment
Host PC
OS | Ubuntu 20.04 LTS (64bit) |
Memory | 8 GB or more |
Storage | At least 100 GB free |
Boards confirmed to work
Board | SoC | Confirmed |
---|---|---|
R-Car Starter Kit Premier(H3) | v2.0 | OK |
CCPF + R-Car Starter Kit Premier(H3) | v2.0 | OK |
R-Car Starter Kit Pro(M3) | v1.0 | OK |
R-Car Starter Kit Pro(M3) | v3.0 | OK |
CCPF + R-Car Starter Kit Pro(M3) | v1.0 | OK |
CCPF + R-Car Starter Kit Pro(M3) | v3.0 | OK |
Set up in the Azure
- Create an Azure account
- Create an Azure account with reference to https://azure.microsoft.com/en-us/free/.
- Create an Azure IoT Hub
- Create an Azure IoT Hub with reference to Create an IoT hub.
- Register an Azure Device
- Access https://portal.azure.com/ and select your IoT Hub.
- Select "IoT Edge" under "Device Management" in the side menu, and then click "+ Add IoT Edge Device".
- Then, set an arbitrary name for "Device ID" and click "Save" without changing the other settings.
- And then, select "IoT Edge" under "Device Management" in the side menu, and click the device ID you created to check the "Primary Connection String".
- (The "Primary Connection String" is used in Receive telemetry messages.)
- Add the Azure module
- Add the Simulated Temperature Sensor module with reference to Deploy a module.
Build
- Install the required packages
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \ build-essential chrpath socat cpio python3 python3-pip python3-pexpect \ xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa \ libsdl1.2-dev pylint3 xterm
- Set up initial git configuration
$ git config --global user.email "you@example.com" $ git config --global user.name "Your Name"
- Create the following script(build.sh) for building
#!/bin/bash BOARD_LIST=("h3ulcb" "m3ulcb" "h3ulcb-ccpf-sk" "m3ulcb-ccpf-sk") TARGET_BOARD=$1 WORK=`pwd`/${TARGET_BOARD} # Commit ID POKY_COMMIT=6ebb33bdaccaeadff0c85aab27acf35723df00d8 META_OE_COMMIT=c38d2a74f762a792046f3d3c377827b08aade513 META_RENESAS_COMMIT=0fe77668f5d9a31a5d10449988c3d8fb8dc475c5 META_RENESAS_CCPF_COMMIT=b49b57d6e68d5cda70aefbed34e06903484c573b META_VIRTUALIZATION_COMMIT=92cd3467502bd27b98a76862ca6525ce425a8479 META_DOCKER_COMMIT=1ca1b5caf6f373dcc49db82dce50f4d8ab9f25cd META_RUST_COMMIT=7ff669d8cedd83a2d3efb73073a63b0a7efffddc META_IOTEDGE_COMMIT=06a968a4a662dc5c26aac8d72738767ed72aef52 Usage () { echo "Usage: $0 \${TARGET_BOARD_NAME}" echo "BOARD_NAME list: " for i in ${BOARD_LIST[@]}; do echo " - $i"; done exit } # Check Param. if ! `IFS=$'\n'; echo "${BOARD_LIST[*]}" | grep -qx "${TARGET_BOARD}"`; then Usage fi mkdir -p ${WORK} cd ${WORK} # Clone basic Yocto layers in parallel git clone git://git.yoctoproject.org/poky & git clone git://git.openembedded.org/meta-openembedded & git clone git://github.com/renesas-rcar/meta-renesas & git clone git://git.yoctoproject.org/meta-virtualization & git clone git://github.com/tkomagata/meta-docker & git clone git://github.com/meta-rust/meta-rust & git clone git://github.com/tkomagata/meta-iotedge & if [ "${TARGET_BOARD}" = "h3ulcb-ccpf-sk" ] || [ "${TARGET_BOARD}" = "m3ulcb-ccpf-sk" ]; then git clone git://github.com/renesas-rcar/meta-renesas-ccpf & fi # Wait for all clone operations wait # Switch to proper branches/commits cd ${WORK}/poky git checkout -b tmp ${POKY_COMMIT} cd ${WORK}/meta-openembedded git checkout -b tmp ${META_OE_COMMIT} cd ${WORK}/meta-renesas git checkout -b tmp ${META_RENESAS_COMMIT} cd ${WORK}/meta-virtualization git checkout -b tmp ${META_VIRTUALIZATION_COMMIT} cd ${WORK}/meta-docker git checkout -b tmp ${META_DOCKER_COMMIT} cd ${WORK}/meta-rust git checkout -b tmp ${META_RUST_COMMIT} cd ${WORK}/meta-iotedge git checkout -b tmp ${META_IOTEDGE_COMMIT} if [ "${TARGET_BOARD}" = "h3ulcb-ccpf-sk" ] || [ "${TARGET_BOARD}" = "m3ulcb-ccpf-sk" ]; then cd ${WORK}/meta-renesas-ccpf git checkout -b tmp ${META_RENESAS_CCPF_COMMIT} fi TEMPLATECONF=${WORK}/meta-iotedge/conf/machine/${TARGET_BOARD}/bsp/ cd ${WORK} source poky/oe-init-build-env ${WORK}/build bitbake core-image-minimal
- Build
$ chmod a+x build.sh $ ./build.sh <target_board_name>
- target_board_name is specified for each board according to the following table:
- Depending on the performance of the host PC, it may take several hours for the build to complete.
- When the build completes successfully, you will see the following output:
NOTE: Tasks Summary: Attempted 4704 tasks of which 31 didn't need to be rerun and all succeeded.
- Check the built images
- The built images are stored in the following:
- <target_board_name>/build/tmp/deploy/images/<target_board_name>/
- Write the images to the SD card
- Write the images to the SD card with reference to Loading kernel and rootfs via eMMC/SD card.
- 18px <translate> Note:</translate> Please replace "core-image-weston" with "core-image-minimal".
Receive telemetry messages
- Procedure on the target board
- Turn on the target board
- Insert the SD card into the target board, and connect the LAN cable to it.
- Use a microUSB cable to connect the target board, connect a power supply to it, and connect to serial console.
- Power on.
- Short-press SW8 "Power" to switch the board on.
- If the board is attached to the CCPF board, short-press SW4 "Power" instead of SW8.
- Configure U-Boot to boot from SD card
- Refer to Configure U-Boot to boot from SD card.
- Connect to your IoT Hub
- Configure to connect to your IoT Hub.
- Add a write permission to "/etc/iotedge/config.yaml".
$ chmod +w /etc/iotedge/config.yaml
- Set the "Primary Connection String" to device_connection_string.
$ vi /etc/iotedge/config.yaml device_connection_string: "<ADD DEVICE CONNECTION STRING HERE>" ← ★
- 18px <translate> Note:</translate> See Register an Azure Device for the "Primary Connection String".
- Remove a write permission from "/etc/iotedge/config.yaml".
$ chmod -w /etc/iotedge/config.yaml
- Restart the IoT Edge daemon.
$ systemctl restart iotedge
- Check that the IoT Edge daemon is running.
- Check that the following modules are deployed and are running.
- 18px <translate> Note:</translate> It may take several minutes for the deployment to complete.
$ iotedge list
- Turn on the target board
- Procedure on the Azure IoT Explorer
- Check that it receives telemetry messages from the IoT Edge Device.
- Install the Azure IoT Explorer.
- Download the installer from https://github.com/Azure/azure-iot-explorer/releases/tag/v0.14.1.
- 18px <translate> Note:</translate> Use v0.14.1 because v0.14.7(latest version) does not receive any telemetry messages.
- Launch the Azure IoT Explorer.
- Get the "Primary Connection String" for the iothubowner.
- Register your IoT Hub to the IoT Explorer
- Select the "IoT hubs" in the side menu of the Azure IoT Explorer, and click "+ Add connection".
- Paste the "Primary Connection string" you copied into the "Connection string" text box, finally click the "Save".
- Receive telemetry messages