Beetle ESP32 C3试用之初体验
缘起:我与蘑菇云公司的产品结缘,还需要从中学的一名同事说起,由于蘑菇云公司支持我省的创客比赛,而他又多次在省赛中取得很好的成绩,听他说蘑菇云的产品无论从产品本身以及产品的性能而言非常的好,他非常满意经常推荐我们介绍给我们一些关于蘑菇云公司的产品,这不由得我向往,希望我们学校采购蘑菇云的产品,但是事与愿违。第二次与蘑菇云的行空板结缘,是在上海浦育公司组织举办的全国人工智能教师成长营,在AI 项目部署中,老师特别推荐使用蘑菇云的行空板。最终由于种种原因而没有使用,这也成为我自己的一个心结。现在好了,可以白嫖Beetle ESP32-c3,终于可以大展身手了。
BeetleESP32-C3,仅硬币大小,引出了多达13个IO口,无须担心IO口不够用,同时主控板还集成锂电池充电管理功能,可以直接连接锂电池,不需要外围模块,同时保证应用体积和安全性。使用之前可以点击链接https://wiki.dfrobot.com.cn/_SKU_DFR0868_Beetle_ESP32_C3以上为Beetle ESP32-C3的官方链接。非常详细,还有案例呢。那么现根据他得内容测试下。另外,我之前购买过一款物联网开发套件。使用的是esp8266,也算是的亲戚产品了,那就依葫芦画瓢,举一反三,就开干吧。小试牛刀首先任选一款Arduino IDE下载安装,并从以下五个方面配置软件环境,1. 添加IDE中的json链接2. 下载主控的核心3. 选择开发板以及串口4. 打开示例程序并烧录5. 了解串口监视器具体查看以上链接教程,现叙述下我在配置环境中踩过的坑。傻傻不分开发板管理器和扩展库管理器;在扩展库里苦苦寻觅了一个下午esp32无果,无意间发现找错位置了。详细叙述如下:打开Arduino IDE,点击File->Preferences,在setting选项卡下Additional Board Manager URLs标签下,点击文本后方按钮,将如下链接地址复制到新弹出的对话框中:https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json注意:如果您之前安装过其它的环境,那么您可以在上一个链接地址开头或末尾处直接回车并将上面链接粘贴在其上下任意一行。Boards Manager会自动更新板卡,期间要科学上网哟,否则下载不了开发板资源,也可以安装esp32_package_2.0.7_arduinome.exe软件来代替,以下为该软件链接:https://www.aliyundrive.com/s/t2EeAcDetwu
然后打开Tools->Board:->Boards Manager,是开发板管理器,而不是项目中的库管理器。找到esp32安装即可。
接着让我们跟着教程从点亮主控板的LED灯代码如下:int LED =10;//定义IO口10,对应开发板内置LED灯
void setup()
{
pinMode(LED,OUTPUT);//设置IO口10为输出接口,Arduino 上我们用到的I/O 口都要进行类似这样的定义。
}
void loop() //死循环体
{
digitalWrite(LED,HIGH);//IO口10设置为高电平,点亮数字10口LED
}
效果如下:点亮没问题后,紧接着试一试板载LED灯闪烁,代码如下:
int LED =10;//定义IO口10,对应开发板内置LED灯
void setup()
{
pinMode(LED,OUTPUT);//设置IO口10为输出接口,Arduino 上我们用到的I/O 口都要进行类似这样的定义。
}
void loop() //死循环体
{
digitalWrite(LED,HIGH);//IO口10设置为高电平,点亮数字10口LED
delay(500);//延时500mS
digitalWrite(LED,LOW);//IO口10设置为低电平,熄灭数字10口LED
delay(500);//延时500mS
}
也比较顺利,能够出色完成。
接着试一试呼吸灯,采用官网的程序,代码如下:
/*
* LED呼吸灯示例
*/
const int ledPin = 10;// PWM生成后实际输出引脚
//设置PWM参数
const int freq = 5000;//PWM频率
const int ledChannel = 0;//信号生成GPIO
const int resolution = 8;//8位分辨率
void setup(){
//PWM参数设置
ledcSetup(ledChannel, freq, resolution);
//将生成信号通道绑定到输出通道上
ledcAttachPin(ledPin, ledChannel);
}
void loop(){
//逐渐变亮
for(int dutyCycle = 0; dutyCycle <= 255; dutyCycle++){
// changing the LED brightness with PWM
ledcWrite(ledChannel, dutyCycle);
delay(15);
}
//逐渐变暗
for(int dutyCycle = 255; dutyCycle >= 0; dutyCycle--){
// changing the LED brightness with PWM
ledcWrite(ledChannel, dutyCycle);
delay(15);
}
}
效果图如下所示:
实验辅助最后,我想做的是使用Beetle ESP32 C3反馈当前空气温度以及水位。可以使用多个板子来同时测量获取数据,最简单快捷的展示数据的方式当选串口打印了。通过小的例子可以实现辅助物理实验“影响水蒸发快慢的因素”的效果。硬件清单:BeetleESP32-C3 *1水位传感器 *1DH11温湿度传感器 *1面包板 *1面包板跳线 *1 线路连接:ESP32-C3引脚 连接元件引脚
IO0 水位传感器
IO1 温湿度传感器使用Arduino1.8.19编程并刷入主板,代码如下:
#include <DHT.h>//调用dht11驱动库
#define DHTPIN 1 //说明数据接口为开发板的IO口1
#define DHTTYPE DHT11//说明使用的模块是DHT11
DHT dht(DHTPIN,DHTTYPE);
float waterlevel;
void setup() {
// put your setup code here, to run once:
dht.begin();//开始测量
Serial.begin(9600);//打开串口,设置波特率
}
void loop() {
// put your main code here, to run repeatedly:
delay(200);//延时,等待测量完成
float h = dht.readHumidity();//读取湿度
float t =dht.readTemperature();//读取温度
waterlevel =(analogRead(A0)*100)/1024;
//Serial.print("当前湿度:");//发送字符“当前湿度:”
//Serial.print(h);//发送湿度值
//Serial.println("%");//发送湿度值
//
//Serial.print("当前温度:");//发送字符“当前温度:”
//Serial.print(t);//发送温度值
//Serial.println("℃");//发送湿度值
//
//Serial.print("当前水位:");//发送字符“当前水位:”
//Serial.print(waterlevel);//发送水位值
//Serial.println("cm");//发送水位值
Serial.print(h);
Serial.print(",");
Serial.print(t);
Serial.print(",");
Serial.println(waterlevel);
delay(2000);//2s测量一次
}
取消注释部分可以人性化的从串口观察数据。取得的串口数据如下:取得的串口数据如下:时间后三列数据分别为当前湿度、温度、水位。还可以使用串口的绘图功能绘制温度、湿度和水位的变化曲线,更直观的显示。不足与改进1、这是简单的读取接口数据的程序,未使用该板子无线连接的功能。2、多个实验数据需要多台电脑串口完成,耗费资源。接下来的方向是使用siot,将多台板子获取的数据上传服务器,读取更方便。上传服务器后,使用Mind+1.8做成可视化大屏效果。 官方链接:https://wiki.dfrobot.com.cn/_SKU_DFR0868_Beetle_ESP32_C3#target_15
页:
[1]