qt4.8 利用串口实现智能大棚系统
最近参加了一个比赛,拿实验室中的zigbee传感器模块来实现的一个智能大棚系统:这次比赛感觉自己在硬件方面的知识还是欠缺很多,现在zigbee的更新换代很快,然而我还停留在最近出的传感器模块,在实现代码方面做的还可以,但是硬件方面跟他人差距很大。
https://download.csdn.net/download/qq_36819130/10739556 下载地址
环境是ubuntu下 qt4.8 最好是root用户下,因为串口的调用需要权限。
基本功能实现:
温湿度的显示,电机模块的控制,调光装置的控制,socket服务器通信,红外检测,烟雾检测,动态增加节点。
实现界面
串口通信
bool SerialService::openCom() // 打开串口
{if(my_com){closeCom();}else{QString com_name = "/dev/ttyS0"; // 这个是根据自己的串口来的我是在ubuntu下写的my_com = new Posix_QextSerialPort(com_name, QextSerialBase::Polling);}my_com->open(QIODevice::ReadWrite);if(my_com->isOpen()){com_state = 1;my_com->setBaudRate(BAUD115200);my_com->setDataBits(DATA_8);my_com->setParity(PAR_NONE);my_com->setStopBits(STOP_1);my_com->setFlowControl(FLOW_OFF);my_com->setTimeout(50);return true;}else{com_state = 0;return false;}
}
void SerialService::readFromSerial() //从串口接收信息
{if(my_com && 1 == com_state){QByteArray byte = my_com->readAll();if(!byte.isEmpty())emit receiveMsgFromSerial(byte);}
}int SerialService::writeToSerial(const QByteArray &byte)//从串口发送信息
{if(my_com && 1 == com_state){return my_com->write(byte);}return -1;
}
sockt通信
socket = new QTcpSocket(this);socket->connectToHost(QHostAddress("192.168.1.104"), 8888);thread=new mythread(socket);
// 创建socket 要创建一个新的线程,其中通过槽函数来实现消息的发送和接收ui->msgInfo->append(mesg);if(UPLoad == OPEN){QString str = mesg + "\r\n";socket->write(str.toAscii());socket->flush();}
//发送信息
mythread::mythread(QTcpSocket *sock)
{socket=sock;connect(socket,SIGNAL(readyRead()),this,SLOT(readMsg()));
}void mythread::run()
{qDebug()<<socket->isOpen()<<endl;
}void mythread::readMsg()
{QByteArray qdb=socket->readAll();QString msg = QString(qdb);qDebug()<<msg<<" is the sent msg!"<<endl;emit sendMsg(msg);
}
//接收信息,并调用槽函数来调用相应的函数
串口信息的接收
//一部分的代码的展示,具体的代码可以下载来看
void MainWindow::handleMSG(QByteArray msg)
{if(msg.length() < 6)return ;//温度传感器if(0x02 == msg[3] && 0x01 == msg[4]){QString str = "";if(0x01 == msg[2]) //1号传感器{timer3->start(timeBlock);tempA->ValueOf(msg);templist.replace(0,tempA);if(kas++ >= 10){kas = 0;//emit goMsg("Update temphumlight A value!");}}
}
对于串口接收的数据,有一些需要做一些特殊的处理,例如温湿度模块发送的信息,我们需要经过计算才可以得到信息
void Temp_Humi_Ligh::ValueOf(QByteArray &msg)
{unsigned char XH = msg[5], XL = msg[6];unsigned char YH = msg[7], YL = msg[8];unsigned char GH = msg[9], GL = msg[10];temperature = XH*256 + XL;humidity = YH*256 + YL;light = 1.0*(GH*256 + GL)*3012.9/(32768*4);
}
对于qt的背景图的添加我会在另外的一个博客中写到
qt4.8 利用串口实现智能大棚系统相关推荐
- 智能大棚系统有哪些优势在
传统温室大棚会被替代,是因为其存在管理繁琐.耗费人力大等问题,尤其是收益上, 操心不小,收入不高,智能大棚系统的研发就是为了了解决传统大棚的各种问题,在管理的科学性更胜一筹. 智能大棚系统具备自动调控 ...
- 利用正高Dolphin智能广告监测系统做好违法广告监测
随着社会经济文化事业的快速发展,广告媒体日益丰富,广告样式花样繁多.新型广告层出不穷,广告监管工作量大面广.难度加大,仅靠工商食药监部门人力监测难以面面俱到.实现有效监管. <新广告法>对 ...
- 利用Python开发智能阅卷系统, 太有趣了!
随着现代图像处理和人工智能技术的快速发展,不少学者尝试讲CV应用到教学领域,能够代替老师去阅卷,将老师从繁杂劳累的阅卷中解放出来,从而进一步有效的推动教学质量上一个台阶. 传统的人工阅卷,工作繁琐,效 ...
- 利用Python开发智能阅卷系统
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 机器学习与统计学 PS:如有需要Python学习资料的小伙伴可以加 ...
- 利用Python开发智能阅卷系统(附源代码)
点击"程序IT圈","置顶"公众号 重磅干货,第一时间送达 随着现代图像处理和人工智能技术的快速发展,不少学者尝试讲CV应用到教学领域,能够代替老师去阅卷,将老 ...
- python编写阅卷软件_利用Python开发智能阅卷系统
1 importnumpy as np2 importargparse3 importimutils4 importcv25 #设置参数 6 ap =argparse.ArgumentParser() ...
- 基于Python+Vue+Mysql实现(物联网)智能大棚【100010340】
SmartGreenhouse 智能大棚(物联网大课设) 技术选型 功能端 技术描述 安卓 flutter, dart 前端 vue, typescript, element-ui, vuex 后端 ...
- 中国人工智能学会通讯——机器人组件技术在智能制造系统中的应用
摘要:随着工业4.0时代的到来,如何将传统工厂改造成为个性化.网络化.柔性生产的智能制造系统成为了当前的研究热点.本文从智能制造系统和智能机器人系统的相似性出发,构建了基于机器人组件技术的智能制造系统 ...
- 智能大棚计算机系统,一套智能大棚需要哪些设备?我来告诉你!
原标题:一套智能大棚需要哪些设备?我来告诉你! 安装一套智能大棚需要哪些设备呢?很多做大棚种植的对于智能大棚都不陌生,智能大棚主要用于帮助大棚种植者管理大棚种植,那么到底什么是智能大棚?如果要安装一套 ...
最新文章
- Android 自定义控件 ViewPager头部指示器控件 ViewPagerBelowIndicator
- OpenCV3 识别图中表格-JAVA 实现
- 在真实工作中的编程是怎么样的,与学校里有什么不同?
- 进程共享(读时共享写时复制)
- 链表简单实现(增删查改)
- 信息学奥赛C++语言:蒙氏数学难题
- safari only css hack,css hack将Safari和Chrome同时作为目标单独使用
- python安装xlrd和xlwt及应用
- c语言多线程详,如何用C语言实现多线程
- Prism 的 TabControl 导航
- 中恒电气成小鹏汽车充电桩供应商 今日涨停
- warframe怒焚者结合目标_【虚荣盒子】设计目标和功能规划
- VS2012下基于Glut OpenGL glEdgeFlag示例程序:
- Cannot start process,the working directory 'F:\hello\hello'does not exit 问题解决
- EXCEL自定义功能区Ribbon
- 【三维激光扫描】第二章:国内外三维激光扫描设备简介
- 倒酒(拓展欧几里得)
- aws ec2 mysql 端口_亚马逊:AWS EC2 的 Linux 服务器 开放端口教程
- 字母c代表什么数字_字母C
- 互联网日报 | 4月14日 星期三 | 贾跃亭被终身禁入证券市场;天猫4月19日起降低开店门槛;小米正式迈入游戏手机细分赛道...