该系列文章为微软Azure IoT的学习教程。
原文链接:Hector Garcia Tellado
本文作者:Jim 微软Azure IoT 项目经理,多年Xamarin等移动平台研发管理经验,熟悉微软SharePoint/WPF/WCF/AspMVC等解决方案。曾任中国电信呼叫中心研发经理。
这篇文章将帮你使用Azure IoT套件(树莓派Pi2和Pi3)来熟悉Azure IoT的开发。这里主要演示如何通过开发者套件连接Azure IoT套件中的远程监视预配置解决方案。
如果你以前没有使用过Azure IoT 服务,我们鼓励你从远程监视预配置解决方案入手,所有相关的Azure 服务将会在这个预配置方案中得到部署。
如果你还没有开发者套件,请点击这里。
接下来的演练将使用开发者套件(针对Pi2和Pi3)开发一个温湿度读取器,在Raspbian OS上运行并通过微软Azure IoT SDK进行云端通讯。针对Windows 10 IoT Core的样例,请参考 windowsondevices.com.
在本文中,你将会:
警告:远程监视预配置解决方案将会使用你的Azure账号创建一组Azure IoT 服务。这意味着将会有一个真实的企业级架构方案被创建并且它在Azure上的开销将会很大。为了避免不必要的Azure使用开销,我们建议你一旦完成演练(因为它非常容易被再次创建)就在azureiotsuite.cn上删掉预配置方案。或者,如果你希望保留它,你可以通过下面的方式减少它的开销:
如果这是你第一次使用树莓派,那么是时候去设置它了。如果你想使用Windows,请访问http://www.windowsondevices.com/ 查看更多的指导如何使用树莓派。如果你正在使用Linux,树莓派和Adafruit有一系列的入门教程和视频。
请访问下面的链接:
注意:
Pi Pin | 终点 | 线路颜色 |
---|---|---|
SPI_CE0 (Pin 24) | CS (Pin 21A) | 蓝色 |
SPI_SCLK (Pin 23) | SCK (18A) | 黄色 |
SPI_MISO (Pin 21) | SDO (19A ) | 白色 |
SPI_MOSI (Pin 19) | SDI (Pin 20A) | 绿色 |
GND (Pin 6) | GND (Pin 17A) | 黑色 |
3.3V (Pin 1) | 3Vo (Pin 16A) | 红色 |
注意:关于树莓派GPIO的更多参考请点击这里。
最后,你的树莓派应该与一个工作中的传感器连接好了。
默认的树莓派用户名是pi,密码是raspberry. 如果你直接使用Raspbian的界面,在任务条顶部,你可以使用从左侧数第三个图片启动终端(类似显示器的图标)
通过PuTTY登录
现在我们可以下载远程监视样例代码了,然后输入你的设备证书(也就是“连接字符串”)并从树莓派发送数据到Azure远程监视解决方案。
复制下面的代码库,并通过下面的命令在树莓派上合并它们:
cd ~
git clone --recursive https://github.com/Azure-Samples/iot-hub-c-raspberrypi-getstartedkit.git
git clone --recursive https://github.com/WiringPi/WiringPi.git
然后,我们需要更新设备连接字符串
nano ~/iot-hub-c-raspberrypi-getstartedkit/samples/remote_monitoring/remote_monitoring.c
static const char* deviceId = "[Device Id]";
static const char* deviceKey = "[Device Key]";
static const char* hubName = "[IoTHub Name]";
static const char* hubSuffix = "[IoTHub Suffix, i.e. azure-devices.net]";
用你在教程一开始的时候创建的设备和IoT Hub的信息替换占位符。例如:
使用 Control-o, Enter, Control-x
保存和退出
现在你已经退出了Nano, 使用下面的命令安装必要的微软Azure IoT Device SDK for C程序包(可以直接在设备上运行或者通过SSH客户端如PuTTY运行)
sudo apt-get update
sudo apt-get install curl libcurl4-openssl-dev uuid-dev uuid g++ make cmake git unzip openjdk-7-jre libssl-dev libncurses-dev subversion gawk
cd ~/iot-hub-c-raspberrypi-getstartedkit/
sudo ~/iot-hub-c-raspberrypi-getstartedkit/azure-iot-sdks/c/build_all/linux/setup.sh
chmod +x ~/iot-hub-c-raspberrypi-getstartedkit/samples/build.sh
~/iot-hub-c-raspberrypi-getstartedkit/samples/build.sh
sudo nano /boot/config.txt
#dtparam=spi=on
Control-o, Enter, Control-x
保存和退出sudo reboot
sudo ~/cmake/samples/remote_monitoring/remote_monitoring
如果一切顺利的话,你将能够看到数据流!按下 Ctrl+C
随时退出程序。下面是一个运行中的脚本输出样例:
Humidity = 48.4% Temperature = 23.9*C
Sending sensor value Temperature = 23.9*C, Humidity = 48.4%
IoTHubClient accepted the message for delivery