所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开

智能密码箱

二哈666 二哈666 2020-10-28 20:42:29
projectImage
projectImage

我有很多钱。但是,放在一个抽屉里不保险而藏起来又担心找不到,这可怎么办呢?然后我又在社区上看到了许多制作保险箱的于是我也想制作一个。接下来就开始找材料。

步骤1 步骤1
准备材料
材料清单 材料清单
1x
OBLOQ - IoT物联网模块
1x
蜂鸣器
1x
显示屏
2x
美丽的数字大按钮( ̄(∞) ̄) 
1x
最重要的主板
1x
模拟角度传感器
1x
舵机
1x
MP3
1x
小喇叭
1x
杜邦线
2x
M3螺丝
1x
RGB彩灯带
1x
激光切割件
1x
对创客的信誉【网上找不到链接就有书代替】
步骤2 步骤2
接线组装

接线图就不需要画了,我就给一个线的连接部分来吧。

物联网模块蓝色接线到D1绿色线接D0。

为了避免出现混接线,MP3使用软串口。绿色的线接D2,蓝色的线接D3。

液晶显示屏接CII

舵机接D3

蜂鸣器接D5

按钮A接D7

按钮B接D8

RGB彩灯带接D6

接好线。把激光切割件。拼成一个木盒子,想办法把元器件放进去,用舵机当锁就可以了。

步骤3 步骤3
编辑程序,调试程序。

这时,简单的图形化代码就出来了。

projectImage

这就是简单的程序,下面的就是代码。【记得用mind﹢里面的手动输入来用】如果不喜欢这样输密码的,最下面的附件里有程序奉上。下载就可以了。

代码 代码
	                    					/*!
 * MindPlus
 * uno
 *
 */
#include <UNO_Obloq.h>
#include <SimpleList.h>
#include <DFRobot_Servo.h>
#include <SoftwareSerial.h>
#include <DFRobot_NeoPixel.h>
#include <DFRobot_SerialMp3.h>
#include <DFRobot_Libraries.h>
#include <DFRobot_LiquidCrystal_I2C.h>

// 动态变量
String             mind_s_a, mind_s_b;
volatile float     mind_n_MiMa, mind_n_ShuLiang, mind_n_my_float_variable;
SimpleList<String> mind_l_MiMa;
// 函数声明
void DF_ChuShiHua();
void DF_yes();
void DF_no();
// 静态常量
const String topics[5] = {"E_eikAtGg","","","",""};
// 创建对象
UNO_Obloq                 olq;
DFRobot_LiquidCrystal_I2C lcd1602;
Servo                     servo_4;
DFRobot_NeoPixel          neoPixel_6;
DFRobot_SerialMp3         serialMp3;
SoftwareSerial            softSerialserialMp3(2, 3);
DFRobot_Tone              DFTone;


// 主程序开始
void setup() {
	servo_4.attach(4);
	DF_ChuShiHua();
}
void loop() {
	mind_n_my_float_variable = (map(analogRead(A0), 0, 1023, 0, 9));
	mind_s_b = (String((String((String(mind_l_MiMa[1-1]).toInt())) + String((String(mind_l_MiMa[2-1]).toInt())))) + String((String(mind_l_MiMa[3-1]).toInt())));
	mind_s_a = (ceil(mind_n_my_float_variable));
	if (digitalRead(8)) {
		lcd1602.print(uint32_t(mind_n_MiMa), uint32_t(1), (String(mind_s_a).toInt()));
		mind_l_MiMa.replace((constrain(mind_n_ShuLiang, 1, 3))-1, mind_s_a);
		mind_n_ShuLiang += 1;
		mind_n_MiMa += 1;
		delay(1000);
	}
	if (digitalRead(7)) {
		if ((((String(mind_s_b).toInt())==123) && (mind_l_MiMa.size()>=3))) {
			DF_yes();
		}
		else {
			DF_no();
		}
	}
	if ((olq.getMessage(olq.topic_0)==String("打开"))) {
		olq.publish(olq.topic_0, "输入密码");
		if ((olq.getMessage(olq.topic_0)==123)) {
			olq.publish(olq.topic_0, "ok");
			DF_yes();
		}
	}
}


// 自定义函数
void DF_ChuShiHua() {
	olq.startConnect(0, 1, "HONOR 20 PRO", "lsr22619730621", "Ve1mB0DGR", "V61ifADMgz", topics, "iot.dfrobot.com.cn", 1883);
	olq.publish(olq.topic_0, "hello");
	mind_l_MiMa.clear();
	lcd1602.clear();
	servo_4.angle(abs(0));
	neoPixel_6.begin(6, 7);
	neoPixel_6.setBrightness(255);
	neoPixel_6.clear();
	neoPixel_6.begin(6, 7);
	mind_n_MiMa = 0;
	mind_n_ShuLiang = 0;
	mind_n_my_float_variable = 0;
	lcd1602.begin(0x20);
	lcd1602.printLine(uint32_t(1), "hello");
	delay(2000);
	lcd1602.clear();
	mind_s_a = "    ";
	mind_s_b = "   ";
	lcd1602.printLine(uint32_t(1), "hello");
	mind_l_MiMa.push_back("      ");
	mind_l_MiMa.push_back("      ");
	mind_l_MiMa.push_back("      ");
}
void DF_yes() {
	serialMp3.begin(&softSerialserialMp3);
	serialMp3.play();
	serialMp3.volume(100);
	serialMp3.playList(1);
	lcd1602.printLine(uint32_t(1), "YES");
	neoPixel_6.setRangeColor(0, 4, 0x00FF00);
	delay(1000);
	neoPixel_6.showRainbow(0, 4, 1, 360);
	DFTone.play(5, 988, 500);
	delay(1000);
	DFTone.play(5, 659, 500);
	delay(1000);
	DFTone.play(5, 622, 500);
	delay(1000);
	DFTone.play(5, 932, 500);
	servo_4.angle(abs(90));
	delay(4000);
	servo_4.angle(abs(0));
	mind_s_a = " ";
	mind_s_b = " ";
	mind_n_MiMa = 0;
	mind_n_ShuLiang = 0;
	lcd1602.clear();
	lcd1602.printLine(uint32_t(1), "hello");
	mind_l_MiMa.clear();
	mind_l_MiMa.push_back("      ");
	mind_l_MiMa.push_back("      ");
	mind_l_MiMa.push_back("      ");
}
void DF_no() {
	serialMp3.begin(&softSerialserialMp3);
	serialMp3.play();
	serialMp3.volume(100);
	serialMp3.playList(1);
	neoPixel_6.setRangeColor(0, 7, 0xFF0000);
	lcd1602.printLine(uint32_t(1), "NO");
	DFTone.play(5, 131, 500);
	delay(1000);
	DFTone.play(5, 131, 500);
	delay(1000);
	DFTone.play(5, 131, 500);
	delay(1000);
	DFTone.play(5, 131, 500);
	lcd1602.clear();
	lcd1602.printLine(uint32_t(1), "hello");
	mind_n_MiMa = 0;
	mind_n_ShuLiang = 0;
	mind_s_a = " ";
	mind_s_b = " ";
	mind_l_MiMa.clear();
	mind_l_MiMa.push_back("      ");
	mind_l_MiMa.push_back("      ");
	mind_l_MiMa.push_back("      ");
}

	                    				
projectImage
附件 附件
Makelog作者原创文章,未经授权禁止转载。
2
1
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
|
[[c.comment_content]]