回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页
best-icon

#新物联网挑战二#基于SIOT平台的五湖湿地公园环境检测系统 简单

头像 rzegkly 2023.06.22 334 8

webwxgetmsgimg (1)_副本.jpg

一、项目介绍

 

湿地,是自然界三大生态系统之一,滋养了丰富的动植物王国,被称为“地球之肾”。

 

五湖湿地公园位于汝州市新城区,

 

主要由云禅湖、丹阳湖、望嵩湖、天青湖、鹤鱼湖

 

五个人工湖组成,总面积283万平方米。

 

湿地公园具有维护生物多样性、固碳减排、缓解和预防自然灾害等方面作用显著。

 

近年来,全球生态环境面临者严峻的挑战,受农业活动、气候变化等影响,

 

全球湿地缩减和退化,我们通过SIOT物联网平台采集湿地环境相关参数,

 

对五湖湿地公园环境进行探究,提高我们对湿地环境保护的意识,实现低碳环保的生活方式。

微信图片_20230628093750_副本.jpg

二、项目介绍实现功能

 

1.湿地水质TDS的采集

2.检测湿地公园氧气含量

3.检测土壤湿度对植物的影响

4.检测湿地的空气质量检测

5.检测湿地公园中空气的湿度和温度

6,防水温度传感器对鱼类的影响

结构图.jpg

材料清单

  • Gravity SCI 采集模块 X1 链接
  • 行空板 X1 链接
  • 模拟TDS传感器 X1 链接
  • 土壤湿度传感器 X1 链接
  • 防水温度传感器 X1 链接
  • 数字温湿度传感器 X1 链接
  • micro:bit掌控I/O扩展板 X1 链接
  • 氧气传感器 X1 链接
  • 空气质量传感器 X1 链接

image.png三、制作的过程

 

 

升级行空板SIoTV2,

 

1.升级行空板siotv2参照我的帖子,

2.测试SIOTV2。账号:siot , 密码:dfrobot

siot.jpg

3.进入siot界面,新建气象相关主题

siot.jpg

4.行空板网络设置,保证行空板WiFi与电脑WiFi在同一个网段,在实时显示土壤湿度数据。

siot1.jpg

 

在行空板中,记录下WiFi状态下IP地址:192.168.240.59, 为编程做准备。

步骤1 打开mind+1.8.0,窗口右上角,选择python模式,点击左下角“扩展”,在官方库中找到“行空板”、"MQTT-PY"

 

image.png

步骤2 右下角点击左下角“扩展”,在pingpong库中添加pingpong、DS18、TDS、ENS160

image.png

步骤3 在Mind+右下角点击左下角“扩展”,在用户库中添加 SCI

image.png

步骤4 程序编写

1.程序初始化

image.png
image.png

2.将湿度相关参数发送MQTT服务器中

image.png

步骤5 打开可视化面板

1.打开Mind+1.8.0,在顶部菜单栏点击进入可视化面板,进入弹出新窗口

image.png

2.点击新建项目,选择新建空白项目,输入项目名称描述后点击确认即可新建一个项目,点击编辑即可进入面板编辑页面。

image.png

3.进入页面后会弹出提示选择数据源,连接行空板上的SIoT V2,则ip可以填写行空板的ip。其他设置保持默认,确认后会提示连接成功。

image.png

4.添加相关数据组件,绑定相关气象主题Topic

image.png

5.基于SIOT平台的五湖公园生态环境检测系统

可视化面板最终.jpg

6.湿地相关参数进行分析

1副本.jpg
2副本.jpg
3副本.jpg

 

四、作品演示

五、结论:

通过siot平台湿地数据的分析:

 

1.湿地的含氧量高,空气湿润,适合人们有氧运动的场所;

 

2.公园土壤含水量丰富,可以在暴雨和河流涨水期储存过量的降水,均匀地把径流放出,减弱危害下游的洪水,保持小气候:

 

3.湿地公园净化水质,沉淀积累在湿地泥层中,五胡公园中水质良好,成为浅水水井的水源,有益于人们的生活和生产。

 

 

 

六、资源

代码
from pinpong.libs.dfrobot_ens160 import Ens160
from pinpong.libs.dfrobot_tds import TDS
from pinpong.extension.unihiker import *
from pinpong.board import Board,Pin
from pinpong.board import DS18B20
from dfrobot_rp2040_sci import *
from pinpong.board import Board
from pinpong.board import Pin
from unihiker import GUI
import time
import siot

Board().begin()
siot.init(client_id="5001342785722251",server="192.168.240.59",port=1883,user="siot",password="dfrobot")
u_gui=GUI()
siot.connect()
siot.loop()
siot.getsubscribe(topic="siot/TDS")
siot.getsubscribe(topic="siot/Temp")
siot.getsubscribe(topic="siot/Humi")
siot.getsubscribe(topic="siot/O2")
siot.getsubscribe(topic="siot/ECO2")
siot.getsubscribe(topic="siot/AQI")
siot.getsubscribe(topic="siot/MOI")
siot.getsubscribe(topic="siot/DS")
siot.publish_save(topic="siot/TDS", data="hello")
siot.publish_save(topic="siot/Temp", data="hello")
siot.publish_save(topic="siot/Humi", data="hello")
siot.publish_save(topic="siot/O2", data="hello")
siot.publish_save(topic="siot/ECO2", data="hello")
siot.publish_save(topic="siot/AQI", data="hello")
siot.publish_save(topic="siot/MOI", data="hello")
siot.publish_save(topic="siot/DS", data="hello")
u_gui.draw_text(text="  五湖生态环境检测系统",x=0,y=0,font_size=16, color="#000000")
空气氧气=u_gui.draw_text(text="氧气",x=0,y=40,font_size=20, color="#0000FF")
o2=u_gui.draw_text(text=" ",x=100,y=40,font_size=20, color="#0000FF")
tem=u_gui.draw_text(text="温度",x=0,y=80,font_size=20, color="#0000FF")
空气温度=u_gui.draw_text(text=" ",x=100,y=80,font_size=20, color="#0000FF")
hum=u_gui.draw_text(text="湿度",x=0,y=120,font_size=20, color="#0000FF")
空气相对湿度=u_gui.draw_text(text=" ",x=100,y=120,font_size=20, color="#0000FF")
tds=u_gui.draw_text(text="水质",x=0,y=160,font_size=20, color="#0000FF")
TDS2=u_gui.draw_text(text=" ",x=100,y=160,font_size=20, color="#0000FF")
AQI=u_gui.draw_text(text="AQI",x=0,y=200,font_size=20, color="#0000FF")
空气质量=u_gui.draw_text(text=" ",x=100,y=200,font_size=20, color="#0000FF")
ECO2=u_gui.draw_text(text="ECO2",x=0,y=240,font_size=20, color="#0000FF")
二氧化碳=u_gui.draw_text(text=" ",x=100,y=240,font_size=20, color="#0000FF")
ds=u_gui.draw_text(text="水温度",x=0,y=280,font_size=20, color="#0000FF")
ds=u_gui.draw_text(text=" ",x=100,y=280,font_size=20, color="#0000FF")
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.")
ds1 = DS18B20(Pin((Pin.P0)))
tds1 = TDS(Pin((Pin.P2)))
p_ens160 = Ens160(0x52)
p_ens160.set_pwr_mode(p_ens160.ENS160_STANDARD_MODE)

while True:
    time.sleep(1)
    TDS2.config(text=tds1.get_value())
    空气温度.config(text=(str(SCI1.get_value1(SCI1.eALL,"Temp_Air")) + str(SCI1.get_unit1(SCI1.eALL,"Temp_Air"))))
    空气相对湿度.config(text=(str(SCI1.get_value1(SCI1.eALL,"Humi_Air")) + str(SCI1.get_unit1(SCI1.eALL,"Humi_Air"))))
    o2.config(text=(str(SCI1.get_value1(SCI1.eALL,"O2")) + str(SCI1.get_unit1(SCI1.eALL,"O2"))))
    空气质量.config(text=p_ens160.get_aqi())
    二氧化碳.config(text=p_ens160.get_eco2())
    ds.config(text=ds1.temp_c())
    siot.publish_save(topic="siot/O2", data=SCI1.get_value1(SCI1.eALL,"O2"))
    time.sleep(1)
    siot.publish_save(topic="siot/Temp", data=(str((str((str(ds1.temp_c()))) + str(","))) + str(SCI1.get_value1(SCI1.eALL,"Temp_Air"))))
    time.sleep(1)
    siot.publish_save(topic="siot/Humi", data=SCI1.get_value1(SCI1.eALL,"Humi_Air"))
    time.sleep(1)
    siot.publish_save(topic="siot/AQI", data=p_ens160.get_aqi())
    time.sleep(1)
    siot.publish_save(topic="siot/ECO2", data=p_ens160.get_eco2())
    time.sleep(1)
    siot.publish_save(topic="siot/TDS", data=tds1.get_value())
    time.sleep(1)
    siot.publish_save(topic="siot/MOI", data=SCI1.get_value1(SCI1.eALL,"Moisture"))
    time.sleep(1)


评论

user-avatar
  • 花生编程

    花生编程2023.08.17

    赞赞赞

    0
    • 花生编程

      花生编程2023.08.17

      厉害

      0
      • 三春牛-创客

        三春牛-创客2023.08.14

        赞赞赞

        0
        • 三春牛-创客

          三春牛-创客2023.08.14

          厉害

          0
          • hacker_

            hacker_2023.07.26

            666

            0
            • hacker_

              hacker_2023.07.16

              666

              0
              • 腿毛利小五郎

                腿毛利小五郎2023.07.03

                666

                1
                • rzegkly

                  rzegkly2023.07.13

                  相互学习