你的位置: 首页 > 仪器仪表 > 电工仪器仪表

基于GoKit的X射线剂量监测仪

2024-01-16 11:26:02 | 人围观 | 评论:

上次参加机智云活动有幸被抽中,获得送样测评机会。因此做了一个基于Gokit的X射线剂量监测仪,换句话说就是将剂量仪的数据同步反映在机智云平台PC端和手机App上,方便随时监测数据。
具体操作步骤如下:
1.注册开发者账号
https://dev.gizwits.com/

2.创建产品

3f1ad308-5393-11ec-a27f-dac502259ad0.jpg 3.添加项目需要的数据点
这个可以先按需写个,然后等后期项目需要再重新添加,注意添加数据点后要点击应用

3f2918f0-5393-11ec-a27f-dac502259ad0.jpg 4.然后就是生成Arduino uno R3 的代码

选择正确的硬件平台(R3),Product Secret 这个值在 产品信息-基本信息 里面获取


3f3915de-5393-11ec-a27f-dac502259ad0.jpg 5.处理arduino下载来的代码

ardunio的ide相关就自己网上获取了,论坛也有!拷贝库文件到arduino的库位置,所需的例程在exampls里获取


3f66b75a-5393-11ec-a27f-dac502259ad0.jpg
上述俩个例子的作用说明:

simpleTry.ino
是本次项目工程,里面有程序框架,以及告知了用户在哪里填充接入机智云的代码。

networkConfig.ino是配置入网的例程,因为常见的智能硬件产品是没有键盘和显示屏的,因此需要一种技术来让它获取路由器的SSID和密码,首选是通过手机APP辅助。这里简单的介绍一下方法,通过一个按键来触发设备进入配网模式,然后手机APP把SSID和密码广播给设备

具体代码详见上传的文件(在文末可以下载),注意代码里和串口相关的都要去掉,因为mcu模式下,R3的串口需要和esp8266通讯。

至于后续需要多串口模式参考代码:
https://www.jianshu.com/p/eb846ce95806

烧录注意选择arduino类型,编译不报错,然后上传就可以了!

3f9cbd8c-5393-11ec-a27f-dac502259ad0.jpg 6.暂且跳转到esp8266网络模块这里,先下载GAgentfor EPS8266的固件并烧录

3faab298-5393-11ec-a27f-dac502259ad0.jpg
下载程序注意:usb转ttl接3根线,供电使用功能板的usb,8266小板的开关打到gnd下载模式,上图烧录工具里的BAUD不能太高,这里我耽误了一会!

接线烧录参考:


3fd51718-5393-11ec-a27f-dac502259ad0.jpg
烧录完成后吧,拨码开关拨回来!

这里注意下,如果你不确认,是否烧录正常的话,你可以按下板子上的K2按钮,中间的那一个,8266应该会创建一个ssid为XPG-GAgent-xxxx的ap出来,你在手机wifi里能看到就可以了!


7.下载官方app,可以在官网下载,或者是在应用商店搜索“机智云”下载

https://download.gizwits.com/zh-cn/p/98/99

8.配网这里也要注意

长按板子上的K2按钮,中间一个按键,就能进入airlink配置模式,然后用机智云的app推送ssid和密码,使其配网。成功后,在你的机智云app里会出线你创建的设备

3ff88e6e-5393-11ec-a27f-dac502259ad0.jpg 40255674-5393-11ec-a27f-dac502259ad0.png
9.你可以在app里操作下按钮,然后在机智云的官网开发者中心设置日志里就可以看到操作记录了

403a57fe-5393-11ec-a27f-dac502259ad0.jpg 10.开始编写系统程序

404cf74c-5393-11ec-a27f-dac502259ad0.png
上图是arduino r3的引脚图,可以参考,注意烧录r3程序时,上面的扩展板需要拔下来,不然烧录不进去!


11.先用rgb的红色模拟,射线开启信号

#include

#define NUM_LEDS 1

ChainableLED leds(A5, A4, NUM_LEDS);

引入rgb的驱动文件,定义一个灯

setup函数中初始化下 leds.init();

loop函数中,会接收且解析机智云平台发来的控制数据,函数解析处理就可以了

bool varR_XRAY_ON = 0;

if(myGizwits.hasBeenSet(EVENT_XRAY_ON))

{

myGizwits.read(EVENT_XRAY_ON,&varR_XRAY_ON);//Address for storing data

// mySerial.println(F("EVENT_XRAY_ON"));

// mySerial.println(varR_XRAY_ON,DEC);

if(varR_XRAY_ON)

leds.setColorRGB(0,255,0,0);//测试亮红色 ,表示x射线开启

else

leds.setColorRGB(0,0,0,0);//测试熄灭红灯,表示射线关闭

}

上述操作后,一个模拟射线开启的方案就完成了,后期可以用io去驱动继电器进而控制射线源。


12.因为我的剂量仪的盖格计数器的玻璃管坏了,目前数据不能获取回来,下面我将在程序里模拟一个数据作为射线剂量监测值,反应在机智云平台里


4084172c-5393-11ec-a27f-dac502259ad0.jpg

4092a62a-5393-11ec-a27f-dac502259ad0.jpg
顺便将dht11的数据也接入进去 了,方便方案验证的观察,上图Xray_data的值是用随机数模拟的。后期在接入辐射剂量仪的数据!

40a5b8a0-5393-11ec-a27f-dac502259ad0.jpg
本文转载自:https://club.gizwits.com/thread-166363-1-1.html




标签:[db:tags]

相关内容推荐: