アリスとzwiftのファン

こんにちは。不器用なソリューション、コード、仕上がりについて、事前にお詫び申し上げます。第一に、私は非常に曲がった手があり、第二に、最小限の労力で、手元にあるものからそれをやろうとしています-主なことは、それが安定して動作し、必要な機能を実行することです。



目的:私は定期的に自転車でトレーニングを行っていますが、冬には自宅の自転車ラックでトレーニングを行います(ちなみに、自家製でもあります。これは別の話です)。このようにトレーニングするほとんどの人はファンを使って吹きます。



私はこれを持っています、3つのスピードボタンを備えたシンプルな屋外のもの。







私は彼の計画を見つけました:







非同期モーターの経験がなく、2つの異なる巻線を同時にオンにするとどうなるかという経験がないので、リスクを冒さずに許可しないことにしたので、次のようにリレーを接続しました







。1つのリレーがファンをオンにし、2番目のリレーが速度を切り替えます。



私は1番目と3番目の2つの速度を使用していることがわかりましたが、2番目の速度で手動モードでファンを使用することは引き続き可能です。



リレーブロックは以下を







使用しました:コントローラーはESP8266を使用しました:ArduinoIDEで







フラッシュしていました。



最も単純なコード:



#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 'コード認証' / update / V1?value = 1を使用して、最初のリレーを無効にします

blynk-cloud.com 'コード認証' / update / V1?value = 0を使用

して、2番目の

blynkに対して同様に最初のリレーを有効にします- cloud.com '認証コード' / update / V2?value = 1 blynk-cloud.com '認証コード' / update / V2?value = 0



当初、私はこのデバイスと自宅でいくつかを使用して、インターネットを介してさまざまなデバイスを簡単に制御していました。また、これらのリンクは、「Brownie Kuzya」が正しく機能してさまざまなデバイスを有効または無効にするスキルを通じて、Aliceで使用できます。



このレベルで停止すると、パーツ用に250ルーブルのコストでアリスを使用してスマートソケットを作成できます。その中に2つのチャネルがあり、MKには多数の無料の結論があります。



さらに続けます。ファンが作動、オン、オフなど。しかし、私はさらに自動化したかったのです。最初は、パワーセンサーからマイクロコンピューターに直接データを受信する方向を考えていました。 ANT +プロトコルの研究も始めましたが、ANT +モジュールで問題が発生し、販売されているようですが、購入するまでは高価なものもあり、アカウントからデータを受信できるzwift-clientpythonアプリケーションに偶然出くわしました。 $ 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