Kipas untuk zwift dengan alice

Halo. Saya ingin meminta maaf sebelumnya atas solusi, kode, dan pengerjaan yang ceroboh. Pertama, saya memiliki tangan yang sangat bengkok, dan kedua, saya mencoba melakukannya dengan sedikit usaha dan dari apa yang ada - yang utama adalah ia bekerja secara stabil dan melakukan fungsi yang diperlukan.



Tujuan: Saya berlatih secara teratur dengan sepeda, dan di musim dingin, pelatihan berlangsung di rumah di rak sepeda (ngomong-ngomong, saya juga memilikinya buatan sendiri, dan itu cerita lain), hampir semua orang yang berlatih seperti ini menggunakan kipas angin untuk meniup.



Saya punya ini, outdoor sederhana dengan tiga tombol kecepatan.







Saya menemukan skema nya:





.

Karena saya tidak memiliki pengalaman dengan motor asinkron dan apa yang akan terjadi jika dua belitan berbeda secara bersamaan dihidupkan pada saat yang sama, saya memutuskan untuk tidak mengambil risiko dan tidak mengizinkannya, jadi saya menghubungkan relai sebagai berikut:







Satu relai menyalakan kipas, yang kedua mengalihkan kecepatan.



Ternyata saya menggunakan dua kecepatan, yang pertama dan ketiga, dan kipas tetap dapat digunakan dalam mode manual pada kecepatan kedua.



Blok relai menggunakan yang berikut:







Pengontrol menggunakan ESP8266: Saya mem-flash-







nya di Arduino IDE.



Kode paling sederhana:



#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();
}


Hal utama adalah mendapatkan kode Anda char auth [] = "Ini adalah kode otorisasi Anda yang akan dikirim ke email Anda setelah mendaftar di Blynk";

untuk kontrol, Anda dapat menggunakan tautan

blynk-cloud.com 'otorisasi kode Anda' / update / V1? value = 1 untuk menonaktifkan relai pertama

blynk-cloud.com 'otorisasi kode Anda' / update / V1? value = 0 untuk mengaktifkan relai pertama dengan

cara yang sama untuk

blynk- kedua cloud.com 'kode otorisasi Anda' / update / V2? value = 1 blynk-cloud.com 'kode otorisasi Anda' / update / V2? value = 0



Awalnya, saya menggunakan perangkat ini dan beberapa perangkat lainnya di rumah untuk memudahkan kontrol berbagai perangkat melalui Internet. Juga, tautan ini dapat digunakan dengan Alice melalui keterampilan "Brownie Kuzya" yang berfungsi dengan benar untuk mengaktifkan dan menonaktifkan berbagai perangkat.



Ternyata, jika Anda berhenti di level ini, Anda dapat membuat soket pintar dengan alice dengan biaya 250 rubel untuk suku cadang dan itu akan memiliki 2 saluran dan akan ada banyak kesimpulan gratis di MK.



Kami melanjutkan lebih jauh. Kipas angin bekerja, menyala, mati, dll. tapi saya menginginkan lebih banyak otomatisasi. Awalnya, saya berpikir untuk menerima data langsung ke mikrokontroler dari sensor daya. Saya bahkan mulai mempelajari protokol ANT +, tetapi kesulitan muncul dengan modul ANT +, tampaknya dijual, tetapi beberapa mahal, sampai saya mendapatkan tangan saya pada pembelian dan kemudian saya secara tidak sengaja menemukan aplikasi python zwift-client yang dapat menerima data dari akun saya. Untuk menginstal $ pip install zwift-client saya membaca sedikit tentang python dan belajar cara membaca data saya, menulis skrip kecil:



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)


Ini membaca data saya dan ketika mesin bergerak, kipas menyala, dan ketika daya lebih dari 185 W, kecepatan yang ditingkatkan diaktifkan.



Pada prinsipnya, seperti semuanya. Faktanya, solusinya belum selesai, masih banyak ide untuk pengembangan lebih lanjut dan untuk game (mengubah kecepatan kipas saat memasuki draft) dan ide untuk menampilkan informasi tentang parameternya, kecepatan irama daya pada bilah yang berputar, mengontrol ini dan perangkat lain langsung dari jam, dll. .d. tidak akan pernah ada akhir.



All Articles