duminică, 14 septembrie 2014

Accesarea WRTnode din Internet (Dynamic DNS)

Odata conectata la Internet, placa WRTnode poate fi accesata din Internet - de oriunde din lume. Cu conditia sa stim adresa IP corecta si sa facem setarile corespunzatoare la ruterul WiFi. Iata harta retelei noastre:


(click pe imagine pt marire)

Furnizorul de servicii de internet (ISP) aloca dinamic adresele IP catre clientii sai, deci adresa IP a ruterului WiFi se va schimba dupa un timp dat. Consideram ca ruterul WiFi se conecteaza pt moment la Internet prin interfata WAN folosind adresa 77.123.78.12.

Ruterul WiFi aloca dispozitivelor conectate la el (pe partea de LAN) adresele IP in mod dinamic - primul venit, primul servit - adresele IP fac parte dintr-un interval dat de adrese (alocarea se face prin mecanismul de DHCP). Deci si adresa IP a placii WRTnode se va schimba din cauza alocarii dinamice de catre ruter. Adresele IP ale ruterului WiFi fac parte din subnetul ruterului (192.168.1.0). Adresa IP 192.169.1.1 reprezinta gateway-ul ruterului WiFi. Consideram ca placa WRTnode primeste pt moment adresa IP 192.168.1.110.

Modul in care functioneaza placa WRTnode: se conecteaza prin WiFi la ruterul WiFi si primeste adresa IP 192.168.1.110 din subnetul ruterului WiFi, laptopul il conectez prin WiFi la placa WRTnode si primeste adresa IP 192.168.8.50 din subnetul placii WRTnode - 192.168.8.1 este gateway-ul placii WRTnode), deci nu putem accesa de pe Internet direct placa WRTnode.

Aparent e o problema cu accesarea din Internet a placii WRTnode. Problema aceasta am avut-o si la BeagleBoard, RaspberryPi si restul de SBC (vezi aici si aici).

Insa la orice problema exista o solutie, in cazul de fata se numeste dynamic DNS si port forwarding:
-un server (site de Internet) ofera o adresa web care are in spate adresa IP actualizata a ruterului WiFi (o aplicatie de pe WRTnode o va actualiza periodic) = dynamic DNS
-cererea de conexiune pt un anume port va fi preluata de ruterul WiFi si trimisa mai departe spre o anumita adresa IP din subnetul acestuia, adica spre WRTnode; apoi WRTnode primeste cererea de conexiune pe portul respectiv si o va trimite mai departe spre adresa IP corespunzatoare (specificata) = port forwarding

Instalam pachetul ddns-scripts pt OpenWRT pe placa WRTnode folosind linia de comanda. Modul de instalare / dezintalare al unui pachet in OpenWRT este descris aici.

opkg update
opkg install ddns-scripts

Serverul care va oferi adresa web cu adresa IP actualizata este http://freedns.afraid.org/ (trebuie facut cont acolo, contul este gratuit si functioneaza bine). Dupa ce avem contul pe freedns.afraid.org si adresa web, putem incepe configurarea DDNS. Editam fisierul /etc/config/ddns:

nano /etc/config/ddns

config service "freeedns"
        option enabled          "1"
        option interface        "wan"
        option use_syslog       "1"

        option service_name     "freedns.afraid.org"
        option domain           "wrtnoode.mooo.com"
        option username         "utilizator"
        option password         ""
        option use_https        "0"

        option force_interval   "72"
        option force_unit       "hours"
        option check_interval   "10"
        option check_unit       "minutes"
        option retry_interval   "60"
        option retry_unit       "seconds"

        #option ip_source       "network"
        #option ip_network      "wan"

        #option ip_source       "interface"
        #option ip_interface    "eth0.1"

        #option ip_source       "script"
        #option ip_script       "path to your scrip"

        option ip_source        "web"
        option ip_url           "http://checkip.dyndns.com/"

        #option update_url      "http://[USERNAME]:[PASSWORD]@members.dyndns.org/nic/update?hostname=[DOMAIN]&myip=[IP]"

Explicatie: : login in contul de freedns.afraid.org, meniul din stinga "Dynamic DNS", apoi linkul "Direct URL" (in josul paginii, la mijloc). Se face copy/paste la caracterele de dupa "?" din textul afisat in bara browserului:
    
                      https://freedns.afraid.org/dynamic/update.php?TextulDeCopiatInFiserulDeConfigurare==

Acum pornim serviciul de DynDNS:
root@OpenWrt:~# ACTION=ifup INTERFACE=wan /sbin/hotplug-call iface

Verificam ca este pornit:
root@OpenWrt:~# ps | grep dynamic_dns_updater.sh
 3757 root      1284 S    grep dynamic_dns_updater.sh

Dam ping la domeniul ales de pe freedns.afraid.org:
root@OpenWrt:~# ping wrtnode.mooo.com
PING wrtnode.mooo.com (89.114.85.19): 56 data bytes
64 bytes from 89.114.85.299: seq=0 ttl=64 time=2.264 ms
64 bytes from 89.114.85.299: seq=1 ttl=64 time=1.580 ms
64 bytes from 89.114.85.299: seq=2 ttl=64 time=1.583 ms
64 bytes from 89.114.85.299: seq=3 ttl=64 time=1.831 ms
^C
--- wrtnode.mooo.com ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 1.580/1.809/2.264 ms

Daca sunt probleme, ajuta sa vedem ce face in fundal serviciul DDNS (cu numele dat ca mai sus - freeedns):

/usr/lib/ddns/dynamic_dns_updater.sh freeedns

Din exterior, placa WRTnode poate fi accesata prin SSH prin portul 5000 (l-am ales eu, nu are o semnificatie ori importanta). din interior, placa WRTnode se aceseaza prin SSH prin portul 1028, se editeaza /etc/config/dropbear (option port '22' devine option port '1028'):

nano /etc/config/dropbear



Mai multe masuri de crestere a securitatii unui dispozitiv cu OpenWRT sunt descrise aici.

WRTnode are un firewall care ne pazeste de atacurile informatice venite din Internet. Un firewall "lasa inauntru" / permite accesul in sistem dupa reguli prestabilite, deci daca vrem sa accesam WRTnode din afara Internetului, este necesar sa creeam o astfel de regula. Editam fisierul /etc/config/firewall (editorul nano l-am instalat deja, vezi aici) - am adaugat la finalul fisierului acesti parametri:

nano /etc/config/firewall

config 'redirect'
        option 'name' 'ssh'
        option 'src' 'wan'
        option 'proto' 'tcpudp'
        option 'src_dport' '1028'
        option 'dest_ip' '192.168.8.1'
        option 'target' 'DNAT'
        option 'dest' 'lan'

(care semnifica: daca vine o cerere pt portul 1028 pe wan, atunci permite-i sa mearga mai departe pe lan, la adresa IP 192.168.8.1)

Sau putem simplu sa folosim interfata web: deschidem un browser, mergem la 192.168.8.1, user root si parola stabilita de anterior, apoi meniul Network -> Firewall, sectiunea Port Forwarding.



 Adaugam o regula noua (Rule, Add) care arata ca mai jos, click pe Add, apoi click pe Save&Apply. Regula va fi vizibila si in functie.




Repornim serviciul de firewall a.i. sa includa si aceasta noua regula (daca editam cu nano este necesar acest pas):

/etc/init.d/firewall restart

Am terminat cu setarile pt WRTnode, urmeaza partea de setari ruterul WiFi la care placa WRTnode este conectata, am mai facut acest lucru pt alt dispozitiv aici, si pt WRTnode este similar.

Trebuie sa ne conectam cu un calculator prin WiFi / cablu la ruterul WiFi. Accesam interfata ruterului WiFi (in browser introducem o adresa de forma 192.168.1.1 sau 192.168.0.1 - trebuie sa stim utilizatorul si parola ruterului).

Pe prima pagina afisata gasim de obicei o lista cu adresele IP deja alocate si adresele MAC ale dispozitivelor respective (daca nu, o cautam la LAN / DHCP clients sau similar). Identificam placa WRTnode in lista si notam undeva adresa IP si adresa MAC.

In sectiunea LAN / DHCP trebuie sa fie optiune pentru alocarea de adrese IP fixe din intervalul DHCP, acolo introducem adresa IP si MAC a placii WRTnode si in acest fel la conectare, WRTnode primeste aceeasi adresa IP de la ruterul WiFi.

In sectiunea WAN, trebuie sa fie o sectiune Port forwarding / Virtual server unde vom introduce portul 17000 sa fie directionat spre adresa IP alocata placii WRTnode ca si portul 1028. Salvam si am terminat cu setarile.

Ca si verificare, incercam o conectare la WRTnode:

ssh root@wrtnoode.mooo.com -p 5000

(mai multe optiune de dynDNS gratuit si explicatii: http://wiki.openwrt.org/doc/howto/ddns.client)
(mai multe detalii despre port forwarding: http://wiki.openwrt.org/doc/howto/port.forwarding)
(mai multe detalii despre firewall: http://wiki.openwrt.org/doc/uci/firewall)

sâmbătă, 13 septembrie 2014

Reset complet pentru WRTnode

Daca din varii motive placa WRTnode necesita un reset total (revernirea la setarile din fabrica - restore factory defaults), exista o comanda magica care va dezinstala toate pachetele instalate, va sterge toate setarile facute si va aduce placa WRTnode in starea in care a fost cand a fost scoasa din cutie si conectata prima data:

firstboot&&reboot

Comanda de mai sus se poate da atat pe SSH cat si pe conexiunea seriala (pentru aceasta trebuie lipitun conector pe placa si folosit un cablu serial-USB in cazul in care computerul nu dispune un port serial). Este similar cu ce am facut aici.

Dupa acest pas este necesar sa se reia procesul de setari initiale (vezi aici).

joi, 11 septembrie 2014

Python si placa WRTnode

Pentru ca WRTnode este facuta pt lumea IoT (Internet of Things), avem nevoie de 2 lucruri: interfatarea cu lumea reala si aplicatia care sa proceseze datele din lumea reala.

Interfatarea se face cu senzori, intrerupatoare, motoare, relee, LEDuri etc, aplicatia de procesare a datelor o putem scrie in C, Python etc.

Am verificat daca Python este instalat si confirm ca WRTnode vine din fabrica cu Python instalat, excelent lucru - ne conectam la placa WRTnode asa cum este descris in episoadele anterioare (folosim un computer cu Linux (Ubuntu)) - Ctrl+ Alt+ t deschide un terminal unde lansam comanda:

catalins@catalin-N:~$ ssh root@i.wrtno.de
 

*introducem parola placii WRTnode (stabilita de noi anterior):
root@i.wrtno.de's password:


BusyBox v1.22.1 (2014-08-13 19:31:12 UTC) built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 BARRIER BREAKER (Bleeding Edge, r41508)
 -----------------------------------------------------
  * 1/2 oz Galliano         Pour all ingredients into
  * 4 oz cold Coffee        an irish coffee mug filled
  * 1 1/2 oz Dark Rum       with crushed ice. Stir.
  * 2 tsp. Creme de Cacao
 -----------------------------------------------------


*dupa ce apare promptul, incercam sa vedem daca Python functioneaza, primul program, celebrul "Hello world!" - comanda python :

root@OpenWrt:~# python
Python 2.7.3 (default, Jul  9 2014, 15:07:44)
[GCC 4.8.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "Hello world!"
Hello world!
>>> exit()
root@OpenWrt:~#

Deci functioneaza, deci putem sa incepem sa scriem cod si sa facem placa WRTnode utila!

Instalarea editorului nano pe WRTnode

Pentru ca lumea Unix / Linux presupune multa editare de fisiere si pentru ca editorul de fisiere vi este relativ incomod de utilizat de un novice, am instalat editorul nano, care de fapt este un editor bazat pe vi dar cu un comportament mai intuitiv (pentru vi trebuie sa cunosti o serie de comenzi (http://www.cs.colostate.edu/helpdocs/vi.html), pentru nano nu este necesar).

*pachetele  (aplicatiile) pt OpenWRT se instaleaza, updateaza si dez-instaleaza cu aplicatia opkg. Primul lucru pe care trebuie sa il facem este sa updatam lista pachetelor disponibile (placa WRTnode are deja acces la Internet din episodul precedent) - ne conectam la WRTnode inainte, apoi putem lansa comenzile la promptul WRTnode:

root@OpenWrt:~# opkg update
Downloading http://d.wrtnode.com/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/barrier_breaker.

*apoi instalam pachetul dorit (trebuie sa ii stim numele exact)

root@OpenWrt:~# opkg install nano
Installing nano (2.3.4-1) to root...
Downloading http://d.wrtnode.com/packages/nano_2.3.4-1_ramips_24kec.ipk.
Configuring nano.

*verificam instalarea:

root@OpenWrt:~# which nano
/usr/bin/nano

*pentru dezinstalarea unui pachet:

root@OpenWrt:~# opkg remove nano
Removing package nano from root...

*pt utilizare editor nano:

root@OpenWrt:~# nano

*comenzile nano sunt afisate in partea de jos a ecranului:
-navigarea se face simplu cu sagetile, cu tab, space etc
- + "o" pt a salva ce s-a editat pina la momentul respectiv
- + "x" pt a parasi editorul nano



Mai exista o metoda simpla de a instala aplicatii / pachete folosind interfata grafica (exemplu pt editorul nano):
*deschidem browserul de Internet (suntem conectati prin WiFi la WRTnode), IPul din fabrica este 192.168.8.1 si ne conectam la acesta:



*user: root si parola stabilita la pornirea placii (vezi aici) si ne conectam la WRTnode-ul nostru



*meniul System -> Software


*apasa butonul "Update lists"


*cauta aplicatia (sau pachetul) dorita (scrie "nano" in campul "Filter") si apasa butonul "Find package"


*in tab-ul "Available packages (nano)", apasa "Install" din dreptul aplicatiei (sau al pachetului) dorite



Pt dezinstalare, se merge in tab-ul "Installed packages (nano)" si se apasa "Remove" in dreptul aplicatiei (sau al pachetului) dorite (fara cautare, se pot vedea toate pachetele instalate si ce realizeaza fiecare): 


 IMPORTANT: anumite aplicatii / pachete depind de alte aplicatii / pachete, asa ca functionarea primelor nu este posibila fara instalarea in prealabil a celor din urma!

Asadar acum avem posibilitatea editarii diferitelor fisiere intr-un mod mai usor folosind editorul nano, proaspat instalat.

Urmeaza sa scriem primul program in Python.

Conectarea la Internet a placii WRTnode

Dupa scurta introducere facuta la OpenWRT si WRTnode, a sosit momentul sa pornim placa si sa ii dam o utilitate. Cred cu tarie ca lumea se indreapta spre un viitor Open, astfel ca tot ce urmeaza se va face cu un computer cu OS Ubuntu (Linux). Daca sunt speriati de Ubuntu printre cititori, ar trebui sa isi ia inima in dinti si sa incerce Ubuntu, vor fi placut surprinsi de rezultat si vor deveni dependenti :). De Open, evident.

Placa WRTnode vine cu un cablu special cu micro USB, USB A si USB A mama.

*conectam cablul micro USB la placa, apoi conectam USB A la un alimentator USB (5Vcc) (poate fi un port USB de computer)

*dupa pornire (5-10 secunde), un LED albastru de pe placa se aprinde si in lista de retele WiFi vom vedea un AP cu numele "WRTnodeXYZW"

*ne conectam la acesta, parola este 12345678




WRTnode OpenWRT - Catalin Simion

 *Ctrl + Alt + T -> deschidem un terminal

*lansam una din comenzile: ping i.wrtno.de /  ping wrtnode.lan / ping openwrt.lan (apasa simultan si c pentru a termina executia comenzii ping)
 

*daca functioneaza conexiunea, avem un raspuns de genul (Ipul din fabrica pt WRTnode este 192.168.8.1):

ping openwrt.lan
PING openwrt.lan (192.168.8.1) 56(84) bytes of data.
64 bytes from OpenWrt.lan (192.168.8.1): icmp_seq=1 ttl=64 time=101 ms
64 bytes from OpenWrt.lan (192.168.8.1): icmp_seq=2 ttl=64 time=20.5 ms
64 bytes from OpenWrt.lan (192.168.8.1): icmp_seq=3 ttl=64 time=43.9 ms
64 bytes from OpenWrt.lan (192.168.8.1): icmp_seq=4 ttl=64 time=66.4 ms
64 bytes from OpenWrt.lan (192.168.8.1): icmp_seq=5 ttl=64 time=88.9 ms
64 bytes from OpenWrt.lan (192.168.8.1): icmp_seq=6 ttl=64 time=111 ms
64 bytes from OpenWrt.lan (192.168.8.1): icmp_seq=7 ttl=64 time=30.7 ms
^C
--- openwrt.lan ping statistics ---
7 packets transmitted, 7 received, 0% packet loss, time 6009ms
rtt min/avg/max/mdev = 20.596/66.280/111.760/33.106 ms

*lansam: telnet i.wrtno.de (prima conectare se face obligatoriu in acest mod, nu este setata inca o parola de root)

*daca functioneaza, avem acces la un prompt ca mai jos:

Trying 192.168.8.1...
Connected to i.wrtno.de.
Escape character is '^]'.
 === IMPORTANT ============================
  Use 'passwd' to set your login password
  this will disable telnet and enable SSH
 ------------------------------------------

WRTnode OpenWRT - Catalin Simion




BusyBox v1.22.1 (2014-08-13 19:31:12 UTC) built-in shell (ash)
Enter 'help' for a list of built-in commands.

 -----------------------------------------------------
 BARRIER BREAKER (Bleeding Edge, r41508)
 -----------------------------------------------------
  * 1/2 oz Galliano         Pour all ingredients into
  * 4 oz cold Coffee        an irish coffee mug filled
  * 1 1/2 oz Dark Rum       with crushed ice. Stir.
  * 2 tsp. Creme de Cacao
 -----------------------------------------------------
root@OpenWrt:/#

*urmeaza sa stabilim o parola de root pt WRTnode-ul nostru (acest lucru este explicit cerut si mai sus, dupa conectarea prin telnet):

root@OpenWrt:/# passwd
Changing password for root
New password:
Retype password:
Password for root changed by root

(*notati undeva pe o hartie parola, sa nu o uitati si sa ramineti incuiati pe dinafara)

*din acest moment avem acces la conexiune SSH, lansam comanda exit si ne reconectam (prima data trebuie sa confirmam in Ubuntu faptul ca acceptam o conexiune fara cheie de securitate, doar prin parola):

root@OpenWrt:/# exit
Connection closed by foreign host.
catalins@catalin-N5110:~$ ssh root@i.wrtno.de
The authenticity of host 'i.wrtno.de (192.168.8.1)' can't be established.
RSA key fingerprint is bc:00:71:ac:b1:12:23:34:c7:7a:9b:6a:59:8e:da:82.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'i.wrtno.de,192.168.8.1' (RSA) to the list of known hosts.
root@i.wrtno.de's password:


BusyBox v1.22.1 (2014-08-13 19:31:12 UTC) built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 BARRIER BREAKER (Bleeding Edge, r41508)
 -----------------------------------------------------
  * 1/2 oz Galliano         Pour all ingredients into
  * 4 oz cold Coffee        an irish coffee mug filled
  * 1 1/2 oz Dark Rum       with crushed ice. Stir.
  * 2 tsp. Creme de Cacao
 -----------------------------------------------------
root@OpenWrt:~#

*lansam comanda aps pt a vedea toate punctele de acces WiFi (WiFi AP), rezultatul ca mai jos:


WRTnode OpenWRT - Catalin Simion


*alegem reteaua noastra (APul nostru, retinem canalul, numele si modul de securizare, trebuie sa stim parola) din cele enumerate de comanda aps si pregatim WRTnode-ul pt conexiunea la Internet prin intermediul APului nostru - comanda vw ne ajuta sa editam exact fisierul de configurare pt retea (aici am luat in considerare doar securizarea WPA2 (AES sau TKIP)) (practic editam fisierul  /etc/config/wireless):

root@OpenWrt:~# vw

*editarea este relativ greoaie deoarece se foloseste editorul de Unix (Linux) vi (navigare cu sagetile, nu cu mousul), dar din fericire avem de editat doar cateva lucruri (vezi "#aici editam...") (http://www.cs.colostate.edu/helpdocs/vi.html):

config wifi-device 'ra0'
        option type 'ralink'
        option mode '9'
        option channel '3'   #aici editam canalul APului la care dorim sa ne conectam
        option txpower '100'
        option ht '20+40'
        option country 'US'
        option disabled '0'

config wifi-iface
        option device 'ra0'
        option network 'lan'
        option mode 'ap'
        option encryption 'psk2'
        option key '12345678'
        option ApCliEnable '1'
        option ApCliSsid 'RETEAUA_MEA'  #aici editam numele APului prin care ne vom conectam la Internet
        option ApCliAuthMode 'WPA2PSK/AES'   #aici editam securizarea APului prin care ne vom conectam la Internet
        option ApCliEncrypType 'AES'    #aici editam securizarea APului prin care ne vom conectam la Internet (doar TKIP sau AES)
        option ApCliPassWord 'parola_retelei_mele'  #aici editam parola APului prin care ne vom conectam la Internet
        option ssid 'WRTnode99D2'

*comenzi pt editorul de fisiere vi (comanda este intre ""):
-cursorul il plasam in fisier cu tastele cu sageti
-":x" +   - iesire din editare, salvand editarea
-":q" +   - iesire din editare, fara salvarea editarii
-":w" +   - salvarea editarilor facute pina la un moment dat
-plasam cursorul sub caracterul pe care dorim sa il stergem, apoi apasam "x", caracterul respectiv va fi sters
-plasam cursorul sub caracterul dupa care dorim sa inseram alte caractere, apasam "i" si introducem caractere; dupa ce terminam de introdus caracterele, apasam (iesim din modul de introdus caractere)

*dupa ce am editat fisierul de configurare a retelei, resetam partea de retea cu comanda nr


ATENTIE: este posibil ca dupa un timp ruterul WiFi sa isi schimbe canalul pe care lucreaza din varii motive. Daca pierdem conexiunea, atunci trebuie sa verificam din nou ce canal foloseste si sa il modificam, apoi sa resetam partea de retea!
 

*am dat si un reset hardware la WRTnode

*dupa ce am pornit, am incercat sa conectez laptopul din noul la WRTnode prin WiFi, am avut cateva incercari nereusite, dar in final a mers

*apoi am conectat prin SSH la WRTnode:

*comanda ia ne arata cum este conectat WRTnode la reteaua WiFi:

root@OpenWrt:~# ia
apcli0    Link encap:Ethernet  HWaddr 66:5F:GE:32:00:T2 
          inet addr:192.168.1.256  Bcast:192.168.1.256  Mask:255.255.255.0
          inet6 addr: fe80::6423:7eGT:fe32:99d2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

*se pare ca ruterul WiFi si WRTnode sunt conectate, urmeaza sa vedem daca WRTnode are acces la Internet (apasa simultan si c pentru a termina ping):

root@OpenWrt:~# ping google.com
PING google.com (173.194.116.231): 56 data bytes
64 bytes from 173.194.116.231: seq=0 ttl=54 time=18.675 ms
64 bytes from 173.194.116.231: seq=1 ttl=54 time=16.275 ms
64 bytes from 173.194.116.231: seq=2 ttl=54 time=16.520 ms
64 bytes from 173.194.116.231: seq=3 ttl=54 time=19.485 ms
^C
--- google.com ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 16.275/17.738/19.485 ms

*din acest moment WRTnode poate fi utilizat pt proiectele lumii IoT :)

-nu uita ce parola ai stabilit pt root! (cea notata pe hartie)
-nu uita numele WRTnode-ului tau! (WRTnodeXXXX)
-nu uita IP-ul WRTnode-ului tau! (192.168.8.1 - din fabrica il are asa)




In acest moment placa WRTnode este conectata la Internet, putem incepe sa instalam diverse pachete, aplicatii. Prin intermediul WRTnode ne putem conecta si noi la Internet prin WiFi (APul WRTnodeXXXX).


Deci sa inceapa distractia!

WRTnode si OpenWRT - introducere

Deja de ani buni lucrurile din jurul nostru sunt conectate la Internet, la retele de comunicatii: televizoare, frigidere, aparate de aer conditionat, filtre de cafea, centrale termice, boilere de apa calda etc.

IoT (Internet of Things), adica Internetul lucrurilor (celalalt fiind al oamenilor) - retele de comunicatii intre aparate - este marea revolutie: tot ce avem prin casa va folosi (daca nu foloseste deja) infrastructura de comunicatii existenta (daca citesti asta, inseamna ca ai aces la Internet, deci e simplu sa conectezi un aparat la Internet).

Bazele fiind deja puse si miscarea ne mai putand fi oprita, trebuie sa facem parte din ea, altefel ratam o oportunitate. Sunt deja disponibile sisteme de operare pt lumea embedded (cu o structura de baza simplificata, light), avem hardware dedicat (cost scazut si posibilitati multiple, dar tot cu o structura simplificata).

Un astfel de sistem de operare este OpenWRT - special dezvoltat pentru dispozitive de comunicatii si cu un hardware nepretentios - de exemplu rutere WiFi (aici este un articol care descrie deblocarea unui ruter WiFi). Ca sa va faceti o idee de capabilitatile OSului OpenWRT, am luat un ruter TP-LINK MR3420 cu port USB si i-am adaugat un hub USB, apoi un memory stick USB, apoi un webcam USB si apoi un stick USB pt Internet mobil - aplicatia facea la intervale prestabilite de timp o poza cu webcam-ul, o salva pe memory stick (sub forma "YYYY_MM_DD_HH_mm_ss.jpeg"), apoi o trimitea prin FTP folosind legtura de Internet mobil, la finalul zilei, copia toate imaginele intr-un director cu numit cu data curenta.



Aici este OpenWRT - pagina de baza: https://openwrt.org/

OpenWRT - este parte a lumii Unix, o distributie de Linux, o ramura speciala asa cum arata aceasta schema: http://en.wikipedia.org/wiki/Linux_distribution

Pt ca OpenWRT se poate instala pe rutere WiFi, recomand ca inainte de a cauta un nou ruter, sa verificati daca puteti instala OpenWRT pe cel vechi, noi optiuni vor fi disponibile si veti economisi niste bani.

Pt OpenWRT a fost conceputa o placa speciala, se numeste WRTnode, este o placa electronica cat jumatate de card bancar care se alimenteaza prin microUSB si are deja OpenWRT pre-instlat, se comporta ca un ruter WiFi, de fapt chipsetul este unul utilizat pe rutere WiFi.

Aici este WRTnode - pagina de baza: http://wrtnode.com/



WRTnode OpenWRT - Catalin Simion

Pretul este excelent, 25 USD, se poate cumpara de pe internet (vine in Romania), se poate comanda de la http://www.seeedstudio.com (livreaza prompt, nu am avut probleme cu marfa) sau de pe echivalentul chinezesc al e-bay-ului (http://taobao.com) - daca e cineva in China, va poate lua de acolo (acelasi pret, dar ajunge mai repede la voi).


La WRTnode sunt accesibili toti pinii prin intermediul unor headere de 2,54mm, deci putem interfata tot ce poftim (senzori, relee, LEDuri, ecrane LCD, I2c, SPI etc), putem rula Python, OpenCV etc. Placa vine cu un cablu "special" de alimentare si de acces la USB, intr-o cutie de plastic.

Cred ca WRTnode este o optiune excelenta la Arduino si alte placi bazate pe microcontrolere daca dorim sa avem conectivitate la Internet - pret scazut, accesibilitate hardware, consum redus de energie, marime redusa a placii in sine.


WRTnode OpenWRT - Catalin Simion

Vor urma o serie de articole despre primii pasi cu WRTnode si OpenWRT. Primul pas este conectarea la Internet a placii WRTnode.