在Arduino的IDE编辑器上实现检测降雨量是比较简单的操作,在下面这个网址里有详细教程:https://www.cnblogs.com/eagler8/p/11561651.html
IDE的串口监视器虽然能输出信息,却不能将数据保存下来,也不能直接调用这些数据.
在上一节内容里,我介绍了:
通过python在Arduino开发板上实现blink—Arduino学习笔记1
在里面已经详细介绍了python调用Arduino开发板的2种方法,验证了使用python调用Arduino开发板的可行性,接下来,我要用第三种方法,通过python获取Arduino雨滴传感器模块传回的数据.
第三种方法用的库是pymata_aio. pymata_aio是使用Python asyncio的Arduino Firmata的Python协议抽象库
使用Firmata的主要模型有两种:
- 在一个模型中,Arduino草图的作者使用Firmata库提供的各种方法来选择性地在Arduino设备和主机上运行的软件之间发送和接收数据。例如,用户可以使用来将模拟数据发送到主机,Firmata.sendAnalog(analogPin,
analogRead(analogPin))或者使用来发送打包在字符串中的数据Firmata.sendString(stringToSend)。 - 第二种也是更常见的模型是在Arduino板上加载一个称为StandardFirmata的通用草图(或视您的需要而定义的StandardFirmataPlus或StandardFirmataEthernet等变体之一),然后仅使用主机与Arduino板进行交互。
为了节省时间,我们今天根据Arduino官网上的3线制雨滴传感器源码,把C语言改写成python.在改写的过程中,为了完善功能,我补充了一些内容.
先来看看c语言的程序是怎么实现的:
/*
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验三十二:雨滴传感器模块(雨水/雨量/叶面湿度)《3线制》
*/
void setup()
{
pinMode(3,INPUT);
pinMode(13,OUTPUT);
}
void loop()
{
if (digitalRead(3)