6804| 7
|
[项目] 比赛的作品:水位检测站(上) |
半年一度的B2(创科马拉松)项目开始啦! 和我的队友商量了差不多两小时(主题是协作机器人) 简单来说,就是能帮助人类的工业,农业,或医学等领域 我和队友商量,可实现的功能有: 第一,可以测量水位是否有异常 第二,如果发现有人再水里游泳,警报上岸 第三,还可以响铃人们撤离 第四,可以通过网络上报手机里,提醒撤离大概是这样了 目前没有外壳,请看下期,所以别叫我发照片了()() 下面就开工 准备的材料: 1个UNO主控板 1个cld液晶显示屏 1个obloq模块 1个蜂鸣器 1个人体红外释热传感器 1个土壤湿度传感器(别问我为什么要用它) 我们先把lcd显示屏安装在i2c串口,如果0x20的i2c地址不行,那么试试0x27的i2c地址,如果还是不行,那就再试试0x3F的i2c地址,如果还是不行,那就调cld显示屏上的编码器,调到有文字为止,如果还是不行,没有办法,找商家问问 土壤湿度传感器是用来测量水位的,别说我开完笑,你烧下着个代码你就知道了(记得打开串口输出) 对了,土壤湿度传感器要接A0接口,不然会没有输出 void setup() { Serial.begin(9600); } void loop() { Serial.println(analogRead(A0)); } 下面就初始化obloq吧!(代码如下) #include <UNO_Obloq.h> // 静态常量 const String topics[5] = {"","","","",""}; // 创建对象 UNO_Obloq olq; void setup() { olq.startConnect(0, 1, "", "", "", "", topics, "iot.dfrobot.com.cn", 1883); } void loop() { } 注意:空的地方要填自己的网络名称和密码,还有你的帐号id和pwd(硬串口还是软串口你自选) 流程图: 有了流程图,就简单多了 代码的程序: /*! * MindPlus * uno * */ #include <UNO_Obloq.h> #include <SoftwareSerial.h> #include <DFRobot_Libraries.h> #include <DFRobot_LiquidCrystal_I2C.h> // 动态变量 volatile float mind_n_ShangShengZhiShu, mind_n_DengDai; // 静态常量 const String topics[5] = {"Py23LWp7g","","","",""}; // 创建对象 DFRobot_LiquidCrystal_I2C lcd1602; UNO_Obloq olq; SoftwareSerial softSerial(2, 3); DFRobot_Tone DFTone; // 主程序开始 void setup() { Serial.begin(9600); lcd1602.begin(0x27); lcd1602.clear(); softSerial.begin(9600); olq.startConnect(&softSerial, "KevinMobile", "15819779550", "T-NGaECnR", "TaHMaEj7gz", topics, "iot.dfrobot.com.cn", 1883); } void loop() { Serial.println(analogRead(A0)); if ((analogRead(A0)<=300)) { lcd1602.printLine(uint32_t(1), "Wate level:normal"); Serial.println(analogRead(A0)); } else { lcd1602.printLine(uint32_t(1), "Wate level:abnorma"); Serial.println(analogRead(A0)); DFTone.play(A1, 262, 500); DFTone.play(A1, 880, 500); mind_n_ShangShengZhiShu += 1; } if ((digitalRead(13)==1)) { lcd1602.printLine(uint32_t(2), "Someone drowned"); } if ((digitalRead(13)==0)) { lcd1602.printLine(uint32_t(2), " "); } if ((mind_n_DengDai==30)) { mind_n_DengDai = 0; if ((analogRead(A0)<300)) { olq.publish(olq.topic_0, "目前水位没有危险"); } else { olq.publish(olq.topic_0, (String((String("目前水位是") + String(analogRead(A0)))) + String(",请注意撤离"))); } } mind_n_DengDai += 1; delay(1000); } 好了,本帖今天结束了,我们明天再见 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed