Ⅰ 水產養殖水質在線監控系統如何搭建需要用到那些技術有案列嗎
水產養殖水質在線監控詳細介紹:
水質良好程度對水產養殖具有十分重要的作用,為能夠及時掌握水質變化、提前做出應對措施,有效規避養殖風險、提高畝產量,對水質參數進行監測顯得非常有必要,而水質問題不僅僅存在於江河、湖泊,水質的監測還在水產養殖中起著非常重要作用,只有管好水,養殖的成功才有保障,保持良好的水質環境,水質檢測是至關重要的。水質在線監測系統最大限度地解決了水產養殖無法實時監測水質、水質參數變化預警困難等養殖難點。
水產養殖水質在線監控
(1)24小時不間斷監測養殖環境水質參數,支持多種感測器同時接入,包括溶氧感測器、PH感測器、溫度感測器、電導率感測器、ORP感測器、濁度感測器、等等;
(2)支持GPRS/3G/4G或有線傳輸數據,終端具有長期在線、即時通信,支持網頁、手機端實時監控
(3)支持60天歷史數據查詢,歷史數據變化曲線圖等功能;
(4)當監測到的不同環境參數達到上下閥值, 雲平台微信、簡訊、語音報警提示。通過PC、手機實現遠程手動控制、現場智能設備自動控制
(5)用戶可根據水中溶解氧測量值,精準控制餌料投放量,提高餌料的轉化率。
實時監控還是比較厲害的,後台拍攝記錄?不懂是個什麼意思,程序調用攝像頭拍照還是比較簡單的。
Ⅲ c++版自動售水機源代碼
#include "iostream"
#include "string"
using namespace std;
class MoneyCounter
{
private:
float input_money;
public:
void getmoney();
float money_from_buyer();
void return_money(float change);
void clear();
MoneyCounter();
~ MoneyCounter();
};
class GoodsInfo
{
private:
string name;
float price;
int total;
public:
GoodsInfo();
~GoodsInfo();
void set_goods(string n,float p,int t);
string goods_name();
float goods_price();
int goods_total();
void goods_disp();
};
class DrinkMachine
{
private:
MoneyCounter moneyctr;
GoodsInfo v_goods[5];
public:
DrinkMachine();
~DrinkMachine();
void showMenu();
void inputmoney();
bool goodsitem(int);
void return_allmoney();
};
MoneyCounter::MoneyCounter()
{
input_money=0.0f;
}
MoneyCounter::~MoneyCounter()
{
}
void MoneyCounter::getmoney()
{
float money;
cout<<"一組溫馨提示<*_*>->請投入錢幣"<<endl;
cin>>money;
input_money=input_money+money;
cout<<"你投入的金額是 一組溫馨提示<*_*>:"<<input_money<<endl;
}
float MoneyCounter::money_from_buyer()
{
return input_money;
}
void MoneyCounter::clear()
{
input_money=0.0f;
}
void MoneyCounter::return_money(float change)
{
cout<<"一組溫馨提示<*_*>\n找零"<<change<<"元"<<endl;
}
GoodsInfo::GoodsInfo()
{
name="";
price=0.0f;
total=0;
}
GoodsInfo::~GoodsInfo()
{
}
void GoodsInfo::set_goods(string n,float p,int t)
{
name=n;
price=p;
total=t;
}
string GoodsInfo::goods_name()
{
return name;
}
float GoodsInfo::goods_price()
{
return price;
}
int GoodsInfo::goods_total()
{
return total;
}
void GoodsInfo::goods_disp()
{
cout<<"產品名稱"<<name<<"產品單價"<<price<<"庫存量"<<total<<endl;
}
DrinkMachine::DrinkMachine()
{
v_goods[0].set_goods("美年達",3,20);
v_goods[1].set_goods("苦咖啡",5,10);
v_goods[2].set_goods("娃哈哈純凈水",1.5,20);
v_goods[3].set_goods("悠樂美",2.5,30);
v_goods[4].set_goods("百事可樂",2.5,0);
}
DrinkMachine::~DrinkMachine()
{
}
void DrinkMachine::showMenu()//顯示操作界面
{
cout<<"一組溫馨提示<*_*>->您投入的金額是"<<moneyctr.money_from_buyer()<<"元"<<endl;
cout<<"一組溫馨提示<*_*>->請選擇商品代碼:"<<endl;
for(int i=0;i<5;i++)
{
cout<<i<<" "<<v_goods[i].goods_name()<<" "<<v_goods[i].goods_price()<<"元"<<endl;
}
cout<<"5 退款並且退出"<<endl;
}
void DrinkMachine::inputmoney()
{
cout<<"一組溫馨提示<*_*>->本機只接受 十元、 五元、二元、一元、零點五元的硬幣或紙幣"<<endl;
moneyctr.getmoney();
}
bool DrinkMachine::goodsitem(int select)
{
int number=v_goods[select].goods_total();
if(number>0)
{
if(moneyctr.money_from_buyer()>=v_goods[select].goods_price())//如果錢夠
{
float change=moneyctr.money_from_buyer()-v_goods[select].goods_price();
cout<<"你選擇的是"<<v_goods[select].goods_name()<<"請取物"<<endl;
if(change>0)
{
moneyctr.return_money( change);
}
return true;
}
else
{
cout<<"一組溫馨提示<*_*>->你的金額不足"<<endl;
}
}
else
{
cout<<"一組溫馨提示<*_*>->飲料已售完"<<endl;
}
return false;
}
void DrinkMachine::return_allmoney()
{
cout<<"退款"<<moneyctr.money_from_buyer()<<"元"<<endl;
}
void main()
{
DrinkMachine dri;
string buf;
bool go_on(true),cash_on(true),got_it(true);
cout<<"**************歡迎使用一組自動飲料售貨機本自動售貨機**************"<<endl;
while(go_on)
{
while(cash_on)
{
dri.inputmoney ();
cout<<"一組溫馨提示<*_*>->繼續投幣嗎?(yes or no))";
cin>>buf;
if(buf=="n"||buf=="no")
{
cash_on=false;
}
}
dri.showMenu();
cin>>buf;
int select=atoi(buf.c_str ());
if(select==5)
{
dri.return_allmoney ();
go_on=false;
}
else
{
got_it=dri.goodsitem(select);
if(got_it)
{
go_on=false;
}
else
{
cout<<"一組溫馨提示<*_*>->需要其他飲料嗎?(yes or no)";
cin>>buf;
if(buf=="y"||buf=="yes")
{
cash_on=true;
}
else
{
dri.return_allmoney ();
go_on=false;
}
}
}
cout<<"謝謝使用"<<endl;
}
}