# This file is executed on every boot (including wake-boot from deepsleep) #import esp #esp.osdebug(None) import os, machine #os.dupterm(None, 1) # disable REPL on UART(0) import gc #import webrepl #webrepl.start() gc.collect() import network import time from umqtt.simple import MQTTClient from machine import Pin # Konfiguracja połączenia WiFi SSID = 'Twoje WiFi' PASSWORD = 'Hasło WiFi' # Konfiguracja MQTT MQTT_BROKER = 'broker.hivemq.com' CLIENT_ID = 'master_esp8266' TOPIC = b'led_state' # Temat komunikacji # Globalne zmienne client = None # Połączenie z WiFi def connect_wifi(): wlan = network.WLAN(network.STA_IF) wlan.active(True) if not wlan.isconnected(): print('Connecting to WiFi...') wlan.connect(SSID, PASSWORD) while not wlan.isconnected(): time.sleep(0.5) print('WiFi connected', wlan.ifconfig()) # Połączenie z MQTT def connect_mqtt(): global client client = MQTTClient(CLIENT_ID, MQTT_BROKER) client.connect() print('Połączono z MQTT Brokerem') # Główna pętla def main(): global client connect_wifi() # Połącz z WiFi connect_mqtt() # Połącz z MQTT Brokerem # Konfiguracja przycisku button1 = Pin(14, Pin.IN, Pin.PULL_UP) # Przycisk na GPIO0 (D5) button2 = Pin(2, Pin.IN, Pin.PULL_UP) # Przycisk na GPIO0 (D4) button3 = Pin(12, Pin.IN, Pin.PULL_UP) # Przycisk na GPIO0 (D6) button4 = Pin(13, Pin.IN, Pin.PULL_UP) # Przycisk na GPIO0 (D7) button5 = Pin(0, Pin.IN, Pin.PULL_UP) # Przycisk na GPIO0 (D5) #button6 = Pin(16, Pin.IN, Pin.PULL_UP) # Przycisk na GPIO0 (D5) while True: if button4.value() == 0 and button1.value() == 0: # Przycisk wciśnięty print("Przycisk wciśnięty,skręt w prawo...") client.publish(TOPIC, b'ON6') # Wyślij wiadomość ON if button3.value() == 0 and button1.value() == 0: # Przycisk wciśnięty print("Przycisk wciśnięty,skręt w lewo...") client.publish(TOPIC, b'ON5') # Wyślij wiadomość ON elif button1.value() == 0 and button3.value() == 1 and button4.value() == 1: # Przycisk wciśnięty print("Przycisk wciśnięty, do przodu...") client.publish(TOPIC, b'ON1') # Wyślij wiadomość ON elif button2.value() == 0: # Przycisk wciśnięty print("Przycisk wciśnięty, do tyłu...") client.publish(TOPIC, b'ON2') # Wyślij wiadomość ON elif button3.value() == 0 and button1.value() == 1: # Przycisk wciśnięty print("Przycisk wciśnięty,obrót w lewo...") client.publish(TOPIC, b'ON3') # Wyślij wiadomość ON elif button4.value() == 0 and button1.value() == 1: # Przycisk wciśnięty print("Przycisk wciśnięty,obrót w prawo...") client.publish(TOPIC, b'ON4') # Wyślij wiadomość ON elif button5.value() == 0: # Przycisk wciśnięty print("Przycisk wciśnięty, sztuczka...") client.publish(TOPIC, b'ON7') # Wyślij wiadomość ON ##elif button6.value() == 0: # Przycisk wciśnięty #print("Przycisk wciśnięty, w prawo...") #client.publish(TOPIC, b'ON8') # Wyślij wiadomość ON elif button1.value() == 1 and button2.value() == 1 and button3.value() == 1 and button4.value() == 1 and button5.value() == 1: # Przycisk puszczony print("Przycisk puszczony, stój...") client.publish(TOPIC, b'OFF') # Wyślij wiadomość OFF time.sleep(0.1) # Krótka pauza if __name__ == '__main__': main()