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

基于行空板K10的智能种植物联网平台 简单

头像 喜欢钻研的刘老师 2025.01.14 31 0

项目来源:



 

为满足新课标中六年级“过程与控制”内容要求,结合教学中农业生产场景中的智能种植大棚项目,设计了《基于行空板K10的智能种植物联网平台》。



 

基于行空板K10的智能种植物联网平台图4基于行空板K10的智能种植物联网平台图1基于行空板K10的智能种植物联网平台图2基于行空板K10的智能种植物联网平台图3



 

项目简介:


 

在《基于行空板K10的智能种植物联网平台》项目中,学生将利用行空板K10来模拟监测智能大棚里面的温度、湿度、光照、灯光状态、通风装置状态。

通过行空板自带的温湿度传感器和光照传感器检测种植大棚里的温湿度和光照,并把数据发送到物联网平台,搭建可视化物联网平台,使其他设备可以在线查看大棚情况。管理人员可以根据实时监测的数据,通过物联网控制大棚灯光和通风设备的开与关。行空板上也实时显示温湿度、灯光、通风设备开关状态。
灯光及通风设备的开与关可以通过可视化物联网平台进行控制,灯光还可以通过行空板上的A B键控制。

基于行空板K10的智能种植物联网平台图5     基于行空板K10的智能种植物联网平台图6
项目原理:

1.行空板K10自带传感器监测温湿度及光照,并通过物联网传送到可视化平台。2.灯光及通风装置开关可以通过物联网平台进行控制,灯光的控制也可以通过星空般控制。
基于行空板K10的智能种植物联网平台图9

硬件简介:
行空板K10是一款专为信息科技课程中的编程学习、物联网及AI项目教学需求而开发的学习板。它集摄像头、LCD彩屏、麦克风、扬声器、WiFi蓝牙模块、RGB指示灯及多种传感器和扩展接口于一体,无需额外设备即可实现传感器控制、物联网应用、图像检测、语音识别、语音合成等AI项目。

基于行空板K10的智能种植物联网平台图7基于行空板K10的智能种植物联网平台图8

程序如下:

基于行空板K10的智能种植物联网平台图10基于行空板K10的智能种植物联网平台图11基于行空板K10的智能种植物联网平台图12基于行空板K10的智能种植物联网平台图13基于行空板K10的智能种植物联网平台图14

 

 

代码
/*!
* MindPlus
* esp32s3bit
*
*/
#include <DFRobot_Iot.h>
#include "unihiker_k10.h"
#include "Arduino_image_cache.h"

// 动态变量
String         mind_s_DengGuangZhuangTai, mind_s_TongFengZhuangTai;
volatile float mind_n_WenDu, mind_n_ShiDu, mind_n_GuangZhaoQiangDu;
// 函数声明
void obloqMqttEventT3159k(String& message);
void obloqMqttEventTy2lse(String& message);
void obloqMqttEventTmjhbj(String& message);
void onButtonAPressed();
void obloqMqttEventTm8dmk(String& message);
void onButtonBPressed();
// 静态常量
const String topics[5] = {"siot/温度","siot/光照","siot/LED","siot/湿度","siot/通风设备"};
const MsgHandleCb msgHandles[5] = {obloqMqttEventTm8dmk,NULL,obloqMqttEventT3159k,obloqMqttEventTmjhbj,obloqMqttEventTy2lse};
// 创建对象
DFRobot_Iot  myIot;
UNIHIKER_K10 k10;
uint8_t      screen_dir=2;
AHT20        aht20;


// 主程序开始
void setup() {
        k10.begin();
        myIot.setMqttCallback(msgHandles);
        pinMode(P0, OUTPUT);
        k10.initScreen(screen_dir);
        k10.creatCanvas();
        k10.buttonA->setPressedCallback(onButtonAPressed);
        k10.buttonB->setPressedCallback(onButtonBPressed);
        myIot.wifiConnect("CMCC", "87654321");
        myIot.init("192.168.0.104","siot","5413935061589561","dfrobot", topics, 1883);
        myIot.connect();
        k10.canvas->canvasText("智能种植物联网平台", 1, 0x0000FF);
        k10.canvas->canvasDrawBitmap(10,40,60,60,image_data1);
        k10.canvas->canvasDrawBitmap(10,130,60,60,image_data2);
        k10.canvas->updateCanvas();
}
void loop() {
        mind_n_WenDu = ((round((aht20.getData(AHT20::eAHT20TempC) * 10))) / 10);
        mind_n_ShiDu = ((round((aht20.getData(AHT20::eAHT20HumiRH) * 10))) / 10);
        mind_n_GuangZhaoQiangDu = k10.readALS();
        myIot.publish(topic_0, mind_n_WenDu, 1);
        myIot.publish(topic_1, mind_n_GuangZhaoQiangDu, 1);
        myIot.publish(topic_3, mind_n_ShiDu, 1);
        k10.canvas->canvasText((String("灯光状态:") + String(mind_s_DengGuangZhuangTai)), 11, 0x0000FF);
        k10.canvas->canvasText((String("通风装置状态:") + String(mind_s_TongFengZhuangTai)), 12, 0x0000FF);
        k10.canvas->updateCanvas();
}


// 事件回调函数
void obloqMqttEventT3159k(String& message) {
        if ((message==String("on"))) {
                k10.rgb->write(-1, 0xFF0000);
                mind_s_DengGuangZhuangTai = "开";
        }
        if ((message==String("off"))) {
                k10.rgb->write(-1, 0x000000);
                mind_s_DengGuangZhuangTai = "关";
        }
}
void obloqMqttEventTy2lse(String& message) {
        if ((message==String("on"))) {
                digitalWrite(P0, HIGH);
                mind_s_TongFengZhuangTai = "开";
        }
        if ((message==String("off"))) {
                digitalWrite(P0, LOW);
                mind_s_TongFengZhuangTai = "关";
        }
}
void obloqMqttEventTmjhbj(String& message) {
        k10.canvas->canvasText((String(message) + String("%RH")), 9, 0xFF0000);
        k10.canvas->updateCanvas();
}
void onButtonAPressed() {
        k10.rgb->write(-1, 0xFF0000);
        mind_s_DengGuangZhuangTai = "开";
}
void obloqMqttEventTm8dmk(String& message) {
        k10.canvas->canvasText((String(message) + String("℃")), 5, 0xFF0000);
        k10.canvas->updateCanvas();
}
void onButtonBPressed() {
        k10.rgb->write(-1, 0x000000);
        mind_s_DengGuangZhuangTai = "关";
}

评论

user-avatar