温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么使用Arduino来开发灌溉系统

发布时间:2021-11-06 14:59:25 来源:亿速云 阅读:153 作者:小新 栏目:web开发

这篇文章将为大家详细讲解有关怎么使用Arduino来开发灌溉系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Arduino 来拯救

Arduino非常适合这样的项目:低成本、只需要一个电源、没有系统会冻结/挂起、拥有众多的标准周边设备。听起来这个想法适合我做,所以我通过互联网搜索到Arduino GSM模块。***,我发现一个模块以及开放库只需要30美元,非常便宜。完整的系统成本大约50美元,和大多数其他系统成本700美元形成鲜明对照。

幸运的是,GSMLib很容易使用,我一找出哪些针脚能用到,哪些没用就开始动手去做。一个简短的例子,当一个认证的手机号发短息给你时,你需要做的就是:

stat = call.CallStatusWithAuth(number, 1, 3);if(stat == CALL_INCOM_VOICE_AUTH) {      call.HangUp();      sms.SendSMS(number, value_str);}

系统描述

最终的水泵控制系统是相当简单的。开始或者关闭的方法通过一个继电器或者两个继电器系统模拟开/关按钮实现。我想要的是两种方法都支持,这并不是很困难。

除了输出之外,也有输入。当系统启动并运行时,相应的继电器开启和关闭;当有一个错误时(断电、低压、高温),三个继电器可能会开启。我们的软件一般需要发送短信,当系统开始和停止运行时(无论任何原因,无论你是否通过电话开启系统),当一个错误继电器触发时,一条带有具体错误原因的短信将发送。

我们也想要一种取消SMS发送的方法,与确保你不会得到无关紧要的信息,如果你手动开启/关闭系统,而你在水泵身旁(显而易见的是当你站在水泵旁边时,关闭水泵,压力消失,你不在需要接受短信)通过简单的选择输入可实现开启短息发送功能或者关闭。

当然也有一些次要的问题需要考虑,比如错误继电器和其他元件不相关联(当关闭电源后,所有其他的错误继电器将继续运行,所以你只需要发送“电力消失”信息),错误条件具体到错误(例如,关闭系统触发“压力下降”错误),但这都非常简单。

实现错误短信

实现错误短息的函数只需几行。初始时,我们检测继电器的状态是否改变(当一个错误继电器保持激活状态时,我们想要边缘触发以避免虚假循环。例如):

for (char i=0; i < INPUT_LENGTH; i++) {      pinState = digitalRead(inputPins[i]);      if (pinState != pinStates[i]) {          // If the pin's state changed, note it.          statesChanged[i] = 1;      }      // Update the state.      pinStates[i] = pinState;}

然后我们掌握了所有状态的改变以及新状态,决定接下来做什么就不难了:

// Decide what happens.if (statesChanged[0] == 1 && pinStates[0] == OFF) {      // Phase dropped, send message regardless.      sendSMS("Phase dropped.");} else if (statesChanged[1] == 1 && pinStates[1] == OFF) {      sendSMS("Thermal dropped.");} else if ((statesChanged[2] == 1 && pinStates[2] == OFF) &&             (statesChanged[3] == 1 &&  pinStates[3] == OFF)) {      // Pressure dropped *and operation stopped simultaneously*.      // This is because we don't want to be notified of normal      // pressure drops after we stop the system ourselves.      sendSMS("Pressure dropped.");} else if (statesChanged[3] == 1 && pinStates[3] == OFF) {      sendSMS("Pump shut down.");} else if (statesChanged[3] == 1 && pinStates[3] == ON) {      sendSMS("Pump started.");}

关于“怎么使用Arduino来开发灌溉系统”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI