使用 Python 的物联网温度计
组件和用品
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 |
应用和在线服务
![]() |
|
关于这个项目

Zerynth 应用程序
Zerynth App 是一款适用于 Android 的移动应用程序 和 iOS 允许快速原型制作 图形界面 用于您的物联网项目 .
使用 Zerynth App,您可以将任何手机变成控制器并显示智能对象 和物联网系统 !特别是,您可以管理和控制使用 Zerynth 编程的连接设备,从而在它们与您的手机之间建立双向通信通道。
在本教程中,我们将了解如何开发一个简单但功能强大的 IoT 温度计 ,使用 Zerynth 驱动的单板微控制器和 Zerynth 应用作为远程显示器。
所需材料
首先,你需要一个板子。您可以选择 Zerynth 支持的 32 位微控制器设备之一。我们选择了 Mikroelektronika 的 Flip&Click,它与流行的 Arduino 平台具有许多相同的属性,包括 Microchip 的 32 位 AT91SAM3X8E, Arduino Due 的核心。
为了测量温度,我们选择了带有 HTS221 温度和相对湿度传感器的 Temp&Hum Click。
为了将电路板连接到互联网,我们选择了 WiFi PLUS Click,它具有 MRF24WB0MA – 2.4GHz,IEEE 标准。 802.11 – 来自 Microchip 的兼容模块 ,以及带有板载 TCP/IP 堆栈和 802.11 连接管理器的 MCW1001 配套控制器。
最后但并非最不重要的是,您需要:
- Zerynth 工作室 ,我们强大的 IDE,用于在 Python 中进行嵌入式编程,支持物联网。你可以在这里下载。
- Zerynth 应用 .你可以在这里下载。
组装您的物联网温度计
Flip&Click 是 Arduino 的双面表亲。一方面,它是一个 Arduino。但另一方面,您会发现四个打开的 mikroBUS 插座,用于公司所谓的“点击板”。本质上,这些是类似于 Arduino 扩展板的附加模块,但缩小了尺寸,以便您可以在 Flip &Click 上同时安装几个模块,而不会出现任何问题。 只需将 Temp&Hum 和 Wifi Plus 的点击分别添加到板上的插槽 A 和 B。
如何使用 Python 编写物联网温度计
克隆示例
安装 Zerynth Studio 并创建 Zerynth 用户后,您可以克隆示例“Zerynth App Oscilloscope ”。看这里学习如何克隆一个例子。

我们来看看“main.py”中的原始代码 ” 文件:这里是您开发 Python 逻辑的地方 脚本。我们将从原始代码开始,然后我们将编辑脚本以开发我们的特定项目。
######################################### ###################################物联网温度计########### ############################################### ################## from wireless import wifi# 这个例子是基于 Particle Photon# 更改以下行以使用不同的 wifi 驱动程序 from Broadcom.bcm43362 import bcm43362 as wifi_driverimport streamsimport adc # 导入 Zerynth APP 库 from zerynthapp import zerynthapp streams.serial() sleep(1000)print("STARTING...") try:# 设备 UID 和 TOKEN 可以在 ADM 面板中创建 zapp =zerynthapp.ZerynthApp("DEVICE UID", "DEVICE TOKEN", log=True) # 连接到 wifi 网络(在下面设置您的 SSID 和密码) wifi_driver.auto_init() for i in range(0,5):try:wifi.link("SSID" ,wifi.WIFI_WPA2, “密码”),除了异常为e突破:打印( “无法链接”,五)其他:打印( “无法链接!”),而真:睡眠(1000) # 启动 Zerynth 应用实例! # 请记住使用您刚刚克隆的“模板”文件夹下的文件创建模板 # 将其上传到 ADM 并将其与连接的设备关联 zapp.run() # 读取 ADC 并将值发送到 ADM 1000),X =(adc.read(A4)* 100)// 4096 zapp.event({ “数据”:X})如果x> 95:#发送移动通知#(有每分钟每一个通知的限制ADM 沙箱上的设备) zapp.notify("ALARM!","值大于 95!") 出了例外 e:print(e)
在这个简单的示例中,Zerynth 应用程序将图形示波器可视化,数据来自连接的电路板。数据通过“模拟”引脚 A4 从模拟传感器获取。
导入正确的 wifi 驱动程序和传感器库
正如您在评论中所见,此示例基于 Particle Photon 板及其 wifi 驱动程序。由于我们要使用WiFi Plus Click,我们必须更改以下几行:
从 Broadcom.bcm43362 导入 bcm43362 作为 wifi_driver
在
从 microchip.mcw1001a 导入 mcw1001a 作为 wifi_driver
和
wifi_driver.auto_init()
在
wifi_driver.init(SERIAL2,D24) # slot B
然后,我们要使用 Temp&Hum Click 的温度传感器。因此,我们必须添加以下几行来导入库并设置传感器,您可以在文档中阅读:
# 从 stm.hts221 import hts221 temp_hum =hts221.HTS221(I2C0, D21) # slot A
导入 HTS221 库
要读取传感器,只需在必要的地方写入以下行:
tmp, hum =temp_hum.get_temp_warmity() # 读取 tmp 和 hum
设置 SSID 名称和密码
当然,你还要编辑你要连接板子的wifi网络的SSID名称和PASSWORD,编辑这一行:
wifi.link("SSID",wifi.WIFI_WPA2,"PASSWORD")
创建并设置连接的设备
现在我们必须创建一个“连接的设备”并将“zerynthapp”实例链接到它。您可以在下面看到一些包含必要步骤的屏幕截图。查看此文档了解更多技术细节。

设备凭据(UID 和令牌 ) 可以直接从 Zerynth Studio(ADM 面板)复制和粘贴。 “IP”是 Zerynth ADM 的 IP 地址。当网络驱动程序不支持主机名解析时使用此参数,如本例所示。

创建、上传和设置模板
通过 Zerynth 应用程序,您可以使用 HTML 运行漂亮的响应式图形用户界面 , CSS 和 JavaScript .无需 Android 或 iOS 代码!
每个设备的图形界面都托管在 Zerynth ADM 沙箱上,由一组 HTML5、Javascript、CSS 和图像文件组成,这些文件在应用程序中加载和显示。添加到模板的 ADM Javascript 库允许应用程序与连接的设备进行交互,包括接收和发送消息。
单击相应的“加号”图标可以添加模板。

然后从专用文件夹上传模板。请注意,定义模板的文件名为“index.html ”,您可以根据需要对其进行编辑。在这种情况下,您可以保持原样。

上传脚本
经过几次编辑后,代码应如下所示:
######################################### ###################################物联网温度计########### ############################################### ################## from wireless import wififrom microchip.mcw1001a import mcw1001a as wifi_driverimport streamsimport adc streams.serial() # 导入Zerynth APP libraryfrom zerynthapp import zerynthapp # 导入HTS221 libraryfrom stm.hts221 import hts221 temp_hum =hts221.HTS221(I2C0, D21) # slot A sleep(1000)print("STARTING...") try:#可以在 ADM 面板中创建设备 UID 和令牌 =ZerynthApp("DEVICE UID", "DEVICE TOKEN",ip ="178.22.65.123", log=True) # 连接到 wifi 网络(在下面设置您的 SSID 和密码) wifi_driver.init(SERIAL2,D24) # slot B for我在范围(0,5):尝试:wifi.link( “SSID”,wifi.WIFI_WPA2, “密码”),除了异常为e突破:打印( “无法链接”,五)其他:打印(“不可能链接!”) while True:sleep(1000) # 启动 Zerynth 应用实例! # 请记住使用刚刚克隆的“模板”文件夹下的文件创建模板 # 将其上传到 ADM 并将其与连接的设备相关联 zapp.run() # 读取传感器并将值发送到 ADM 睡眠(1000)TMP,呜呜=temp_hum.get_temp_humidity()#读取tmp和嗡嗡声的打印( “Temp是:”,TMP, “湿度是:”,嗡嗡声)尝试:zapp.event({ “数据”:TMP}),所不同异常为e:打印(e)如TMP> 30:#发送移动通知#(有每台设备每分钟一个通知对ADM沙箱的限制)尝试:zapp.notify(!“报警”,“高温! ") 例外情况 e: print(e) 例外情况 e: print(e)
请记住,必须编辑“设备 UID”、“设备令牌”、“SSID”和“密码”以适合您自己的参数。
此时,您可以将脚本上传到您的设备中。
如何在 Zerynth 应用上查看 IoT 温度计仪表板
正如您在这个非常简短的教程中所读到的,您只需打开 Zerynth 应用程序,登录并选择特定设备即可查看您的 IoT 温度计仪表板。最后,Zerynth App 还可以接收推送通知 从连接的设备。在这种情况下,当温度高于阈值时会出现通知!

如果您有任何问题,请随时在 Zerynth 社区论坛中展开讨论。
享受吧!
代码
- 物联网温度计
物联网温度计Python
############################################ ###############################Zerynth 应用示波器############# ############################################### ################ from wireless import wififrom microchip.mcw1001a import mcw1001a as wifi_driverimport streamsimport adc streams.serial() # 从 zerynthapp 导入 Zerynth APP 库 from zerynthapp import zerynthapp # 从 HTS221 库导入.hts221 import hts221 temp_hum =hts221.HTS221(I2C0, D21) # slot A sleep(1000)print("STARTING...") try:# 设备 UID 和 TOKEN 可以在 ADM 面板中创建 zapp.ZerynthApp "DEVICE UID", "DEVICE TOKEN",ip ="178.22.65.123", log=True) #连接到wifi网络(在下面设置你的SSID和密码) wifi_driver.init(SERIAL2,D24) # slot B for i in范围(0,5):尝试:wifi.link( “SSID”,wifi.WIFI_WPA2, “密码”),除了异常为e突破:打印( “无法链接”,五)其他:打印(“无法链接!") while True:sleep(1000) # 启动 Zerynth 应用实例! # 请记住使用刚刚克隆的“模板”文件夹下的文件创建模板 # 将其上传到 ADM 并将其与连接的设备关联 zapp.run() # 读取传感器并将值发送到 ADM (1000)TMP,呜呜=temp_hum.get_temp_humidity()#读取tmp和嗡嗡声的打印( “Temp是:”,TMP, “湿度是:”,嗡嗡声)尝试:zapp.event({ “数据”:TMP}),所不同异常为e:打印(e)如TMP> 30:#发送移动通知#(有每台设备每分钟一个通知对ADM沙箱的限制)尝试:zapp.notify(!“报警”,“高温! ") 除外 e:print(e) 出了例外情况: print(e)
示意图

制造工艺
- 温度计
- TMP006 温度传感器 Python 库,使用 Raspberry pi,
- Python 和 Raspberry Pi 温度传感器
- 使用 PSoC 6 Pioneer Board 和 Pioneer IoT Add-on Shield
- 物联网如何颠覆我们周围的世界
- 如何在 Windows 上安装 Python [Pycharm IDE]
- Python 使用 os.rename() 重命名文件和目录
- 使用 Python 登录 Facebook:FB 登录示例
- Python 平均值:如何在 Python 中找到列表的平均值
- 使用 Python 将字符串转换为标题大小写
- Python - 使用 SMTP 发送电子邮件
- 使用 Arduino 和 RFID 和 Python 的考勤系统