Skip to content

Instantly share code, notes, and snippets.

View rafalw's full-sized avatar
💭
I may be slow to respond.

Rafał Wileczek rafalw

💭
I may be slow to respond.
View GitHub Profile
@rafalw
rafalw / smart_home_relay.ino
Created February 5, 2020 18:05
Arduino + MQTT + gBridge.io + Google Home = Smart Home (cz. 1 – sterowanie przekaźnikiem)
/*
SmartHome by Rafał ;)
Przełącznik (przekaźnik) sterowany przez WiFi (MQTT, Google Home).
Cechy:
– obsługa protokołu MQTT (biblioteka PubSubClient: https://pubsubclient.knolleary.net/);
– podłączenie do Google Home realizowane przez gBridge (https://gbridge.kappelt.net/device) z wykorzystaniem lokalnego mostka
(RaspberryPi 1 + Mosquitto 1.4) ze względu na brak obsługi TLS w Arduino (patrz: dokumentacja gBridge);
– platforma sprzętowa: Arduino UNO + Ethernet Shield (W5100) + moduł DIY z przekaźnikiem RM96P-5-W;
@rafalw
rafalw / dnsomatic-updates.py
Created November 8, 2019 14:57
Aktualizacja zewnętrznego IP w serwisie dnsomatic.com
import urllib.parse
from io import BytesIO
from sys import argv
from pycurl import Curl, error
# Pozyskiwanie zewnętrznego adresu IP
# Adres użyty jako parametr domyślny zwraca wiersz CSV – drugie pole to nasz zewnętrzny IP
def get_ip(url_api = 'http://ip4only.me/api/'):
my_ip = BytesIO()
@rafalw
rafalw / mac-vendor.py
Created November 8, 2019 14:54
Informacje o producencie karty sieciowej wg. adresu MAC
import urllib.parse
from io import BytesIO
from sys import argv
from pycurl import Curl, error
# Pozyskiwanie danych producenta karty sieciowej o wskazanym adresie sprzętowym MAC
def get_mac_vendor(mac_address, url_api = 'https://macvendors.co/api/', result_form = '/csv'):
vendor_result = BytesIO()
@rafalw
rafalw / what-is-my-external-ip.py
Created November 8, 2019 14:51
Pozyskiwanie zewnętrznego adresu IP
from pycurl import Curl
from pycurl import error
from io import BytesIO
# Pozyskiwanie zewnętrznego adresu IP
# Adres użyty jako parametr domyślny zwraca wiersz CSV – drugie pole to nasz zewnętrzny IP
def get_ip(url_api = 'http://ip4only.me/api/'):
my_ip = BytesIO()
c = Curl()
c.setopt(c.URL, url_api)
@rafalw
rafalw / czas_2.ino
Created March 20, 2019 12:06
Zegar czasu rzeczywistego – wersja 2. Konieczna modyfikacja!
#include <LiquidCrystal.h>
#include <Timer.h>
#define N 2
#define S 1000
Timer t;
int sekundy = 0;
int minuty = 0;
int godziny = 0;
@rafalw
rafalw / czas.ino
Last active February 27, 2019 14:39
Ćwiczenie 1: pomiar czasu (program do modyfikacji – docelowo ma współpracować z LCD 16x2)
#include <Timer.h>
#define N 2
#define S 1000
Timer t;
int sekundy = 0;
int minuty = 0;
int godziny = 0;
@rafalw
rafalw / dnsomatic-update.py
Last active February 25, 2019 19:01
Aktualizacja pozyskiwanego dynamicznie zewnętrznego adresu IP przez serwis dnsomatic.com należący do OpenDNS (CISCO)
from sys import argv
from io import BytesIO
from pycurl import Curl
from pycurl import error
import urllib.parse
# Pozyskiwanie globalnego adresu IP
# Adres użyty jako parametr domyślny zwraca wiersz CSV – drugie pole to nasz globalny IP
def get_ip(url_api = 'http://ip4only.me/api/'):
my_ip = BytesIO()
@rafalw
rafalw / flying_monkey.ino
Last active March 4, 2020 12:49
"Latająca małpa" w wersji Arduino + LCD 16*2
#include <LiquidCrystal.h>
#define CZAS 100
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void show_monkey(byte x, byte y, int time_disp) {
lcd.setCursor(x, y);
lcd.print("@");
@rafalw
rafalw / delta_x.py
Created October 24, 2018 16:30
Intensywny kurs Pythona – dla uczniów technikum, informatyka rozszerzona (cz. 2)
#!/usr/bin/python3
# Równianie kwadratowe – wersja 1, prosta
from math import sqrt
print("Rozwiązywanie równiania kwadratowego")
a = float(input("Podaj wartość a: "))
b = float(input("Podaj wartość b: "))
c = float(input("Podaj wartość c: "))
@rafalw
rafalw / kurs_01.py
Last active October 24, 2018 16:36
Kurs Pythona – cz.1
#-*- coding: utf-8 -*-
# – powyższy wiersz dodajemy, gdy chcemy wymusić na Pythonie przetwarzanie pliku w określonej stronie kodowej;
# koniecznie trzeba go dodać w programach dl Pythona 2; opcjonalny dla Pythona 3 – domyślne kodowanie w tej wersji
# to właśnie UTF-8.
# Lista
filmy = ['Wejście smoka','Władca pierścieni','Hobbit','Underworld','Nieustraszeni zabójcy wampirów','Dolce Vita']
# Wypisanie zawartości listy
for tytul in filmy: