电子说
该无线电源记录仪使用RIOTOUS V0.2和VB.net驱动的程序测量电压,电流和功耗。
电力记录非常有用在需要确定电路的平均功率消耗的情况下。在这个项目中,我们将创建一个无线电源记录器,可用于测量电压,电流和功耗,使用RIOTOUS V0.2将其数据流式传输到VB.net驱动的程序。
电源记录器电路
基于RIOTOUS的电路包括微控制器(PIC16F1825),用于Wi-Fi连接的ESP-01模块,用于记录电压和电流(U2)的模拟电路,以及基本功率调节(U1)。要记录设备消耗的功率,需要获得两个变量:器件两端的电压降以及流经该器件的电流。由于外部器件由VCC轨供电,因此很容易确定电压消耗,因此微控制器可以使用模拟引脚直接对其进行模拟测量。
但是,由于VCC将大于PIC使用的3.3V电源,因此VCC电压首先被馈入分压器(RV2和R8),该分压器将电压除以10.然后将该分压电压缓冲为1。增益放大器(U2B),然后馈入其中一个PIC模拟数字输入。通过这样做,我们可以测量高达33V的VCC值(远远超出AMS1117可以处理的值)。
我们需要的第二个参数记录是最新的,这有点棘手。在我们的电路中,我们使用一个检测电阻(R4),它本质上是一个与被测器件串联的电阻。由于电阻是串联的,因此电阻上会产生电压降,电压降与流过它的电流成正比(由于V = IR)。重新安排此公式,使我成为主题揭示。..
由于电阻和器件串联,流过检测电阻的电流必须是与流经设备的电流相同(归功于基尔霍夫定律)。因此,我们可以通过将检测电阻两端的电压降除以其电阻(已知)来确定流过器件的电流。在PIC测量电压降之前,首先使用U2A将其乘以10。这样可以更容易地检测到更小的电流,但代价是限制我们可以测量的最大电流。
电路代码
PIC16F1825上的固件使用RIOTOUS框架来处理ESP8266以及传入和传出的数据。启动时,记录器尝试连接到指定的Wi-Fi网络,然后连接到服务器(这是我们用VB.net编写的电源记录程序)。建立连接后,PIC将一直等待,直到发送“开始记录”命令。发送此命令后,PIC开始定期读取两个电压(VCC和电阻两端的压降)。在读取数据时,将电源值乘以检测电阻器电压除以其电阻,以提供功耗。然后将该值发送到服务器程序,以便使用VB.net表单应用程序登录图表。
以下是读取ADC外设以测量电流和电压的代码:
接下来,我们添加确定功耗的计算代码:
最后,我们插入将结果转换为字符串并将其发送到服务器的代码:
服务器代码
服务器side是使用RIOTOUS建立我们的记录器可以连接的RIOTOUS服务器的应用程序。然后,当读数以VB.net形式流式传输时,应用程序将数据绘制到图表上以显示滚动功耗。
记录器刚刚启动
之后的记录器一分钟
施工
该电路可以使用许多不同的电路板技术构建,包括条形板,面包板甚至PCB。我在这个项目上的第一次尝试是使用PCB,但由于我所做的愚蠢错误(使用编程端口作为我的模拟读取通道),我不得不重新设计该项目。然而,我没有制作另一块PCB,而是选择使用面包板,这提供了挑战!
ESP-01模块使用0.1“标题,其中对业余爱好者有帮助,但标题有两行,这意味着它不能用于面包板。因此,我不得不使用一块stripboard来创建一个允许它与面包板一起工作的适配器。
全部0条评论
快来发表一下你的评论吧 !