物联网最大的特点就是万物互联,之前独立的传感器都接入了网络,并且在云平台上可以看到数据展示。
今天手把手教开发者搭建一个完整的物联网应用,温湿度传感器数据上云。
本案例硬件基于HaaS EDU K1, 使用Python轻应用进行开发,并且在阿里云物联网平台进行数据展示。
共分三步: 青铜篇 - 白银篇 - 黄金篇 , 一步步来完成这个物联网应用案例。
1、青铜篇
任务目标
创建、编写并推送一个轻应用
创建工程
如下图所示,打开HaaS Studio后,新建一个基于 helloworld 的 Python轻应用。
- 点击左侧 H 图标进入 HaaS Studio
- 选择 “快速开始”
- 选择 “Python轻应用开发”
- 点击 “创建项目”
5. 填写自己的 项目名称 和 工作区路径,硬件选择 haas Edu K1, 解决方案基于 helloworld
6. 生成的文件路径入下:main.py里就是我们要编写的设备端代码
拷贝代码
将以下代码拷贝至main.py运行,以下代码将调用 HaaS EDU K1 板载的温度传感器读取温湿度信息,并显示在OLED上。
import iot
import time
import sh1106
import netmgr as nm
from driver import SPI
from driver import GPIO
from si7006 import SI7006
# OLED屏幕
oled = None
def get_temp_humi():
#print("Testing si7006 ...")
si7006Dev = SI7006()
si7006Dev.open("si7006")
version = si7006Dev.getVer()
print("si7006 version is: %d" % version)
chipID = si7006Dev.getID()
print("si7006 chip id is:", chipID)
temperature = si7006Dev.getTemperature()
print("The temperature is: %.1f" % temperature)
humidity = si7006Dev.getHumidity()
print("The humidity is: %.1f" % humidity)
si7006Dev.close()
return temperature, humidity
def oled_init():
oled_spi = SPI()
oled_spi.open("oled_spi")
oled_res = GPIO()
oled_res.open("oled_res")
oled_dc = GPIO()
oled_dc.open("oled_dc")
global oled
oled = sh1106.SH1106_SPI(132, 64, oled_spi, oled_dc, oled_res)
oled.fill(0)
oled.text('Net Connecting...', 2, 24, 1)
oled.show()
def upload_Temperature_and_Humidity():
global oled
while True:
data = get_temp_humi()
T_str = "Temp: " + str(round(data[0], 2))
H_str = "Humi: " + str(round(data[1], 2))
oled.fill(0)
oled.text(T_str, 10, 2, 1)
oled.text(H_str, 10, 16, 1)
oled.show()
time.sleep(2)
# main.py 入口函数
if __name__ == '__main__':
oled_init()
upload_Temperature_and_Humidity()
推送脚本文件
使用现场提供的USB连接线 连接 HaaS EDU K1 到电脑。
推送脚本时需要用到 HaaS Studio 最下方的一排按钮。