简介|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;
}
简介|总溶解固体(英文: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温度传感器和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
}
简介|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();
}
简介|点灯是一套专业且易用物联网解决方案,提供了服务器、应用、设备端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 |
界面配置代码
{¨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÷}
详细软件和资料在附件当中
活动心得
感谢硬禾学堂的第二季第三期的FunPack活动,这次又是一次物联网的活动,非常的激动与开心。之前玩ESP32比较多,做过很多有意思的物联网项目,此次活动是基于DFireBeetle ESP32-E物联网水质检测。是一个不错的课设学习,简单的,快速的构建一个物联网的项目,此次活动非常适合物联网专业的学生或者是物联网爱好者学习。更期待Funpack下一期的活动!