资料介绍
描述
主意
制作自动化系统的想法来自我们的村屋,那里有鸡、狗和植物。我父亲制作了一个电子系统来自动化日常任务,例如给植物浇水、喂狗和喂鸡、给鸡开门等。他为那个系统使用了定时继电器,并且大部分时间都运行良好。但是,我们村的房子经常停电,导致我父亲的自动化系统出现问题。如果在一个继电器的分闸和合闸时间之间断电,当电回来时,它不会安排继电器的状态。当我们处理植物,主要是动物时,这是一个巨大的问题。而且定时继电器的成本比Netduino+Relay高,使用起来也不是你想的那么简单。
解决问题
为了解决这个问题,我申请了Netduino Contest的Idea Round,我的想法被接受了。我买了一个 16 通道 5V 继电器模块,用于多继电器控制。我需要知道时间。因此,我使用了一个外部 RTC 模块 DS3231 不仅可以获取实时时间,还可以获取星期几,这鼓励我每周编写一个程序作品。我写了一个循环函数,根据时间确定继电器的状态。此函数每秒循环一次并检查每个继电器的情况,然后比较来自 SD 卡(或直接来自代码——我在代码中解释)的继电器时间,并根据时间打开/关闭继电器。但是,我想独立使用传感器,以完成紧急需求。我设法连接了三个传感器,以用我的系统举例说明传感器的工作过程。
发展
由于缺乏互联网连接、时间和库存,开发过程对我来说有点困难。我在我们村的房子里,我不得不使用我的旧传感器,我没有足够的时间购买新的,因为运往村庄的货物受到限制。因此,我完成了我所拥有的。我熟悉 Arduino,这就是为什么示例项目的引脚图或电路对我来说很容易。我一直在努力集成 DS3231 并使用传感器(包括 LDR、水位和运动检测)。虽然有相关的教程,但大多数教程都有点老了。但是,Netduino 基金会很棒,而且大部分都是最新的!
我使用Netduino Foundation DS32xx 集成代码从 DS3231 RTC 模块获取时间数据。对于传感器,我尝试使用 SecretLabs.NETMF.Hardware.AnalogInput 参考,但 VS 2015 向我显示了一次又一次检查设备的错误。没有这个参考,所有的项目都像魅力一样运行。这就是为什么我检查了 AnalogInput 的库以了解如何从模拟输入中获取数据。之后,我从 Microsoft.SPOT.Hardware 获得了如下值:
Microsoft.SPOT.Hardware.AnalogInput waterLevel = new Microsoft.SPOT.Hardware.AnalogInput(Cpu.AnalogChannel.ANALOG_0);
Debug.Print("Water Level Sensor: " + (int)(waterLevel.Read() * 100));
我写了一个函数来确定继电器的情况。下面是我的函数的参数的示例和含义:
// Relay no:2 12:10 - 16:27 Only Tuesday
TimeToAct(2, currentHour, currentMinute, DayOfWeekToString(dayOfWeek), 12, 10, 16, 27, DetectDay(3));
///
/// Main Alarm System
///
/// Relay No
/// current Hour
/// current Minute
/// current Day String
/// Relay opens: hr
/// Relay opens: min
/// Relay closes: hr
/// Relay closes: min
/// Relay opens at specific day or days of week
static void TimeToAct(int relayNo, int currentHour, int currentMinute, String currentDay, int hourAct, int minuteAct, int hourReAct, int minuteReAct, String[] daysAct) {
我的代码在一天的操作中运行得很好(例如中继 6 仅在星期三工作)。然而,我的目标是让我的继电器每周工作好几天。我考虑过如何理解为多个操作选择了多少天,这是我的解决方案,使用素数:)
///
/// Detect Day depending on first 7 prime numbers
/// 2 --> Monday
/// 3 --> Tuesday
/// 5 --> Wednesday
/// 7 --> Thursday
/// 11 --> Friday
/// 13 --> Saturday
/// 17 --> Sunday
/// If we want our relay to open only one day, we need to enter days' prime number, for instance 5 for Wednesday.
/// If we want our delay to open multiple days, we need to multiply days' prime numbers.
/// For instance, all the days of week, we need to enter 2*3*5*7*11*13*17 = 510510
/// Monday + Tuesday = 2*3 = 6
/// Wednesday + Saturday + Sunday = 5*13*17 = 1105
///
/// dayNumber
/// Detect Day String array
static String[] DetectDay(int dayNumber)
{
String[] days = { "", "", "", "", "", "", "" };
for (int i = 0; i < 7; i++)
{
days[i] = "";
}
if (dayNumber % 2 == 0) { days[0] = "Monday"; }
if (dayNumber % 3 == 0) { days[1] = "Tuesday"; }
if (dayNumber % 5 == 0) { days[2] = "Wednesday"; }
if (dayNumber % 7 == 0) { days[3] = "Thursday"; }
if (dayNumber % 11 == 0) { days[4] = "Friday"; }
if (dayNumber % 13 == 0) { days[5] = "Saturday"; }
if (dayNumber % 17 == 0) { days[6] = "Sunday"; }
Debug.Print("DayNo: " + dayNumber);
Debug.Print("Days: ");
for (int i = 0; i < 7; i++)
{
if (days[i].Length > 5)
{
Debug.Print("-" + days[i]);
}
}
return days;
}
我的最后一个挑战是将数据存储在 SD 卡中。我有许多甚至超过 8GB 的 micro SD (SDHC) 卡。但是,Netduino 页面说您需要使用高达 2GB 的 SD 卡(不是 SDHC),这使我无法使用我的卡。我曾尝试与我的卡一起使用,但它不起作用。然后我决定使用 DS32xx 的 EEPROM 来存储所有数据。我从 Netduino.Foundation 找到了一个库,但是这个库导致 VS 出现问题(上面同样的错误)我需要存储数据,所以我为 SD 卡编写了代码,但我无法使用 SD 卡进行测试。
说明(用于制作项目)
- 使用该程序更新您的 Netduino。
- 下载并安装 Visual Studio 2015。
- 在Windows上安装 .NET MicroFramework 和 Netduino SDK 。
- 根据我的原理图将传感器和继电器连接到 Netduino。
- 下载并使用 VS 2015 打开我的项目。
- 在部署之前阅读并应用这些官方说明。(查找部署部分)
- 部署代码!
结果
我很高兴也很自豪能够完成这个项目并找到解决我们问题的方法!我的系统可以处理许多事情,例如:
- 根据小时、分钟和星期几编程 8 个继电器(现在限制为 8 个,但继电器计数可以增加)
- 中继系统每周工作,可根据日、月或年防止出现问题。
- 自动化系统帮助农民种植更好的作物并减少他们的工作。
- 由于我的系统不需要互联网连接,它可以在世界任何地方工作。
- 继电器可以通过传感器的值来控制,这也可以帮助农民在紧急情况下做植物或动物需要的事情。
- 使用 SD 卡不仅有利于存储和检索数据,而且可以更轻松地对继电器进行编程。
- 时间系统和传感器可以同时工作。(传感器优先控制继电器)
- 农民可以为他们的目的添加许多传感器。
- 如果发生停电,我的系统工作正常。
为了未来
- 我可以添加 Internet 连接,无论是 WiFi 还是以太网,以有效地传输数据并更轻松地对继电器进行编程。
- 通过有效的互联网连接,我可以制作一个应用程序来监控数据、编程继电器、确定传感器的值限制......这可以简化我的系统的使用。
- 我可以使用 Grove 传感器来增加传感器数量。
- 我可以增加继电器数量。
最后
我真的很感谢 Wilderness Labs 给我们一个机会来解决我们使用 Netduino 的问题,他们的高级语言支持卡。
- 家庭自动化系统开源构建 0次下载
- 多功能工作灯开源分享 0次下载
- 多功能网络设备开源分享 0次下载
- 自动化系统开源硬件 0次下载
- 家庭自动化开源案例 0次下载
- 照明自动化开源分享 0次下载
- 家庭自动化系统开源分享 0次下载
- 家庭自动化开源分享 0次下载
- 自动化PCB开源设计 1次下载
- 团标《广州市智慧灯杆(多功能杆)系统技术及工程建设规范》
- 多功能直流稳压系统设计 3次下载
- 批生产卫星的桌面电接口自动化测试系统综述 14次下载
- 基于DSP的变电站综合自动化控制系统 22次下载
- 楼宇自动化--空调系统自动化原理(第3章) 0次下载
- 自动化监控系统在罐区中的应用The Application 18次下载
- 自动化仿真系统搭建实践 400次阅读
- 自动化控制系统的基本知识 1058次阅读
- 过程自动化控制和运动自动化控制的原理详解 671次阅读
- Selenium在自动化中有何用处 1100次阅读
- 自动化控制系统中接地的应用和监管解析 1335次阅读
- 基于双口RAM实现铁路牵引变电所自动化系统的设计 713次阅读
- 多功能智能化燃气表的原理及设计 6857次阅读
- 什么是非标自动化设备及分类介绍 4.1w次阅读
- 非标自动化设备的分类 5561次阅读
- ATE自动化测试系统是什么_ATE自动化测试系统介绍 3.1w次阅读
- 自动化领域初涉水 非标自动化和自动化到底有哪些区别? 5613次阅读
- PCB行业新技能:自动化设备+工业机器人 5057次阅读
- 红帽推出Ansible 2.2 :为开源自动化框架奠定牢靠的基础 915次阅读
- 基于GPRS的电网调度自动化系统 1134次阅读
- 电网调度自动化系统结构分析 1472次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多