Advertisement
orborbson

klient-micropython

Nov 13th, 2024
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.17 KB | Source Code | 0 0
  1. import machine, network, socket, time, gc
  2.  
  3. def mrugaj_led(pin, ile_razy, pauza_ms):
  4.     for i in range(ile_razy * 2):
  5.        pin.value(i % 2)
  6.        time.sleep_ms(pauza_ms)
  7.  
  8. def wifi_polacz(led, ssid, haslo):
  9.     print(f'[WIFI]: łączę z "{ssid}"')
  10.     wifi = network.WLAN(network.STA_IF)
  11.     if not wifi.isconnected():
  12.         mrugaj_led(led, 5, 30)
  13.         wifi.active(True)
  14.         wifi.connect(ssid, haslo)
  15.         while not wifi.isconnected():
  16.             time.sleep_ms(200)
  17.             mrugaj_led(led, 5, 30)      
  18.     print(f'[WIFI]: połączono z "{ssid}"')
  19.     return wifi
  20.  
  21. def wifi_rozlacz(wifi):
  22.     time.sleep_ms(500)
  23.     wifi.disconnect()
  24.     wifi.active(False)
  25.     print(f'[WIFI]: rozłączono "{ssid}"')
  26.    
  27. def wyslij_dane(led, ip, port, dane):
  28.     gc.collect()
  29.     s = socket.socket()
  30.     try:
  31.         s.connect((ip, port))
  32.         s.sendall(dane.encode("utf-8"))
  33.     except OSError as e:
  34.         print(f'[BŁĄD]: nie można połączyć z serwerem "{e}"')
  35.     except Exception as e:
  36.         print(f'[BŁĄD]: "{e}"')
  37.     except:
  38.         print('[BŁĄD]: nieokreślony')
  39.     else:
  40.         print(f'[INFO]: wysłano => "{dane}"')
  41.         mrugaj_led(*led)
  42.     finally:
  43.         s.close()
  44.  
  45. def pauza(czas_sek):
  46.     print(f'>>> PAUZA [{czas_sek}] <<<')
  47.     time.sleep(czas_sek)
  48.    
  49. def spij_lekko(czas_sek):
  50.     print('[Zzz]: lightsleep()')
  51.     time.sleep_ms(100)
  52.     machine.lightsleep(czas_sek * 1000)
  53.    
  54. def spij_mocno(czas_sek):
  55.     print('[Zzz]: deepsleep()')
  56.     time.sleep_ms(100)
  57.     machine.deepsleep(czas_sek * 1000)
  58.  
  59. ssid = 'wifi'
  60. haslo = 'XXX'
  61. serwer_ip = '192.168.43.137'
  62. serwer_port = 3000
  63. led = machine.Pin(2, machine.Pin.OUT, value = 1)
  64.  
  65. # wifi test
  66. pauza(1)
  67. wifi = wifi_polacz(led, ssid, haslo)
  68. pauza(5)
  69. wyslij_dane((led, 1, 400), serwer_ip, serwer_port, '> wifi test, dużo danych <\n' + 2000 * '.')
  70.  
  71. # lightsleep test
  72. pauza(5)
  73. wyslij_dane((led, 3, 400), serwer_ip, serwer_port, '> lightsleep() <')
  74. wifi_rozlacz(wifi)
  75. spij_lekko(5)
  76.  
  77. # deepsleep test
  78. wifi = wifi_polacz(led, ssid, haslo)
  79. pauza(5)
  80. wyslij_dane((led, 5, 400), serwer_ip, serwer_port, '> deepsleep() <')
  81. wifi_rozlacz(wifi)
  82. spij_mocno(5)
  83.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement