標題: 基于arduino+ESP8266 wifi的智能魚缸源碼 [打印本頁]
作者: tough-bai 時間: 2020-9-26 15:35
標題: 基于arduino+ESP8266 wifi的智能魚缸源碼
此智能魚殖生態系統能夠實時對養殖環境進行光照強度監測、PH值監測、水濁度監測、水溫監測、水位監測、入侵監測,并當檢測到采集的參數值發送至手機APP,同時可以利用手機APP實現對魚殖環境改變等功能的遠程操控,從而實現了魚養殖的智能化、信息化管理。
1、APP無需重復輸入賬號密碼,打開就能看到數據,節省用戶時間,操作方便。
2、環境傳感器采集到的數據能夠利用無線通信技術將數據實時傳送至APP并顯示。
3、當環境因素出現異常或外來人員與動物入侵時給予預警。
4、遠程控制技術能將水泵、LED燈、加熱管、喂食裝置進行遠程的控制。
程序源碼:
- #include <SoftwareSerial.h>
- #include <OneWire.h>
- #include <DallasTemperature.h>
- // 數據輸出腳接開發板數字引腳22
- #define ONE_WIRE_BUS 21
- #include <MsTimer2.h>
- #include <Servo.h>
- Servo myservo;
- char c = "";
- int pos =22;
- int i;
- #define DEBUG true
- /*#define DebugSerial Serial //定義程序調試接在串口0*/
- #define esp8266Serail Serial3 //定義ESP8266接在串口3
- #define ONE_WIRE_BUS 45//溫度
- #define PIN_A A5 //光
- #define PIN_D 18 //光
- int incomedate = 0; //水泵數據
- #define Sensor_pin 24 //人體紅外檢測
- #define ledpin 11 //人體紅外檢測
- #define relayPin 6 //水泵繼電器連接引腳
- #define relayPin1 7 //水泵繼電器連接引腳
- #define relayPin2 23 //加熱繼電器連接引腳
- #define relayPin3 29 //guang繼電器連接引腳
- #define Guang A8 //PH
- #define Turbidity_Sensor A1 //水濁度傳感器模擬量接口A1
- float ADpin = 0;
- double depth1,data;
- OneWire oneWire(ONE_WIRE_BUS);
- DallasTemperature sensors(&oneWire);
- char sensor_id2[] = "val"; //添加光照數據流
- char sensor_id3[] = "Turbidity";
- int Turbidity; //定義水濁度變量
- #define DebugSerial Serial //定義程序調試接在串口0
- const int INTERVAL = 3000; // 0.5 秒 = 500ms
- void ff( ) {
- if (esp8266Serail.available()) {
- Serial.write(esp8266Serail.read());
- }
- if (Serial.available()) {
- esp8266Serail.write(Serial.read());
- }
- int val;
- val = analogRead(PIN_A);
- sensors.requestTemperatures(); // 發送命令獲取溫度
- String x="AT+CIPSEND=0,21\r\n";
- sendCommand(x,0,false); // reset module
- sendCommand(String(sensors.getTempCByIndex(0)),0,false); // reset module
- sendCommand(String(val),0,false); // reset module
- Turbidity = 1023 - analogRead(Turbidity_Sensor); //水濁度傳感器
- sendCommand(String(Turbidity),0,false); // reset module
- ADpin = analogRead(Guang); //ph
- sendCommand(String(ADpin / 100),0,false); // reset module
- depth1 = (long)analogRead(0);
- data = (depth1 / 670) * 4;
- sendCommand(String(data),0,false); // reset module
- int hh = digitalRead(Sensor_pin); //定義參數存儲人體紅外傳感器讀到的狀態
- if (hh == 1) //如果檢測到有動物運動(在檢測范圍內),蜂鳴器發出警報
- {
- sendCommand("01",0,false); // reset module
- digitalWrite(ledpin, HIGH);
- }
- else
- {
- sendCommand("00",0,false); // reset module
- digitalWrite(ledpin, LOW);
- }
- }
-
- void setup()
- {
- Serial.begin(115200);
- esp8266Serail.begin(115200); // your esp's baud rate might be different
- sensors.begin();
- sendCommand("AT+CWMODE=2\r\n",2000,DEBUG); // reset module
- // delay(20000);
- String s="AT+CWSAP=\"智能魚殖生態系統\",\"12345678\",11,0\r\n";
- sendCommand(s,2000,DEBUG);// reset module
- Serial.println("1");
- //delay(30000);
- sendCommand("AT+RST\r\n",2000,DEBUG); // reset module
- delay(3000);
- sendCommand("AT+CIPMUX=1\r\n",1000,DEBUG); // configure for multiple connections
- //delay(20000);
- sendCommand("AT+CIPSERVER=1,6000\r\n",1000,DEBUG); // turn on server on port 80
- pinMode(6,OUTPUT); //水泵
- pinMode(relayPin, OUTPUT);
- pinMode(7,OUTPUT); //水泵
- pinMode(relayPin1, OUTPUT);
- pinMode(23,OUTPUT); //水泵
- pinMode(relayPin2, OUTPUT);
- pinMode(29,OUTPUT); //水泵
- pinMode(relayPin3, OUTPUT);
- pinMode(Sensor_pin, INPUT); //設置人體紅外接口為輸入狀態
- pinMode(relayPin, OUTPUT); //水泵
- digitalWrite(29,HIGH);
- digitalWrite(6,HIGH);
- digitalWrite(7,HIGH);
- // digitalWrite(23,LOW);
- myservo.attach(26);
- MsTimer2::set(INTERVAL,ff); // INTERVAL ms
- MsTimer2::start( );
- Serial.println("Server Ready");
- }
- void loop() {// run over and over
- if (esp8266Serail.available()) {
- Serial.write(esp8266Serail.read());
- }
- if (Serial.available()) {
- esp8266Serail.write(Serial.read());
- }
-
- incomedate = esp8266Serail.read();//獲取串口接收到的數據
- if (incomedate == 'L')
- {
- digitalWrite(6,HIGH);
- digitalWrite(7,HIGH);
- Serial.println(" CLOSE!");
- }
- else if (incomedate == 'H')
- {
- digitalWrite(6,LOW);
- digitalWrite(7,LOW);
- Serial.println("OPEN! ");
- }
- else if (incomedate == 'Q')
- {
- digitalWrite(23,HIGH);
- Serial.println("開! ");
- }
- else if (incomedate == 'W')
- {
- digitalWrite(23,LOW);
- Serial.println("關! ");
- }
- else if (incomedate == 'a')
- {
- digitalWrite(29, HIGH);
- Serial.println(" CLOSE!");
- }
- else if (incomedate == 'x')
- {
- digitalWrite(29, LOW);
- Serial.println("OPEN! ");
- }
- else if(incomedate=='r')
- {
- for(pos = 22; pos <= 250; pos += 1)
- {
- myservo.write(pos);
- delay(5);
- }
-
- for(pos = 250; pos>=22; pos-=1)
- {
- myservo.write(pos);
- delay(5);
- }
- for(pos = 22; pos <= 250; pos += 1)
- {
- myservo.write(pos);
- delay(5);
- }
-
- for(pos = 250; pos>=22; pos-=1)
- {
- myservo.write(pos);
- delay(5);
- }
- }
- }
- String sendCommand(String command, const int timeout, boolean debug)
- {
- String response = "";
- esp8266Serail.print(command); // send the read character to the esp8266
- long int time = millis();
- while( (time+timeout) > millis())
- {
- while(esp8266Serail.available())
- {
- // The esp has data so display its output to the serial window
- char c = esp8266Serail.read(); // read the next character.
- response+=c;
- }
- }
- if(debug)
- {
- Serial.print(response);
- }
- return response;
- }
復制代碼
作者: elmajp111 時間: 2021-2-21 09:48
請問用的是哪個開發板呢
作者: 旁觀者 時間: 2021-3-6 16:47
arduino——搜一下就有了
作者: 小小張。。 時間: 2021-3-7 21:35
用的什么語言,有沒有APP的源碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
国产区在线观看
|
中文字幕一区二区不卡
|
中文字幕一区二区三区日韩精品
|
av毛片在线播放
|
日本aa毛片a级毛片免费观看
|
亚洲网视频
|
97久久精品午夜一区二区
|
亚洲欧美视频
|
欧美日在线
|
欧美性一区二区三区
|
欧美成视频在线观看
|
亚洲在线免费观看
|
日本不卡视频在线播放
|
青青草精品视频
|
亚洲精品毛片av
|
久久成人精品
|
一区二区三区精品视频
|
国产一区二区三区精品久久久
|
久久久www成人免费无遮挡大片
|
91精品国产91久久久久游泳池
|
精品一区精品二区
|
精品福利一区二区三区
|
三级黄色片在线观看
|
日韩一区精品
|
精品免费国产
|
荷兰欧美一级毛片
|
日韩在线免费视频
|
av黄色在线播放
|
无吗视频
|
99精品欧美一区二区蜜桃免费
|
三级黄片毛片
|
中文字幕不卡一区
|
男女羞羞视频网站
|
久久99精品视频
|
最新国产精品
|
欧美一区二区三区在线观看视频
|
三级免费网
|
日日夜夜天天
|
亚洲免费在线视频
|
成人网址在线观看
|
国产一级视频在线
|