我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

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

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

这篇文章将为大家详细讲解有关怎么使用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

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android开发中怎么调用系统图库

这篇文章将为大家详细讲解有关Android开发中怎么调用系统图库,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。首先上效果图: 一、只调用系统图库(不裁剪),返回用户选择的图片。(只支持单选
2023-05-31

怎么用Java开发用户后台管理系统

今天小编给大家分享一下怎么用Java开发用户后台管理系统的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。主要功能管理员登录功能
2023-06-26

Linux系统下怎么安装Bugzilla来追踪程序开发中的bug

本篇内容主要讲解“Linux系统下怎么安装Bugzilla来追踪程序开发中的bug”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux系统下怎么安装Bugzilla来追踪程序开发中的bug”
2023-06-12

怎么用Android开发一个学生管理系统

本篇内容介绍了“怎么用Android开发一个学生管理系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果演示随手做的一个小玩意,还有很多功
2023-06-25

C#怎么用ASP.NET Core开发学生管理系统

本篇内容介绍了“C#怎么用ASP.NET Core开发学生管理系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!涉及知识点开发学生管理系统,
2023-06-22

Linux系统中怎么使用crontab来定时执行脚本

本篇内容介绍了“Linux系统中怎么使用crontab来定时执行脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!网友突然问道的,想了很久,
2023-06-13

Linux系统下怎么使用mail发送Internet邮件

这篇文章主要介绍“Linux系统下怎么使用mail发送Internet邮件”,在日常操作中,相信很多人在Linux系统下怎么使用mail发送Internet邮件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”L
2023-06-13

在Linux中怎么使用unixbench来测试测试系统性能

这篇文章主要介绍“在Linux中怎么使用unixbench来测试测试系统性能”,在日常操作中,相信很多人在在Linux中怎么使用unixbench来测试测试系统性能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
2023-06-12

Android开发中怎么使用canvas绘制一个统计图

Android开发中怎么使用canvas绘制一个统计图?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。效果如下: 特点:1.使用非常方便,可放在xml布局文件中,然后在代码
2023-05-31

XP系统下系统程序损坏怎么办?使用Qfixapp.exe来修补损坏系统程序的操作方法

WinXP的系统程序经常容易损坏,因此微软提供了一些快速python修补程序的工具,Qfixapp.exe就是其中之一,这款软件可以提供简易的程序修补方式,不过很少人懂得使用它。下面小编就为大家图文讲解WinXP下如何借助Qfixapp.e
2023-06-13

Java怎么使用集合来实现一个客户信息管理系统

这篇文章主要为大家展示了“Java怎么使用集合来实现一个客户信息管理系统”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java怎么使用集合来实现一个客户信息管理系统”这篇文章吧。1 客户类pub
2023-06-25

Linux系统怎么使用firewall限制或开放IP及端口

这篇文章主要为大家分析了Linux系统怎么使用firewall限制或开放IP及端口的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux系统怎么使用fir
2023-06-28

使用C++开发嵌入式系统时的内存管理策略是什么?

c++++ 嵌入式系统中常见的内存管理策略包括:静态分配:变量在编译时分配到特定地址。栈分配:临时内存分配,用于存储函数局部变量和参数。堆分配:动态内存分配,使用 malloc() 和 free() 函数管理。内存池:预先分配指定大小内存块
使用C++开发嵌入式系统时的内存管理策略是什么?
2024-05-11

windowsXP系统使用不了MMC控制台(打开出错)怎么办?

Windows XP系统使用不了MMC控制台,打开之后默认是出错的,因为XP系统少了两个DLL文件“mstsmhst.dll”和“mstsmmc.dll”。 首先到一台服务器系统的电脑上,打开
2023-05-30

编程热搜

目录