这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » DFRobot盖革计数器模块评测–连接ESP32模块调试

共6条 1/1 1 跳转至

DFRobot盖革计数器模块评测–连接ESP32模块调试

菜鸟
2024-06-02 21:35:26   被打赏 45 分(兑奖)     打赏

拿到了DFRobot盖革计数器模块后又买了转接针,这样可以连接到ESP32板卡上进行调试。官方Arduino例程是用D3管脚连接DFRobot盖革计数器模块的D,但是ESP32开发板卡数字管脚的3与Rx pin共用不建议使用,改到14管脚进行调试。

接线说明:DFrobot Geiger模块-->ESP32 IO

                         (D)-->(14)

                         (+)-->(5V)

                         (-)-->(GND)

插上模块导入官方库编译下载后可以从串口读取数据。


串口输出三个数据每分钟计数CPM,辐射剂量nSv/h(纳希沃特每小时)

及μSv/h(微希沃特每小时)  nSv/h × 0.001 = μSv/h。程序下载后一段时间后数据正常,本地辐射大概在0.05μSv/h左右。

每次从串口读数据有点麻烦,将OLED模块连接到ESP32开发板上,编写代码将数据显示在OLED屏幕上方便数据读取。

OLED(IIC)液晶模块-->ESP32 IO

         GND-->(GND)

         VCC-->(5V)

         SCL-->(18)

         SDA-->(23)

源代码如下:

#include <DFRobot_Geiger.h>
#include "public.h"
#include <Wire.h>               // Only needed for Arduino 1.6.5 and earlier
#include "SSD1306Wire.h"        // legacy: #include "SSD1306.h"
#define detect_pin 14
/*!
 * @brief Constructor
 * @param pin 外部中断引脚  
 */
//OLED引脚定义
#define SDA  23
#define SCL   18
SSD1306Wire display(0x3c, SDA, SCL);
DFRobot_Geiger  geiger(detect_pin);
void setup(){
   Serial.begin(115200);   //开始计数,启用外部中断 
   geiger.start();
   display.init();//初始化UI
   display.flipScreenVertically();//垂直翻转屏幕设置
   display.setFont(ArialMT_Plain_24);//设置字体大小
   display.drawString(0, 0, "Geiger Counter");//显示
   display.display();//将缓存数据写入到显示器  
}
void loop(){
  char   s[5];
  //开始计数,启用外部中断
  //geiger.start();
  delay(3000);
  //暂停计数,关闭外部中断触发,CPM和辐射强度值保持在暂停前状态
  //geiger.pause();
  //获取当前CPM,若已暂停,则CPM为暂停前最后数值
  //通过3秒内的下降沿脉冲预测CPM,误差为±3CPM
  Serial.println(geiger.getCPM());
  //获取当前nSv/h,若已暂停,则nSv/h为暂停前最后数值
  Serial.println(geiger.getnSvh());
  //获取当前μSv/h,若已暂停,则μSv/h为暂停前最后数值
  Serial.println(geiger.getuSvh());
  // clear the display
  display.clear();
  display.setFont(ArialMT_Plain_10);
  display.setTextAlignment(TEXT_ALIGN_CENTER);
  display.drawString(64, 0, String("Geiger Counter" ));
  display.drawString(32, 10, String( geiger.getCPM()));
  display.drawString(64, 10, String( "CPM"));
  display.drawString(32, 20, String(geiger.getnSvh()));
  display.drawString(64, 20, String("nSv/h"));  
  dtostrf(geiger.getuSvh(),1,2,s);
  display.drawString(32, 30, s );
  display.drawString(64, 30, String("uSv/h"));
  // write the buffer to the display
  display.display();
}


下载后显示效果如下图:

474371B2-CA6A-419c-8D02-CD0004246035.png





专家
2024-06-03 07:19:23     打赏
2楼

来看看


高工
2024-06-03 12:54:32     打赏
3楼

来看看


专家
2024-06-09 10:59:03     打赏
4楼

感觉数据的变化有点大啊


专家
2024-06-09 21:49:59     打赏
5楼

谢谢分享


工程师
2024-06-20 09:31:02     打赏
6楼

666


共6条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]