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 / blynk_relay_nodemcu.lua
Created February 6, 2020 21:22
ESP8266 (ESP-01, NodeMCU 1.5.4.1-final) + Blynk + IFTTT = Smart Home (cz. 3 – ciągle jeszcze przekaźnik...)
local Blynk = require("bl_nodemcu")
local config = {
auth = "XXXXXXXXXXXXXXXXXXXXXXXXXXXX", -- token aplikacji
ssid = "xxxxxxxxxxxxxxxxxxxx", -- SSID sieci, z którą łączy się sterownik
pwd = "xxxxxxxxxxxxxxxxxxxx", -- hasło do sieci WiFi
}
blynk = Blynk.new(config.auth, {
heartbeat = 10, -- default h-beat is 30
@rafalw
rafalw / blynk_relay.ino
Created February 6, 2020 21:05
Arduino + Blynk + lokalny serwer na RaspberryPi = Smart Home (cz. 2 – ciągle sterowanie przekaźnikiem)
/*************************************************************
SmartHome by Rafał ;)
Sterowanie przekaźnikiem z wykorzystaniem:
– Arduino UNO
– Ethernet Shield W5100
– modułu DIY z przekaźnikiem RM96P-5-W
– dwukolorowej diody świecącej (do sygnalizacji stanu połączenia)
Kod mocno bazujący na przykładzie ze strony projekytu Blynk,
@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 / 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: