首页 > 分享 > #新物联网挑战二#+智能植物育苗养护数据采集系统

#新物联网挑战二#+智能植物育苗养护数据采集系统

# -*- coding: UTF-8 -*- # MindPlus# Pythonimport base64from io import BytesIOfrom PIL import Imagefrom pinpong.libs.dfrobot_ens160 import Ens160from pinpong.libs.dfrobot_tds import TDSfrom pinpong.extension.unihiker import *from pinpong.board import Board,Pinfrom pinpong.board import DS18B20from dfrobot_rp2040_sci import *from pinpong.board import Boardfrom pinpong.board import Pinimport requestsimport siotimport timeimport cv2 Board().begin()siot.init(client_id="8901479492667037",server="10.1.2.3",port=1883,user="siot",password="dfrobot")siot.connect()siot.loop()p_p21_analog=Pin(Pin.P21, Pin.ANALOG)SCI1 = DFRobot_RP2040_SCI_IIC(addr=0x21)while SCI1.begin() != 0: print("Initialization Sensor Universal Adapter Board failed.") time.sleep(1)print("Initialization Sensor Universal Adapter Board done.") def frame2base64(frame): frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) img = Image.fromarray(frame) #将每一帧转为Image output_buffer = BytesIO() #创建一个BytesIO img.save(output_buffer, format='JPEG') #写入output_buffer byte_data = output_buffer.getvalue() #在内存中读取 base64_data = base64.b64encode(byte_data) #转为BASE64 return base64_data #转码成功 返回base64编码 def base642base64(frame): data=str('data:image/png;base64,') base64data = str(frame2base64(frame)) framedata = base64data[2:(len(base64data)-1)] base642base64_data = data + str(framedata) return base642base64_datavd = cv2.VideoCapture()vd.open(-1)while not (vd.isOpened()): passp_ens160 = Ens160(0x52)p_ens160.set_pwr_mode(p_ens160.ENS160_STANDARD_MODE)p_ens160.set_temp_hum(27, 67)tds1 = TDS(Pin((Pin.P22)))ds1 = DS18B20(Pin((Pin.P24)))siot.getsubscribe(topic="siot/天气情况")siot.getsubscribe(topic="siot/实时温度")siot.getsubscribe(topic="siot/最高温度")siot.getsubscribe(topic="siot/最低温度")siot.getsubscribe(topic="siot/湿度")siot.getsubscribe(topic="siot/风向")siot.getsubscribe(topic="siot/风力")siot.getsubscribe(topic="siot/风速")siot.getsubscribe(topic="siot/空气质量")siot.getsubscribe(topic="siot/气压")siot.getsubscribe(topic="siot/摄像头")siot.getsubscribe(topic="siot/SHT31温度")siot.getsubscribe(topic="siot/SHT31湿度")siot.getsubscribe(topic="siot/ENS160二氧化碳")siot.getsubscribe(topic="siot/氧气传感")siot.getsubscribe(topic="siot/ENS160TVOC")siot.getsubscribe(topic="siot/ENS160空气质量")siot.getsubscribe(topic="siot/水温传感")siot.getsubscribe(topic="siot/TDS传感")siot.getsubscribe(topic="siot/土壤湿度")siot.getsubscribe(topic="siot/分贝传感")siot.getsubscribe(topic="siot/环境光")siot.getsubscribe(topic="siot/学校公告栏")siot.getsubscribe(topic="siot/值班教干")siot.getsubscribe(topic="siot/联系电话")siot.getsubscribe(topic="siot/日期")siot.getsubscribe(topic="siot/星期")siot.getsubscribe(topic="siot/时间")siot.getsubscribe(topic="siot/传感器")siot.getsubscribe(topic="siot/检修时间")url = (str("https://www.yiketianqi.com/free/day?appid=29988737&appsecret=Jipy6ZPN&unescape=1&city=") + str("兰山"))response = requests.get(url)data = response.json() while True: ShuiWen = ds1.temp_c() TDS = tds1.get_value() SHT31WenDu = SCI1.get_value1(SCI1.eALL,"Temp_Air") SHT31ShiDu = SCI1.get_value1(SCI1.eALL,"Humi_Air") YangQi = SCI1.get_value1(SCI1.eALL,"O2") ENS160CO2 = p_ens160.get_eco2() ENS160TVOC = p_ens160.get_tvoc() ENS160KongQiZhiLiang = p_ens160.get_aqi() TuRangShiDu = p_p21_analog.read_analog() FenBei = SCI1.get_value1(SCI1.eALL,"Sound") HuanJingGuang = SCI1.get_value1(SCI1.eALL,"Light") siot.publish(topic="siot/天气情况", data=(str("天气情况: ") + str((data["wea"])))) siot.publish(topic="siot/实时温度", data=(str((str("实时温度: ") + str((data["tem"])))) + str("°C"))) siot.publish(topic="siot/最高温度", data=(str("最高温度: ") + str((str((data["tem_day"])) + str("°C"))))) siot.publish(topic="siot/最低温度", data=(str("最低温度: ") + str((str((data["tem_night"])) + str("°C"))))) siot.publish(topic="siot/湿度", data=(str("空气湿度: ") + str((data["humidity"])))) siot.publish(topic="siot/风向", data=(str("风向: ") + str((data["win"])))) siot.publish(topic="siot/风力", data=(str("风力: ") + str((data["win_speed"])))) siot.publish(topic="siot/风速", data=(str("风速: ") + str((data["win_meter"])))) siot.publish(topic="siot/空气质量", data=(str("空气质量: ") + str((data["air"])))) siot.publish(topic="siot/气压", data=(str("气压: ") + str((data["pressure"])))) siot.publish(topic="siot/日期", data=(data["date"])) siot.publish(topic="siot/星期", data=(data["week"])) siot.publish(topic="siot/时间", data=(data["update_time"])) siot.publish_save(topic="siot/SHT31温度", data=SHT31WenDu) siot.publish_save(topic="siot/SHT31湿度", data=SHT31ShiDu) siot.publish_save(topic="siot/氧气传感", data=YangQi) siot.publish_save(topic="siot/ENS160二氧化碳", data=ENS160CO2) siot.publish_save(topic="siot/ENS160TVOC", data=ENS160TVOC) siot.publish_save(topic="siot/ENS160空气质量", data=ENS160KongQiZhiLiang) siot.publish_save(topic="siot/水温传感", data=ShuiWen) siot.publish_save(topic="siot/TDS传感", data=TDS) siot.publish_save(topic="siot/土壤湿度", data=TuRangShiDu) siot.publish_save(topic="siot/分贝传感", data=FenBei) siot.publish_save(topic="siot/环境光", data=HuanJingGuang) ret, grab = vd.read() siot.publish(topic="siot/摄像头", data=base642base64(grab)) siot.publish_save(topic="siot/值班教干", data=(str("值班人员:") + str("王二麻子"))) siot.publish_save(topic="siot/联系电话", data=(str("联系电话:") + str("13900000000"))) siot.publish_save(topic="siot/学校公告栏", data="今天下午5点全体员工到会议室集合开会") siot.publish_save(topic="siot/检修时间", data="2023年6月29日") siot.publish_save(topic="siot/传感器", data="水温传感器安装在水箱中,用于实时监测水温,并控制加热和降温设备,以保证水温在植物生长所需的范围内。TDS传感器可以检测水中的溶解物质含量,从而判断水的质量是否符合植物的要求,如果水质不佳及时发出警报并进行处理。空气温湿度传感器可以检测空气中的温湿度,从而精确控制环境温湿度,并自动开启或者关闭空气加湿设备;氧气传感器可以检测室内氧气含量,避免植物缺氧或者二氧化碳过高的情况;空气质量传感器可以检测室内空气的质量,并自动开启或者关闭空气净化器;土壤湿度传感器可以实时监测植物生长介质的湿度,根据植物所需的水份量,自动调节灌溉设备;分贝传感器可以检测室内噪音水品,保证植物能够在安静的环境中生长;环境光传感器可以检测室内光照强度,自动调节灯光设备,保证植物得到足够的光照。")

相关知识

“探究智能花卉养护系统——物联网中的传感器”教学设计
#新物联网挑战二#+智能植物育苗养护数据采集系统
害虫远程实时监测系统如何应用物联网展开智能测报?
基于物联网的农业虫害智能监控系统
基于机智云物联网的智能花卉栽培系统
物联网智能害虫监测设备
智能物联网及水肥 一体化解决方案
物联网智能害虫监测设备/昆虫性诱智能电子测报系统设备软件
基于物联网的花卉养护远程监控系统设计
「物联网智能害虫监测设备」 价格、参数、图片

网址: #新物联网挑战二#+智能植物育苗养护数据采集系统 https://m.huajiangbk.com/newsview242868.html

所属分类:花卉
上一篇: 两人日播50万株种苗,“智慧育苗
下一篇: 全国首个智慧牧草厂在三师图木舒克