Всем привет. Хочу заранее извинится за корявось решений, кода и изготовления. Во-первых, у меня очень кривые руки, во-вторых, стараюсь сделать с минимальными усилиями и из того, что есть под рукой, — главное чтоб работало стабильно и выполняло нужные функции.
Цель: тренируюсь регулярно на велосипеде, а зимой тренировки проходят дома на велостанке (кстати, он тоже у меня самодельный и это другая история) для обдува практически все, кто так тренируется, используют вентилятор.
У меня вот такой, простой напольный с тремя кнопками скорости.
Нашел его схему:
.
Так как опыта работы с ассинхроными двигателями у меня нет и что будет при одновременном включении двух разных обмоток одновременно я решил не рисковать и не допускать такого поэтому реле подключил следующим образом:
Одно реле включает вентилятор второе переключает скорости.
Получается использую две скорости первую и третью и остается возможность использования вентилятора в ручном режиме на второй скорости.
Блок реле использовал такой:
Контроллер использовал 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();
}
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)
К сожалению, не доступен сервер mySQL