基于DFireBeetle ESP32-E渔业养殖水质监控系统
FireBeetle ESP32-E是一款基于ESP-WROOM-32E双核芯片的主控板,它专为IoT设计。
标签
嵌入式系统
Funpack活动
ESP32
物联网
颜七岁
更新2023-01-03
809
板卡介绍

简介|FireBeetle ESP32-E是一款基于ESP-WROOM-32E双核芯片的主控板,它专为IoT设计。
它支持WIFI和蓝牙双模通信并具有体积小巧、超低功耗、板载充电电路、接口易用等特性。可灵活的用于家庭物联网改装、工业物联网改装、可穿戴设备等等。
通过和IFTTT等物联网平台的连接,你可轻松制作出你独有的特色物联网智能家居系统。
FireBeetle ESP32-E深度支持ArduinoIDE编程,并且即将支持Scratch图形化编程及MicroPython编程。 我们提供了详细的在线教程和应用案例,以及上千种免焊接的Gravity接口传感器与执行器,可轻松上手制作,大幅度降低你的学习时间。邮票孔的设计,让它可以方便的嵌入你设计的PCB上,大大缩减你的原型开发成本以及原型测试时间。


任务要求

任务一:渔业养殖水质监控系统

用FireBeetle ESP32-E开发板作为控制单元,观察养殖水质参数(温度/浊度/tds/pH值/电位/溶解氧中两项指标以上)的变化,并能把数据上传到IoT网站上,可实时动态显示监测水质的变化情况。

建议搭配:防水温度计/浊度计/tds传感器/pH计/溶氧传感器等两个及以上传感器配合完成。


元器件

 

Turbidity sensor浊度传感器模块

简介|浊度传感器是利用光学原理,通过液体溶液中的透光率和散射率来综合判断浊度情况。传感器内部是一个红外线对管,当光线穿过一定量的水时,光线的透过量取决于该水的污浊程度,水越污浊,透过的光就越少。光接收端把透过的光强度转换为对应的电流大小,透过的光多,电流大,反之透过的光少,电流小,再通过电阻将流过的电流转换为电压信号。

void setup() {
  Serial.begin(9600); //Baud rate: 9600
}
void loop() {
  int sensorValue = analogRead(A0);// read the input on analog pin 0:
  float voltage = sensorValue * (5.0 / 1024.0); // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  Serial.println(voltage); // print out the value you read:
  delay(500);
}
 
  float getTur(){

    int sensorValue = analogRead(Turbiditysensor_pin);
    float voltage =sensorValue * (5.0 / 1024.0); 
    float Turbidity;
    int Grade_Turbidity = 0;

    if((voltage>=2.96)&&(voltage<=5.00)){
      Grade_Turbidity = 1;
      }
    if((voltage>=2.64)&&(voltage<=2.96)){
      Grade_Turbidity = 2;
      }
    if((voltage>=1.84)&&(voltage<=2.64)){
      Grade_Turbidity = 3;
      }
    if((voltage>=0)&&(voltage<=1.84)){
      Grade_Turbidity = 4;
      }
    //   Turbidity = -1120.4 * (voltage * voltage) + 5742.3 * voltage - 4352.9;
    //   }
    //return Turbidity;
    return Grade_Turbidity;
}
FucrUBnDeEIdEz7tuWfyuzrwo2Nv
模拟TDS传感器

简介|总溶解固体(英文:Total dissolved solids,缩写TDS),又称溶解性固体总量,测量单位为毫克/升(mg/L),它表明1升水中溶有多少毫克溶解性固体。TDS值越高,表示水中含有的溶解物越多。

TDS值的作用|在很多时候,在检查净水器品质的过程中,TDS值常来用来验证净水器净化的效果。TDS值是专门针对纯净水设置的指标,通俗来讲,TDS值越大,说明水中的杂质含量大,水的导电性也越好,其电导率值也越大;反之,杂质含量小,水的导电性也越小,其电导率值也越小。

#include <EEPROM.h>
#include "GravityTDS.h"

#define TdsSensorPin A1
GravityTDS gravityTds;

float temperature = 25,tdsValue = 0;

void setup()
{
    Serial.begin(115200);
    gravityTds.setPin(TdsSensorPin);
    gravityTds.setAref(5.0);  //reference voltage on ADC, default 5.0V on Arduino UNO
    gravityTds.setAdcRange(1024);  //1024 for 10bit ADC;4096 for 12bit ADC
    gravityTds.begin();  //initialization
}

void loop()
{
    //temperature = readTemperature();  //add your temperature sensor and read it
    gravityTds.setTemperature(temperature);  // set the temperature and execute temperature compensation
    gravityTds.update();  //sample and calculate 
    tdsValue = gravityTds.getTdsValue();  // then get the value
    Serial.print(tdsValue,0);
    Serial.println("ppm");
    delay(1000);
}
DS18B20防水温度传感器

简介|防水DS18B20温度传感器和Arduino结合可以用到很多地方,比如土壤温度检测、热水箱温度控制等等,但是防水的DS18B20温度传感器必须还要接一个上拉电阻才能使用,为此我们设计的Plugable Terminal转换器就派上用场了。 Plugable Terminal转接器数字口增加了上拉电阻,使用跳线帽切换使用,这样可以直接将防水DS18B20温度传感器连接到Arduino上了。

     #include <OneWire.h>

    int DS18S20_Pin = 1; //DS18S20 Signal pin on digital 3

    //Temperature chip i/o
    OneWire ds(DS18S20_Pin);  // on digital pin 2

    void setup(void) {
      Serial.begin(9600);
    }

    void loop(void) {
      float temperature = getTemp();
      Serial.println(temperature);

      delay(100); //just here to slow down the output so it is easier to read

    }
OLED Display 0.66" (SSD1306)

简介|Grove-OLED显示器0.66英寸(SSD1306)的屏幕比其他OLED显示器的屏幕更小。但它仍能以64×48分辨率显示,并保持了其他显示器的性能,例如高亮度、低功耗和背面的Grove接口等。

您可以使用I2C接口点亮微控制器的迷你显示器,以显示文字、图像或任何您想要的内容。0.66英寸显示屏可帮助您在较小的地方显示信息,您可以将其用作Arduino OLED显示屏、Raspberry Pi PLED显示屏等。

此Grove OLED显示器支持U8g2单色显示器库。该库是如此方便和兼容,它可以支持SSD1306和其他芯片,如SSD1315。

#define BLINKER_PRINT Serial
#define BLINKER_WIFI

#include <Blinker.h>

char auth[] = "Your Device Secret Key";
char ssid[] = "Your WiFi network SSID or name";
char pswd[] = "Your WiFi network WPA password or WEP key";

// 新建组件对象
BlinkerButton Button1("btn-abc");
BlinkerNumber Number1("num-abc");

int counter = 0;

// 按下按键即会执行该函数
void button1_callback(const String & state) {
    BLINKER_LOG("get button state: ", state);
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}

// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{
    BLINKER_LOG("Blinker readString: ", data);
    counter++;
    Number1.print(counter);
}

void setup() {
    // 初始化串口
    Serial.begin(115200);

    #if defined(BLINKER_PRINT)
        BLINKER_DEBUG.stream(BLINKER_PRINT);
    #endif
    
    // 初始化有LED的IO
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, HIGH);
    // 初始化blinker
    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);
    Button1.attach(button1_callback);
}

void loop() {
    Blinker.run();
}
物联网平台-点灯科技Blink

简介|点灯是一套专业且易用物联网解决方案,提供了服务器、应用、设备端sdk支持。 基于高性能异步框架开发的服务器端可以承载大量设备连接,让设备所有者方便的进行设备管理;简单便捷的应用配合多设备支持的sdk,可以让开发者在3分钟内实现设备的接入。

 


硬件框图

 

引脚接线

ESP32引脚

传感器

引脚

电压

A1

TDS传感器

A(模拟量)

5v

A2

浊度传感器

A(模拟量)

3.3~5.5v

SDA(D21)

0.66寸 OLED屏幕

SDA

3.3v

SCL(D22)

 

SCL  

FlifluJYXHfgRD5-__SbZaLX0zyn

界面配置代码

{¨version¨¨2.0.0¨¨config¨{¨headerColor¨¨transparent¨¨headerStyle¨¨dark¨¨background¨{¨img¨¨assets/img/bg/f4.jpg¨¨isFull¨»}}¨dashboard¨|{¨type¨¨num¨¨t0¨¨浊度数据¨¨ico¨¨fal fa-question¨¨clr¨¨#076EEF¨¨min¨É¨max¨¢1Ie¨uni¨¨NTU¨¨bg¨É¨cols¨Í¨rows¨Ë¨key¨¨tur¨´x´Í´y´Ì¨lstyle¨Ë¨rt¨»}{ßCßDßE¨Tds值¨ßGßHßIßJßKÉßLº0ßM¨ppm¨ßOÉßPÍßQËßR¨tds¨´x´Í´y´ÐßTËßU»}{ßCßDßE¨温度¨ßGßHßI¨#FBA613¨ßKÉßL¢1cßM¨°C¨ßOÉßPÍßQËßR¨temperature¨´x´Í´y´ÊßU»ßTË}{ßC¨cha¨ßOɨsty¨¨line¨ßIßZ¨sty1¨ße¨clr1¨ßJ¨sty2¨ße¨clr2¨¨#6010E4¨ßPÑßQÌßR¨qushi¨´x´É´y´ÒßTɨkey1¨ßX¨key2¨ßSßEßY¨t1¨ßV¨t2¨¨浊度¨¨key0¨¨temp¨}{ßC¨tex¨ßE¨TDS¨ßn´´¨size¨¨20¨ßOÉßG¨fad fa-thermometer-three-quarters¨ßPÍßQËßR¨333¨´x´É´y´ÐßTÌßIßZ}{ßCßsßEßYßn´´ßußvßOÉßG¨fas fa-humidity¨ßPÍßQËßR¨111¨´x´É´y´ÊßTÌßIßJ}{ßCßsßEßpßn´´ßußvßOÉßG¨fad fa-tachometer-alt-fast¨ßPÍßQËßR¨222¨´x´É´y´ÌßIßjßTÌ}{ßCßsßE¨基于ESP32渔业养殖水质监控¨ßn¨文本2¨ßu´24´ßOÉßG¨fad fa-chart-network¨ßPÑßQÊßR¨tex-m1m¨´x´É´y´ÉßTÎßIßJ}{ßC¨deb¨¨mode¨ÉßOÉßPÑßQÌßR¨debug¨´x´É´y´¤F}{ßCßsßE¨污染等级¨ßn´´ßußvßOÉßG¨far fa-leaf¨ßPÍßQËßR¨tex-n4z¨´x´É´y´ÎßI¨#00A90C¨ßTÌ}{ßCßDßE´´ßGßHßIß1CßKÉßLÍßM´等级´ßOÉßPÍßQËßR¨Grade¨´x´Í´y´ÎßU»ßTË}{ßCßcßOÉßdßeßIß1Cßfßeßg¨#389BEE¨ßhßeßiß1EßPÑßQÌßRß1D´x´É´y´¤Cßqß1DßTÉßEß19}÷¨actions¨|÷¨triggers¨|÷ßU|ßSßXßbß1D÷}
软件框图

FrvfLzDxoCZKnZZBMeYOZALNzHs5

详细软件和资料在附件当中


活动心得

感谢硬禾学堂的第二季第三期的FunPack活动,这次又是一次物联网的活动,非常的激动与开心。之前玩ESP32比较多,做过很多有意思的物联网项目,此次活动是基于DFireBeetle ESP32-E物联网水质检测。是一个不错的课设学习,简单的,快速的构建一个物联网的项目,此次活动非常适合物联网专业的学生或者是物联网爱好者学习。更期待Funpack下一期的活动!

附件下载
funpack2-3.zip
代码
团队介绍
用FireBeetle ESP32-E开发板作为控制单元,观察养殖水质参数(温度/浊度/tds/pH值/电位/溶解氧中两项指标以上)的变化,并能把数据上传到IoT网站上,可实时动态显示监测水质的变化情况。 建议搭配:防水温度计/浊度计/tds传感器/pH计/溶氧传感器等两个及以上传感器配合完成。
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号