Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Własny serwer Blynk za 12zł

error105 30 Jul 2019 14:52 14280 34
Optex
  • Własny serwer Blynk za 12zł
    Czym jest tajemniczy Blynk i czemu mielibyśmy się nim zainteresować, a tym bardziej kupować specjalnie dla niego VPSa i bawić się w konfigurację ?
    W skrócie jest to pośrednik w naszym IOT, łączy on nasza aplikacje na telefonie z ESP w naszym domu, a dzięki rozwiązaniu bazującym na VPSie mamy bezpośredni dostęp do ESP z telefonu niezależnie od tego jak, i z czym się łączymy - do tego zyskujemy serwer WWW gdzie możemy nasze wyniki wyświetlać światu/sobie, czy postawić VPNa i dodatkowo zabezpieczyć nasz połączenie z sieci publicznych :)

    Co możemy zrobić z Blynkiem ?
    Od najprostszych zadań typu zapalanie diody telefonem, po dużo bardziej systemu automatyzacji domu (nie lubię określenia inteligentny dom).
    Ja uzywam blynka jako pilota RTV, regulację jasności pomieszczeń i alarm w domu, do tego zdalne zarządzanie samochodem - możliwości ogromne jak widać.
    W czym jest lepszy gorszy od innych ?
    Mamy otwarty serwer, i możliwość wszystkiego napisania pod siebie.
    Gorszy ? Cóż, na początku może wydawać się ciut skomplikowany bo nie ma "gotowy" jako takich.
    Cóż więcej dodać ? Juz się wyprodukowałem, więc zapraszam poniżej do instrukcji na bazie wybranego przeze mnie VPSa (ze względu na cene) - oczywiście opis zadziała na każdym praktycznie systemie z rodziny Debiana (w tym te znane na Raspberry czy Ubuntu) - więc stawiając na Malinkę i nasz internet mamy za darmo :)

    Na początek wybieramy interesujący nas VPS, polecam ten z linku poniżej ze względu na śmieszą wręcz cenę 3$ rocznie bez limitu transferu:
    VPS 256MB
    Własny serwer Blynk za 12zł

    Po kupnie dostaniemy meila z danymi, logujemy się do panelu naszymi danymi na stronie:
    KLIK

    Następnie pobieramy PuttyGen, dzięki któremu wygenerujemy plik do Putty by automatycznie nas logował po połączeniu jako root.
    Po odpalniu PuttyGen klikamy generate i latamy myszką po polu aż pasek postępu się zapełni. Po wygenerowaniu, kopiujemy zawartość czerwonej tabelki do panelu VPSa, w zakładce Update SSH.
    Własny serwer Blynk za 12złWłasny serwer Blynk za 12złWłasny serwer Blynk za 12zł
    Następnie klikamy save private key (zielona ramka PuttyGen), zapisujemy plik, i odpalamy putty podając nasz adres i port, a nastepnie przechodzimy do zakładki w żółtej ramce, i zaznaczamy browse (różowa ramka). Dzięki czemu podczytamy do putty nasz plik by przy logowaniu na roota nie wymagał od nas program hasła.

    Następnie wracamy do strony https://vzcontrol.wishosting.com/ i tworzymy naszą maszynę:
    Własny serwer Blynk za 12złWłasny serwer Blynk za 12zł
    System polecam Debian 8, ze względu na wagę i niskie zapotrzebowanie na zasoby, na czysto 450MB z 40GB.

    No dobra, mamy już system i możliwość logowania, teraz chyba pora na postawienie na tym Blynka :)
    Aktualizujemy system do wersji stable (bo stary nie lubimy starego kernela 2.6 :) ) kolejno:
    Code:
    apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y && apt-get clean && apt-get autoremove -y && apt-get install -y nano apt-utils && reboot

    potem:
    Code:
    sed -i 's/jessie/stretch/g' /etc/apt/sources.list

    Code:
    echo "deb http://ftp.debian.org/debian stretch-backports main" | tee -a /etc/apt/sources.list > /dev/null

    Code:
    apt-get update

    Code:
    apt-get -t stretch-backports upgrade && apt-get -t stretch-backports install linux-image-4.19.0-0.bpo.5-amd64 && reboot


    i na koniec:
    Code:
    apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y && apt-get clean && apt-get install -y openjdk-11-jdk screen && reboot


    Logujemy się jako root na naszej maszynie i tworzymy nowego użytkownika (albo nie, jak kto woli) poleceniem:
    Code:
    adduser blynk


    Logujemy się na użytkownika Blynk i pobieramy najnowszy serwer https://github.com/blynkkk/blynk-server/releases:
    Code:
    wget https://github.com/blynkkk/blynk-server/releases/download/v0.41.8/server-0.41.8.jar

    Code:
    mkdir Blynk

    Tworzymy plik konfiguracyjny, bez niego nie damy rady się połaczyć bo nie wszystkie porty VPS ma otwarte, informacje o otwartych mamy w meilu, musimy zmienić wpisy:
    Code:
    hardware.mqtt.port=8440
    
    http.port=8080
    https.port=9443
    admin.pass=admin

    reszta wdg uznania.
    Code:
    nano Blynk/server.properties

    i wklejamy:
    Spoiler:
    Code:
    #hardware mqtt port
    
    hardware.mqtt.port=8440

    #http, plain web sockets and plain hardware port
    http.port=8080

    #if this property is true csv download url will use port 80 and will ignore http.port
    force.port.80.for.csv=false

    #if this property is true redirect_command will use 80 port and will ignore http.port
    force.port.80.for.redirect=true

    #secured https, web sockets and app port
    https.port=9443

    #address to bind to. by default bounded to all interfaces
    listen.address=

    #by default server uses embedded in jar cert to simplify local server installation.
    #WARNNING DO NOT USE THIS CERTIFICATES ON PRODUCTION OR IN WHERE ENVIRNOMENTS REAL SECURITY REQUIRED.
    #provide either full path to files either use '.' for specifying current directory. For instance "./myfile.crt"
    server.ssl.cert=
    server.ssl.key=
    server.ssl.key.pass=

    #by default System.getProperty("java.io.tmpdir")/blynk used
    data.folder=

    #folder for logs.
    logs.folder=./logs

    #log debug level. trace|debug|info|error. Defines how precise logging will be.
    log.level=info

    #maximum number of devices allowed per account
    user.devices.limit=50

    #maximum number of tags allowed per account
    user.tags.limit=100

    #defines maximum allowed number of user dashboards. Needed to limit possible number of tokens.
    user.dashboard.max.limit=100

    #defines maximum allowed widget size in KBs as json string.
    user.widget.max.size.limit=20

    #user is limited with 100 messages per second.
    user.message.quota.limit=100

    #maximum allowed number of notification queue. Queue responsible for processing email, pushes, twits sending.
    #Because of performance issue - those queue is processed in separate thread, this is required due
    #to blocking nature of all above operations. Usually limit shouldn't be reached.
    notifications.queue.limit=2000

    #Number of threads for performing blocking operations - push, twits, emails, db queries.
    #Recommended to hold this value low unless you have to perform a lot of blocking operations.
    blocking.processor.thread.pool.limit=6

    #this setting defines how often we can send mail/tweet/push or any other notification. Specified in seconds
    notifications.frequency.user.quota.limit=5

    #this setting defines how often we can send webhooks. Specified in miliseconds
    webhooks.frequency.user.quota.limit=1000

    #this setting defines how big could be response for webhook GET request. Specified in kbs
    webhooks.response.size.limit=96

    #maximum size of user profile in kb's
    user.profile.max.size=128

    #number of strings to store in terminal widget
    terminal.strings.pool.size=25

    #number of strings to store in map widget
    map.strings.pool.size=25

    #number of strings to store in lcd widget
    lcd.strings.pool.size=6

    #maximum number of rows allowed
    table.rows.pool.size=100

    #period in millis for saving all user DB to disk.
    profile.save.worker.period=60000

    #period in millis for saving stats to disk.
    stats.print.worker.period=60000

    #max size of web request in bytes, 256 kb (256x1024) is default
    web.request.max.size=524288

    #maximum number of points that are fetched during CSV export
    #43200 == 60 * 24 * 30 - minutes points for 1 month
    csv.export.data.points.max=43200

    #specifies maximum period of time when hardware socket could be idle. After which
    #socket will be closed due to non activity. In seconds. Default value 10 if not provided.
    #leave it empty for infinity timeout
    hard.socket.idle.timeout=10

    #enable DB
    enable.db=false

    #enable raw data storage to DB
    enable.raw.db.data.store=false

    #size of async logger ring buffer. should be increased for loads >2-3k req/sec
    async.logger.ring.buffer.size=2048

    #when true - allows reading worker to trigger hardware even app is offline
    allow.reading.widget.without.active.app=false

    #when enabled server will also store hardware and app IP
    allow.store.ip=true

    #initial amount of energy
    initial.energy=100000

    #ADMINISTRATION SECTION

    admin.rootPath=/admin

    #used for reset password page and certificate generation.
    #by default current server IP is taken. could be replaced with more friendly hostname.
    #it is recommended to override this property with your server IP to avoid possible problems of host resolving
    #server.host=test.blynk.cc

    #used for fallback page for reset user password, in most cases it should be the same as server.host
    #IP is not allowed here, it should be blynk-cloud.com for Blynk app
    #or *.blynk.cc for private servers with own apps
    restore.host=blynk-cloud.com

    product.name=Blynk

    #email used for certificate registration, could be omitted in case you already specified it in mail.properties
    #contact.email=

    #network interface to determine server's current IP.
    #only the first characters of the interface's name are needed.
    #the default setting eth will use the first ethX interface found (i.e. eth0)
    net.interface=eth

    #comma separated list of administrator IPs. allow access to admin UI only for those IPs.
    #you may set it for 0.0.0.0/0 to allow access for all.
    #you may use CIDR notation. For instance, 192.168.0.53/24
    allowed.administrator.ips=0.0.0.0/0,::/0

    # default admin name and password. that will be created on initial server start
    admin.email=admin@blynk.cc
    admin.pass=admin


    i uruchamiamy nasz serwer poleceniem:
    Code:
    screen java -jar server-0.41.8.jar -dataFolder Blynk -serverConfig Blynk/server.properties


    I tyle, od teraz możemy do woli już bawić się Blynkiem, energii nam nie zabraknie :)
    Mam nadzieję że się przyda - do wszelkich projektów.

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    error105
    Level 13  
    Offline 
    error105 wrote 352 posts with rating 119, helped 1 times. Live in city Warszawa. Been with us since 2017 year.
  • Optex
  • #2
    Euzebiusz23091998
    Level 15  
    Z nieba mi ten artykuł spada, nie byłem w stanie sam z tym sobie poradzić i serwerek poszedł w kąt :D dzięki kolego!

    Czy jak będę chciał do tego dorzucić jeszcze VPN-a to trzeba coś konkretnego robić, czy tylko zwykła instalacja?
  • #4
    Sam Sung
    Level 32  
    Jeśli już chcemy "pisać wszystko pod siebie", to czy nie lepiej używać usług chmurzastych jak Firebase i przesyłać sobie dane w ramach darmowego limitu? Bez MQTT i VPN. Z ESP do chmury, a stamtąd już Realtime Database nam zsynchronizuje dane u wszystkich podłączonych klientów.
    Po co kupować VPS i bawić się w administratora systemu na nim?
    Serverless rządzi :)
  • #5
    oskar777

    Level 26  
    Tutaj chodzi o blynka i jego łatwą/ładną wizualizacje danych na telefonie.
    Jedynie co mnie w blynku irytuje to brak zmiany orientacji ekranu.
  • #6
    error105
    Level 13  
    Sam Sung wrote:
    Po co kupować VPS i bawić się w administratora systemu na nim?
    Serverless rządzi

    U mnie tak:
    1. Mam 3G Play I jestem za natem2 więc grać online nie mogę - chyba że VPNem otwieram się na świat przekierowując porty na VPNie i routerze
    2. Na VPSie mam 40GB miejsca, po połączeniu z VPNem mam dostępny dysk sieciowy w każdym miejscu na świecie z każdego podlaczonego urządzenia
    3. Stoi na nim serwer WWW więc dwie moje strony mają hosting w cenie VPSa z backupem co 1 dzień

    Czyli dużo tych zalet jak dla mnie :)
  • #7
    maddol
    Level 5  
    Własny VPS może nie tylko służyć do VPN ale do aplikacji, które tylko działają po linux.
  • Optex
  • #8
    ditomek
    Level 21  
    O Blynku dowiedziałem się z tego artykułu.
    Od razu odwiedziłem kilka innych stron i dowiedziałem się ze dzięki esp w domu już w ramach gotowych przykładów mam możliwość sterowania 4 przekaźnikami.
    A czy można w ramach blynk'a tak zaprogramować to ESP żeby zamiast sterowania pinami wysyłało komendy przez port szeregowy?
    Albo czy można tak zmodyfikować przykład z temperaturami aby do (najlepiej tego samego) ESP wysłać paczkę danych o temperaturach z innego systemu a Blynk będzie je traktował jak dane z czujnika podłączonego bezpośrednio do ESP?
    Rozumiem ze stosowne zmiany trzeba będzie nanieść do kodu w arduino IDE tuż przed wgraniem go do ISP.
    Czy jest to możliwe i czy tak to wygląda?
    Pozdrawiam
  • #9
    error105
    Level 13  
    ditomek wrote:
    A czy można w ramach blynk'a tak zaprogramować to ESP żeby zamiast sterowania pinami wysyłało komendy przez port szeregowy?

    Oczywiscie, po prostu zamiast digitalWrite wstawiasz Serial.println("Test"); nie wiem co chcesz wysłać więc tylko przykład.

    ditomek wrote:
    wysłać paczkę danych o temperaturach z innego systemu a Blynk będzie je traktował jak dane z czujnika podłączonego bezpośrednio do ESP?

    Tak jak powyżej, kwestia zmiany polecenia i bez problemu przejdzie.
  • #10
    khoam
    Level 41  
    ditomek wrote:
    Albo czy można tak zmodyfikować przykład z temperaturami aby do (najlepiej tego samego) ESP wysłać paczkę danych o temperaturach z innego systemu a Blynk będzie je traktował jak dane z czujnika podłączonego bezpośrednio do ESP?


    Chodzi Ci o brydżowanie pomiędzy instancjami blynk?
    http://docs.blynk.cc/#widgets-other-bridge
    https://examples.blynk.cc/?board=ESP8266&shield=ESP8266%20WiFi&example=Widgets%2FBridge
  • #11
    ditomek
    Level 21  
    Chodzi o to ze mam już automatykę domową która sam zbudowałem. Teraz szukam sposobu na wyjście na świat.
    Po kolejnej awarii raspberry zaczynam mieć jej już jej trochę dosyć.
    Wydaje się ze ten blynk to to czego potrzebuję. Problem jest tylko te 2000 energii które jest w standardzie.
    dzięki.
  • #12
    error105
    Level 13  
    To esp01 ludzie na potęgę uzywaja właśnie by wyjść na świat przez WiFi.
    Ty potrzebujesz coś pokroju ESP-07, gdzie pod wejście RX i TX podłączysz to co już masz, a WiFi włączysz się do sieci.
    Pare linijek kodu i będzie ESP przezucalo ci dane z UARTa do serwera blynka/czy zapisywało dobazy danych i tyle.
  • #13
    Fenix1986
    Level 10  
    Chciałbym na tym VPS postawić openhaba ale z tego co widzę to za małe zasoby RAM ? Fajna cena za rok...
  • #14
    maddol
    Level 5  
    Fenix1986 wrote:
    Chciałbym na tym VPS postawić openhaba ale z tego co widzę to za małe zasoby RAM ? Fajna cena za rok...


    Chciałem postawić OpenVPN ale serwer nie daje rady ... też się skusiłem ceną.
  • #16
    Fandango
    Level 12  
    ditomek wrote:
    Problem jest tylko te 2000 energii które jest w standardzie.

    Uruchomiłem własny server Blynka do celów testowych na wykupionym VPS ( do końca roku ).
    Ustawiony limit 100.000 pkt.
    Jeśli jest ktoś chętny wypróbować widgety bez ograniczeń , mogę udostępnić parametry.
    Kontakt przez "prywatną wiadomośc".
  • #17
    bogdan_sp
    Level 10  
    Dobry wieczór,
    czy mogę dostać jakąś wskazówkę?
    przeprowadziłem całość server niby działa a ja nie wiem gdzie mam się bawić tym blynkiem dalej
    to co poniżej
    (przepraszam ale jestem początkujący w tym)
    Bogdan

    i uruchamiamy nasz serwer poleceniem:
    Code:
    screen java -jar server-0.41.8.jar -dataFolder Blynk -serverConfig Blynk/server.properties


    I tyle, od teraz możemy do woli już bawić się Blynkiem, energii nam nie zabraknie :)
    Mam nadzieję że się przyda - do wszelkich projektów.[/quote]
  • #18
    bogdan_sp
    Level 10  
    Witam, przeprowadziłem proces prawie cały co w wątku ale nie potrafię uruchomić samego Blynka, czy ktoś może mi pomóc?
  • #22
    bogdan_sp
    Level 10  
    Wiem co to Blynk w pigułce. Proste sterowanie LEDem już mam za sobą. Teraz chciałem mieć swój server zgodnie z powyższym postem. Zapewne nie potrafię poprawnie ustawić konfiguracji servera i nie potrafię się do niego zalogować. Czy mogę dostać jakąś pomoc np. przez e-mail, tel?
  • #24
    khoam
    Level 41  
    bogdan_sp wrote:
    a pytanie było proste

    Możesz skorzystać z alternatywnego poradnika ;)
    https://github.com/blynkkk/blynk-server#getting-started

    Dodano po 19 [minuty]:

    error105 wrote:
    i uruchamiamy nasz serwer poleceniem:
    Code: bash
    Log in, to see the code

    Nie jest dla mnie do końca jasne, dlaczego uruchamiasz serwer komendą screen. Aplikacja screen nie jest zwykle standardowo instalowana w systemie linuksowych.
  • #25
    maroo78
    Level 9  
    Witam.


    Blynka trochę już ogarniałem jakieś 2 lata temu, niestety moje ESP8266 z osprzętem pozostały w fazie testowej. Potrzebuję własny serwer i myślałem nad jakąś malinką z linuxem który obsłuży ktoś kto linuxa poza grafiką w przeglądarce, nie widział. Tafiłem tutaj i może to lepsza alternatywa niż RPi? Niestety, jak wspomniałem, nie znam linuxa ani troszkę, tak samo pojęcia VPN, VPS i wiele innych związanych z ruchem po globalnej pajęczynie jest mi obca :D. Czas też nie stoi po mojej stronie - aktualnie kończę domek dla syna, kolejne prace w ogrodzi, praca zawodowa... braknie mi życia na pozostałe tematy jak fotografia, coś przy aucie...

    Dlatego, czy ktoś byłby w stanie mi pomóc na zasadzie wykonania dla mnie powyższego? Kupie serwer, ktoś wykona instalację linuxa i Blynka który se będzie śmigał. Będzie to moment gdy wykrzesam z siebie siły na powrót do Blynkologii ze szpejem co mam. A mam 4x ESP8266, mam też jeden ESP32 i czujniki środowiskowe, ekraniki OLED.

    Potem, będę potrzebował pomocy przy oprogramowaniu - jeden ESP8266 albo ESP32 będę chciał w niewielkiej obudowie z OLEDem,własnym zasilaniem i kilkoma przyciskami powiesić na ścianie - miałby on wyświetlać cyklicznie odczyty z wybranych innych ESP - taki szybki podgląd niezależny od np. tableta z Blynk'iem. Całoscią chcę doglądać ogrzewanie, temperatury w pokojach, sterować kilkoma punktami oświetlenia, w dalszej perspektywie podpiąć do tego rolety okienne (trudna sprawa bo tam jest RF433 z kodowaniem dynamicznych czy jakoś tak).

    Pozdrawiam
  • #26
    bogdan_sp
    Level 10  
    A ja zmieniłem koncepcję. Na razie nie mogę się dostać do Blynka z przeglądarki bo przez PuTTy tak.
    Zakupiłem Raspbery PI 3+ (zalecany model), zainstalowałem na tym Node-REDa (na necie pełno poradników) a efekt:
    wyszynskiego11.ddns.net:1880/ui można zobaczyć. (prze kilka dni jeszcze)
  • #30
    lukasrsv
    Level 20  
    Robie wszystko krok po kroku, a gdy dochodzę do ostatniego kroku otrzymuje : Error starting Blynk server. Stopping.
    Co tu nie gra?