莲座丛2.0:我们的特斯拉答案



智能家居。真正现代家居的概念,借助技术,一个人可以完全舒适地生活。越来越多的人正在购买交钥匙解决方案。不幸的是(尤其是由于当前的过程),许多这样的工具包大大增加了价格,并且常常变得太昂贵而无法“触及未来”。仍然令人感到欣喜的是,仍有好奇心的人正在开发越来越多的DIY方法来使他们的房屋自动化。

我想向您介绍我在BQ网站上监视的项目。在我看来,“智能家居”一直是一项复杂的技术,一个对工程和电子技术没有深入了解的人甚至不应该介入其中。但事实证明,一切都比较简单。



该项目描述了如何使用arduino兼容板,带有按钮的简单延长线,protocoder和智能手机来使用语音命令打开/关闭灯。基本原理是您使用蓝牙远程连接至开发板,并且通过在智能手机上启动应用程序,可以发出特定命令。但是首先是第一件事。

安装

当然,您需要做的第一件事就是将开发板集成到扩展电缆中。



为此,首先,必须以绝对野蛮的方式拆除同一根延长线。有爱心的西班牙人警告说,在进行这些操作之前,最好将延长线与电源断开。

拆卸延长线后,可以安全地推迟按钮-您将不再需要它。您对插入其中的电线感兴趣-只有两根。它们通常是蓝色和棕色-我们会排斥它们。蓝线应立即焊接并热收缩安装-这些是在任何火腿商店中都可以轻易找到的塑料“管”。必须做到这一点,否则电线的裸露部分可能很快导致项目无法提供的后果。

第二根导线无需焊接。在那里,您将拥有棕色电线的两端。它们需要安装在与Arduino兼容的继电器中。来自电源线的一端安装在中央端子C中。有了她,你不会输,她在中间。从“插座”引出的电线连接到NO端子(常开)。如果您的继电器没有标签,请在端子朝下的情况下旋转它。左边是您需要的那个。

如果一切正确,现在从内部看您的延长线是这样的:



之后,可以通过首先将中继线穿过按钮左侧的孔将电路板连接起来,从而“闭合”延长线。内部的操纵已结束。



现在,您需要安装电路板本身。在示例中,使用bq ZUM,在这种情况下,其基本区别是集成的蓝牙模块。但是,ZUM可以替换为另一块板,例如Freeduino Uno。但随后您将另外需要缺少的模块。

要将电子设备牢固地连接到延长线上,您还需要在3D打印机上打印的零件。除了用于板子的小型平台之外,许多零件还包括用于电源模块的容器,该模块用于安装电池。当然,借助附加的电子设备,您可以通过延长线为电路板供电,但是不幸的是,没有考虑此示例。



最终组装好所有电子设备之后,我们进行安装。最终结果看起来不错,但是软件部分仍然存在。

Protocoder。

Protooder是一个编程环境+ JavaScript框架,用于快速构建可在Android设备上使用的原型。安装非常简单。



西班牙人已将该项目的草图上传给公众,因此无需进行任何编程。在移动屏幕上,该应用程序如下所示:



不要被外来非英语单词吓到,在源代码中,您可以将标签更改为所需的任何内容。在应用程序中,我们看到三个按钮。它们的含义如下:

Conectar蓝牙 -您可能会猜到,通过按此按钮,您可以通过Protocoder连接到所需的蓝牙设备。在我们的例子中,该设备是一块板;

Desconectar-因此,这是沟通中断。考虑到以下事实,这是一个非常有用的功能:建立连接后,您无法更改可编程板的代码;
哈伯拉尔 -“说话。”通过单击此按钮,您将打开谷歌的常规语音输入服务。通过按下此按钮,您可以“输入”命令;



这是Protocoder和您的智能手机的代码:

var bluetoothOn=0;

ui.addButton("Conectar bluetooth", 10, 150, function() {
    network.connectBluetoothSerialByUi(function(m, data) {
        txt.text(data + "\n");
    });
    bluetoothOn=1;
})

ui.addButton("Desconectar", 380, 150, function() {
    network.disconnectBluetooth();
})


ui.addButton("Hablar", 280, 550, function() {
    media.startVoiceRecognition(function(text) { 
        console.log(text);
        if (bluetoothOn==1) {
            if(text=="enciende") network.sendBluetoothSerial("=on+");
            if(text=="apaga") network.sendBluetoothSerial("=off+");
            if(text=="parpadea cada segundo") network.sendBluetoothSerial("=1+");
            if(text.substring(0,13)=="parpadea cada" && text.substring(14,21)!="segundo" ) network.sendBluetoothSerial("="+text.split(" ")[2]+"+"); 
        }
    });
})


仔细看看他。您会在第19、20和21行找到诸如enciende(“打开”),apaga(“兑换”)和parpadea cada segundo(“每秒眨眼”)之类的单词。如果您不想训练西班牙语,则应将这些单词替换为更熟悉的单词。不难猜测每个团队的工作。

现在,您的手机可以加入董事会并对其发出命令。但是她自己还无法感知它们-她还需要编程。

首先,如果你打算使用一个西班牙语源,确保交换机连接到主板的正确引脚:



说服?然后是时候填写代码了。这是使用Arduino IDE完成的。这是代码:

String inString ="";

int pinRele=7;

void setup() {
	Serial.begin(19200);
	Serial.flush();
	pinMode(pinRele, OUTPUT);
	pinMode(13, OUTPUT);
}

void readFromAndroid(){
	char inChar;
	while(Serial.available()>0){
		inChar =(char) Serial.read();
		Serial.flush();
		if (inChar=='='){
			inString="";
		}
		else if(inChar!='+'){
			inString+=inChar;
		}
	}
}

void writeData(){
	if (inString=="on")	{
		digitalWrite(13, HIGH);
		digitalWrite(pinRele, HIGH);}
	else if (inString=="off")	{
		digitalWrite(13, LOW);	
		digitalWrite(pinRele, LOW);}
	else if (inString.toInt()){
		digitalWrite(13, HIGH);
		digitalWrite(pinRele, HIGH);
		delay(inString.toInt() *1000 );
		digitalWrite(13, LOW);	
		digitalWrite(pinRele, LOW);
		delay(inString.toInt() *1000 );
	}
}


void loop() {
	if (Serial.available()>0){
		readFromAndroid();
	}
	writeData();
}


重要的一点。如果不使用bq ZUM板,则很有可能以不同的速度安装了蓝牙模块。然后,您需要替换该行:
Serial.begin(19200);


例如:
Serial.begin(9600);


互联网上还有足够的示例说明如何独立更改蓝牙模块本身的数据传输速度。

因此,在智能手机和主板上都安装了程序之后,我们的项目就完成了。是时候该拿起新电池了,将延长线连接到网络,再连接到网络上,例如灯。您最终应该得到什么?演示-视频中:



当然,使用语音命令激活开/关还不是智能家居。但是最主要的是想法。想法是,借助DIY项目,任何人都可以轻松地呆在自己的杰克身上,杰克将盖房。非常聪明的家。

PS 与项目文件的链接
PSS希望Elon Musk能够看到文字,并以400 tysjach dollarov的价格将我们全部购买给Tesla。Spasibo!

Source: https://habr.com/ru/post/zh-CN390045/


All Articles