当前位置: 首页 > 科技观察

基于Python和JavaScript编写物联网温度计程序

时间:2023-03-14 09:01:08 科技观察

Zerynth作为Android和iOS手机应用。在物联网项目中,可以快速对图形界面进行原型设计。借助Zerynth,任何手机都可以作为智能对象添加到控制器中,形成物联网系统。特别是通过建立双向通信通道,可以管理和控制连接到它的移动设备。在本文中,我们将介绍使用单芯片微控制器与Zerynth接口来开发简单但功能强大的物联网温度计。准备工作首先需要一块电路板,选择Zerynth支持的32位单片机设备即可。我们选择了Flip&ClickMikroelektronika,它具有许多与Arduino平台产品相同的属性,包括位于ArduinoDue核心的32位AT91SAM3X8E微芯片。然后选择Temp&HumClickwithtemperature(HTS221)andrelativehumiditysensor来测量温度。然后使用WiFiPLUSClick连接板子上网,WiFiPLUSClick具有MRF24WB0MA-2.4GHz特性,兼容IEEEstd802.11微芯片模块,是MCW1001的控制器,匹配板载TCP/IP堆栈和802.11连接管理器。***最重要的是,你需要ZerynthStudio,一个强大的物联网开发工具,可以使用Python嵌入式编程。点击下载。泽灵思应用程序。组装物联网温度计Flip&Click是Arduino的衍生产品。一方面,它属于Arduino产品,但另一方面,你会发现它包含四个只有“独立电路板”才有的带有开放式mikroBUS插座的模块。这些模块本质上都是Arduino原型机组装的附加模块,但如果减少和去掉,Flip&Click就勉强能用了,但需要在电路板的A槽和B槽分别增加Temp&Hum和WifiPlusclicks。使用Python编写IoT温度计参考示例安装ZerynthStudio并创建Zerynth用户后,您可以克隆“ZerynthApplicationOscilloscope”示例。请参考以下内容以了解如何克隆示例。main.py###############################################################################物联网温度计################################################################################fromwirelessimportwifi#thisexampleisbasedonParticlePhoton#changethefollowinglinetouseadifferentwifidriverfrombroadcom.bcm43362importbcm43362aswifi_driverimportstreamsimportadc#ImporttheZerynthAPPlibraryfromzerynthappimportzerynthappstreams.serial()sleep(1000)print("STARTING...")try:#DeviceUIDandTOKENcanbecreatedintheADMpanelzapp=zerynthapp.ZerynthApp("DEVICEUID","DEVICETOKEN",log=True)#connecttothewifinetwork(SetyourSSIDandpasswordbelow)wifi_driver.auto_init()foriinrange(0,5):try:wifi.link("SSID",wifi.WIFI_WPA2,"PASSWORD")breakexceptionase:print("Can'tlink",e)else:print("Impossibletolink!")whileTrue:sleep(1000)#StarttheZerynthappinstance!#Remembertocreateatetemplatewiththefilesunderthe"template"folderyoujustcloned#uploadittotheADandassociateitwiththeconnecteddevicezapp.run()#ReadADCandsendvaluestotheADMwhileTrue:sleep(1000)x=(adc.read(A4)*100)//4096zapp.event({"data":x})ifx>95:#sendmobilenotification#(thereislimitofonenotificationperminuteperdeviceonontheADMsandbox)zapp.notify("ALARM!","Thevalueisgreaterthan95!")exceptExceptionase:print(e)在这个例子中,Zerynth将从连接的电路板获取的数据转换成图形示波器进行可视化。这些模拟传感器的数据是通过“模拟”pinA4产生导入正确的wifi驱动程序和传感器库正如您在评论中看到的那样,该示例基于ParticlePhoton板和wifi驱动程序。要使用WiFiPlusClick,必须修改以下行:frombroadcom.bcm43362importbcm43362aswifi_driver将其更改为frommicrochip.mcw1001aimportmcw1001aaswifi_driver并将wifi_driver.auto_init()更改为wifi_driver.init(SERIAL2,D24)#slotB为了使用Temp&Hum点击温度传感器,需要添加如下几行代码导入库并设置传感器,帮助文档中可以看到#ImporttheHTS221libraryfromstm.hts221importhts221temp_hum=hts221.HTS221(I2C0,D21)#sl同上时间,为了读取传感器,有必要写下一行。tmp,hum=temp_hum.get_temp_humidity()#Readtmpandhum设置SSID名称和密码当然,你还需要编辑你要连接的wifi网络的SSID名称和密码:wifi.link("SSID",wifi.WIFI_WPA2,"PASSWORD")创建并设置一个连接设备现在我们需要创建一个“连接设备”来关联一个“zerynth”实例。请参阅下面屏幕截图中的步骤。有关更多技术细节,请参阅文档。设备的证书(UID和TOKEN)可以直接从开发工具ZerynthStudio的ADM面板中复制粘贴。“IP”是ZerynthADM的IP地址。当网络驱动程序不支持主机名解析时,填写这些参数可以派上用场。创建、上传和设置模板Zerynth可以直接运行由HTML、CSS和JavaScript组成的漂亮的GUI,根本不需要Android或iOS代码!此外,每个设备的GUI都托管在ZerynthADM沙箱上,由几列组成。它由HTML5、Javascript、Css和图像文件组成,可以在App上加载和显示。Zerynth向ADMJavascript库添加了模板,以允许应用程序与连接的设备进行通信。单击相应的“加号”图标添加模板。然后从包含模板的目录上传模板。请注意,您可以修改模板定义文件“index.html”进行自定义。在这里我们保持原样。对部署脚本进行多次修改后,代码如下所示:####################################################################################ZerynthApp示波器##############################################################################fromwirelessimportwififrommicrochip.mcw1001aimportmcw1001aaswifi_driverimportstreamsimportadcstreams.serial()#ImporttheZerynthAPPlibraryfromzerynthappimportzerynthapp#ImporttheHTS221libraryfromstm.hts221importhts221temp_c221.hts221.hts221.hts221.hts221.hts221.hts221library导入,D21)#slotAsleep(1000)print("STARTING...")try:#DeviceUIDandTOKENcanbecreatedintheADMpanelzapp=zerynthapp.ZerynthApp("DEVICEUID","DEVICETOKEN",ip="178.22.65.123",log=True)#connecttothewifinetwork(SetyourSSIDandpasswordbelow))wifi_driver2.init(SERIAL,D24)#slotBforiinrange(0,5):try:wifi.link("SSID",wifi.WIFI_WPA2,"PASSWORD")breakexceptionase:print("Can'tlink",e)else:print(“不可能链接!”)whileTrue:睡眠(1000)#StarttheZerynthappinstance!#Remembertocreateateatemplatewhilethefilesunderthe"template"folderyoujustcloneed#uploadittotheADMandassociateitwiththeconnecteddevicezapp.run()#ReadthesensorandsendvaluestotheADMwhileTrue:sleep(1000)tmp,hum=temp_hum.get_temp_humidity()#Readtmpandhumprint("Tempis:",tmp,"Humidityis:",hum)尝试:zapp.event({"data":tmp})exceptExceptionase:print(e)iftmp>30:#sendmobilenotification#(ADMsandbox上每个设备每分钟有一个通知限制)try:zapp.notify("ALARM!","HighTemperature!")exceptExceptionase:print(e)exceptExceptionase:print(e)请记住,“DeviceUID”、“DeviceToken”、“Name”和“Password”必须符合您自己的参数,编写脚本后才能部署到您的设备上。如何在Zerynthapp上查看物联网温度计仪表板在这个极简教程中,您只需要打开Zerynthapp,登录并选择指定的设备即可查看对应的物联网温度计仪表板。***,Zerynth还可以通过连接的设备接收推送通知。例如,当温度大于阈值时,将出现通知。