import network
import time
from umqtt.simple import MQTTClient
from rtttl import RTTTL
from machine import Pin, PWM
import time
MQTT_CLIENT_ID = "micropython-music"
MQTT_BROKER = "test.mosquitto.org"
MQTT_PORT = 1883
MQTT_USER = ""
MQTT_PASSWORD = ""
MQTT_TOPIC = "dimasik"
print("Connecting to WiFi", end="")
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
sta_if.connect('Wokwi-GUEST', '')
while not sta_if.isconnected():
print(".", end="")
time.sleep(0.1)
print(" Connected!")
print("Connecting to MQTT server... ", end="")
client = MQTTClient(MQTT_CLIENT_ID, MQTT_BROKER, user=MQTT_USER, password=MQTT_PASSWORD)
client.connect()
print("Connected!")
# Определение пина и создание экземпляра PWM
buzzer_pin = Pin(25, Pin.OUT)
buzzer_pwm = PWM(buzzer_pin)
buzzer_pwm.freq(3000) # Устанавливаем начальную частоту
# Пример мелодии в формате RTTTL
melody = "BarbieGirl:d=4,o=5,b=125:8g#,8e,8g#,8c#6,a,p,8f#,8d#,8f#,8b,g#,8f#,8e,p,8e,8c#,f#,c#,p,8f#,8e,g#,f#"
# Создание объекта RTTTL
tune = RTTTL(melody)
# Воспроизведение мелодии
for freq, duration in tune:
# Установка частоты буззера
if freq==0:
freq = 1
buzzer_pwm.freq(freq)
print(freq)
# Включение буззера
buzzer_pwm.duty(512)
# Ожидание указанной длительности ноты
time.sleep(duration*0.001)
# Выключение буззера
buzzer_pwm.duty(0)
# Выключение буззера после воспроизведения
buzzer_pwm.duty(0)