爱丽丝梦游仙境

你好。对于笨拙的解决方案,代码和做工,我要提前道歉。首先,我的手非常弯曲,其次,我尝试用最少的精力并从现有的方法上做到这一点-主要是它稳定地工作并执行必要的功能。



目的:我定期骑自行车训练,而在冬季,我在家中用自行车架子进行训练(顺便说一句,我也有自制的东西,这是另外一回事了),几乎所有这样训练的人都用风扇吹。



我有一个带有三个速度按钮的简单户外帐篷。







我发现了他的计划:







由于我没有异步电动机的经验,并且当同时打开两个不同的绕组时会发生什么情况,因此我决定不冒险也不容许这样做,所以我按如下方式连接继电器:







一个继电器打开风扇,第二个开关调速。



事实证明,我使用两种速度,一种是第一速度,另一种是第三速度,并且仍然可以以第二速度在手动模式下使用风扇。



继电器块使用以下命令:







控制器使用ESP8266:我







在Arduino IDE中对其进行了刷新。



最简单的代码:



#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

#define OUTPUT1  5
#define OUTPUT2  0


char auth[] = "           Blynk";

char ssid[] = "    ";
char pass[] = "    ";

BLYNK_WRITE(V1)
{
  int pinValue = param.asInt(); // assigning incoming value from pin V1 to a variable
digitalWrite(OUTPUT1, pinValue);
  // process received value
}
BLYNK_WRITE(V2)
{
  int pinValue = param.asInt();
  digitalWrite(OUTPUT2, pinValue);
}

void setup()
{

pinMode(OUTPUT1, OUTPUT);
pinMode(OUTPUT2, OUTPUT);
digitalWrite(OUTPUT1, HIGH );
digitalWrite(OUTPUT2, HIGH );

  Blynk.begin(auth, ssid, pass);
  // You can also specify server:

}

void loop()
{
  Blynk.run();
}


最主要的是获得您的代码char auth [] =“这是您在Blynk上注册后将发送到您的邮件的授权代码”;

要进行控制,您可以使用链接

blynk-cloud.com “您的代码授权” /更新/ V1?值= 1禁用第一个中继

blynk-cloud.com “您的代码授权” /更新/ V1?值= 0以

类似地为第二个

blynk- cloud.com “您的授权代码” /更新/ V2?值= 1 blynk-cloud.com “您的授权代码” /更新/ V2?值= 0



最初,我在家中使用此设备以及其他几个设备,以通过Internet轻松控制各种设备。此外,通过“ Brownie Kuzya”技能,这些链接可以与Alice一起使用,以正确启用和禁用各种设备。



事实证明,如果您停在这个级别,则可以制作一个带有爱丽丝的智能插座,零件成本为250卢布,它将有2个通道,并且MK上会有很多免费的结论。



我们继续。风扇运行,打开,关闭等。但是我想要更多的自动化。最初,我考虑了从功率传感器直接将数据接收到微控制器的方向。我什至开始研究ANT +协议,但ANT +模块似乎出现了困难,它们似乎正在销售中,但是有些昂贵,直到我开始购买时才偶然发现偶然发现了一个可以从我的帐户接收数据的zwift-client python应用程序。要安装$ pip install zwift-client,我了解了一些有关python的知识,并学习了如何读取数据,并编写了一个小脚本:



import time
import requests
from zwift import Client
username = '  '
password = ' '
player_id =    

client = Client(username, password)
world = client.get_world(1)
world.player_status(player_id)
i=1
change1=1
change2=1
powVKL=185

venrabota0='https://blynk-cloud.com//update/V1?value=1'
venspeed0='https://blynk-cloud.com//update/V1?value=0'
venrabota1='https://blynk-cloud.com//update/V2?value=0'
venspeed1='https://blynk-cloud.com//update/V2?value=1'
requests.get(venrabota0, verify=False)
requests.get(venspeed0, verify=False)
print(' ')   
while i<10:
    poweruser=world.player_status(player_id).power
    cadenceuser=world.player_status(player_id).cadence
    heartrateuser=world.player_status(player_id).heartrate
    speeduser=world.player_status(player_id).speed//1000000
    print(': '+str(poweruser))
    print(': '+str(cadenceuser))
    print(': '+str(heartrateuser))
    print(': '+str(speeduser))
    
    if change1==1 and speeduser>1: 
        requests.get(venrabota1, verify=False)
        change1=0
    if change1==0 and speeduser<1: 
        requests.get(venrabota0, verify=False)
        change1=1   
        
    if change2==1 and poweruser>powVKL: 
        requests.get(venspeed1, verify=False)
        change2=0
    if change2==0 and poweruser<=powVKL: 
        requests.get(venspeed0, verify=False)
        change2=1   
            
    time.sleep(1) # Delay for 1 minute (60 seconds)


它读取我的数据,开始运动时,风扇打开,而功率大于185 W时,打开的速度增加。



原则上,就像一切。实际上,解决方案还没有完成,还有很多想法需要进一步开发和开发(进入草稿时改变风扇速度),以及在旋转刀片上显示有关其参数,功率节奏的信息,直接从时钟控制此设备和其他设备等信息。 .d。永无止境。



All Articles