文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

这篇文章将为大家详细讲解有关怎么使用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来开发灌溉系统”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯