RoboBattle – Diferențe între Raspberry Pi și Arduino

Două plăci de bază domină lumea electronică a pasionaților de robotică: Arduino și Raspberry Pi. Ambele pot fi găsite în atelierele electroniștilor și pasionaților de robotică din întreaga lume. Pentru juniorii în domeniu, aceste plăci ar putea părea similare, pentru că ambele sunt plăci de circuite cu rezistențe, conectori și pini de intrare/ ieșire.

Dar, la o privire mai atentă, Arduino și Raspberry Pi diferă unul de altul atât în arhitectură, cât și în scopul pentru care au fost create. Arduino, de exemplu, conține un microcontroler, ceea ce înseamnă că excelează în controlul dispozitivelor mici precum senzorii, motoarele și luminile. Raspberry Pi în schimb conține un microprocesor, adică un fel de computer cu propriul său sistem de operare și este destinat să fie folosit în acest sens. Dar, mult mai pe larg despre diferențele dintre Arduino și Raspberry Pi vom povesti în cele ce urmează. Continue reading

3 proiecte Mega Robo Cool cu Raspberry Pi 4 pe care le poți începe chiar acum

3 proiecte Mega Robo Cool cu Raspberry Pi 4 pe care le poți începe chiar acum

Raspberry Pi este un mic computer care permite studenților, experților și pasionaților de robotică să construiască proiecte computerizate inovatoare la un cost foarte accesibil. Popularitatea mare de care se bucură Raspberry Pi se datorează gamei infinite de posibilități pe care acest sistem le oferă. Calculatorul cu o singură placă se află acum în cea de-a patra versiune majoră și este utilizat pe scară largă pentru numeroase proiecte tehnologice din întreaga lume. Dacă ești în căutarea celor mai bune proiecte robo cool, cu noul Raspberry Pi 4 poți începe de la nivelul de bază până la cel avansat. Continue reading

Raspberry Pi 4 Model B, cel mai puternic model Raspberry Pi fabricat vreodată

Raspberry Pi 4, cel mai puternic model Raspberry Pi fabricat vreodată

Dacă te-ai gândit la cum va arăta viitorul computerelor, cei de la Raspberry Pi tocmai au răspuns la întrebările de acest gen cu un nou produs scos pe piață la finalul lunii iunie din acest an: Raspberry Pi 4 Model B. Noul model Raspberry Pi  este la fel de performant ca un calculator “entry level” și chiar comparabil cu un desktop de performanțe medii. Raspberry Pi 4 este primul produs capabil de 4k și primul care oferă performanțe asemănătoare PC-urilor. Folosit de pasionații de programare la sarcini din ce în ce mai complexe, ultima versiune Raspberry Pi este spectaculoasă, fără să vină cu un preț mai mare.  Continue reading

Proiecte cu Raspberry Pi: Cum să construiești propriul tău Google Assistant

Ok google, how’s the weather in the weekend? Cu o simplă comandă vocală îi poți cere “asistentului tău” să-ți redea muzică, știrile sau să-ți spună cum va fi vremea pe următoarele zile. Fără să te folosești de ajutorul mâinilor, de la distanță, poți seta alarme, poți controla dispozitive inteligente cum sunt luminile, temporizatorii sau comutatoarele de la sistemele de automatizare ale electrocasnicelor sau îți poți crea lista de cumpărături doar spunând ceea ce trebuie să cumperi. El notează tot. În loc să apeși de foarte multe ori pe ecranul telefonului, poți solicita din voce să se deschidă o anumită aplicație, să afli ce ședință ai în calendar săptămâna viitoare sau să apeleze persoane din agenda telefonului.

Google Assistant îți oferă răspunsuri personalizate și complexe cu ajutorul comenzilor vocale. Cum s-a ajuns în acest punct al dezvoltării inteligenței artificiale și cum îți poți face chiar tu propriul Google Assistant, fără să fie nevoie să te folosești de telefonul mobil, îți spunem pe larg în rândurile ce urmează.

Ce este Google Assistant?

Google Asistent este așa cum îi spune și numele un asistent virtual, dezvoltat de motorul de căutare Google, care se bazează pe inteligența artificială. În sensul larg al cuvântului, Inteligența Artificială (IA) reprezintă orice tehnologie proiectată să imite modul în care se comportă un om. Învățarea mecanică (machine learning) este o parte importantă a inteligenței artificiale și se bazează pe capacitatea computerelor de a re(acționa) în baza cantității uriașe de date pe care le analizează. Exemplu cel mai bun în acest sens sunt chiar asistenții virtuali care pot înțelege comenzile vocale.

Spre deosebire de asistentul virtual anterior, Google Now care oferea răspunsuri în baza unor solicitări vocale clare, Google Assistant se poate angaja în conversații. După o perioadă de exclusivitate pe smartphone-urile Pixel și Pixel XL, din februarie 2017, Google Assistant a fost implementat și pe dispozitivele Android. Mai mult decât atât, Google Assistant a fost extins pentru a interacționa cu o mare varietate de dispozitive, inclusiv cu electrocasnicele inteligente.

Google Assistant este apelat prin voce umană și în urma comenzii posesorului acesta caută pe internet informațiile solicitate, programează evenimentele în calendarul telefonului, setează alarme sau apelează contactele din telefon.

Cum îți poți construi propriul Google Assistant?

În aprilie 2017, a fost lansat un kit de dezvoltare software (SDK) care permite dezvoltatorilor să-și construiască propriul hardware care să poată rula Google Assistant. Google spune că va funcționa bine pe dispozitivele Raspberry Pi 3 și Linux.

Acest kit a fost integrat în plăcile Raspberry Pi din sistemele de comandă vocală ale mașinilor Audi și Volvo, dar și în anumite aparate inteligente de uz casnic, precum frigiderele, mașinile de spălat sau cuptoarele. Practic, șoferul apelează rapid numeroasele funcții de pe volan pentru a gestiona climatizarea și funcțiile de confort.

Proiectele din domeniul Inteligenței Artificiale cu Raspberry Pi sunt în prezent în plină dezvoltare. De fapt, în afară de Google Assistant mai există și alte platforme IA care concurează pentru ca specialiștii să le instaleze cu Raspberry Pi. Aceste platforme sunt Alexa de la Amazon, IBM Watson, Siri de la Apple și altele mai puțin cunoscute.

Toate companiile de software care dezvoltă asistenți virtuali se sprijină pe comunitatea Raspberry Pi pentru a-și dezvolta programele. Această colaborare face posibil ca și Raspberry Pi să dezvolte prototipuri mai rapide pentru dispozitivele IA (Inteligență Artificială) și IoT (Internet of Things), practic să fie mai accesibile pentru specialiști.

Așadar, să trecem la lucru! Mai jos, am adunat practic tot ce este necesar pentru a construi propriul tău Google Assistant cu Raspberry Pi pentru a avea următoarele funcționalități:

  • Google Assistant (cele mai multe funcții, cu excepția redării media pe Pi)
  • Activare vocală / cuvânt cheie: “Hei Google” sau “Ok Google” și adresezi întrebarea
  • Pornirea unui program/serviciu, deci nu trebuie să deschizi manual programul la fiecare repornire.

Deci, pentru a începe proiectul Google Assistant vei avea nevoie de:

  • Raspberry Pi 3
  • Micro card SD (minimum 8 GB) cu Raspbian instalat
  • Microfon USB
  • Un difuzor

Pasul 1: Înregistrarea dispozitivului

Accesează https://console.actions.google.com pentru a-ți înregistra proiectul în Google Console. Intră pe https://console.cloud.google.com  pentru a-ți activa API-ul Google Assistant.

Asigură-te că selectezi proiectul nou creat în panoul de selecție de lângă sigla Platformei Cloud! Apoi, selectează tabul Api&Services și activează-ți api-ul Google Assistant.

Asigură-te că ai activat toate setările https://myaccount.google.com/activitycontrols pentru ca api-ul să funcționeze corect.

După aceea, revino la https://console.actions.google.com pentru a înregistra dispozitivul Raspberry Pi în colțul din dreapta jos al panoului de aplicații. Downloadează fișierul cu credețialele (datele de autentificare) pentru a le putea folosi mai târziu.

Pasul 2. Setarea audio

Notează-ți numerele cardului / dispozitivului audio folosind:

arecord -l
aplay -l

Folosește aceste informații pentru a edita fișierul asoundrc:

nano /home/pi/.asoundrc
pcm.!default {
  type asym
  capture.pcm "mic"
  playback.pcm "speaker"
}
pcm.mic {
  type plug
  slave {
    pcm "hw:<card number>,<device number>"
  }
}
pcm.speaker {
  type plug
  slave {
    pcm "hw:<card number>,<device number>"
  }
}

Poți testa dispozitivul folosind:

speaker-test -t wav
arecord --format=S16_LE --duration=5 --rate=16000 --file-type=raw out.raw
aplay --format=S16_LE --rate=16000 out.raw
alsamixer

Pasul 3. Instalează Biblioteca Google Assistant

Configurează directoarele în care vom instala mediul virtual:

mkdir ~/googleassistant
nano ~/googleassistant/credentials.json

Vom folosi un spațiu virtual pentru ca spațiul personal să nu devină prea aglomerat. Instalează venv cu:

sudo apt-get install python3-dev python3-venv

Instalează ultima versiune de pip și activează mediul cu:

python3 -m venv env && env/bin/python -m pip install –upgrade pip setuptools –upgrade && source env/bin/activate

Instalează libraria Google Assistant pentru Python:

python -m pip install –upgrade google-assistant-library google-assistant-sdk[samples]

Pasul 4. Autorizează Pi pentru Google Assistant

Instalează instrumentul de autorizare pentru a putea autoriza cu API-ul Google Assistant pe care tocmai l-am activat pentru aplicație:

python -m pip install –upgrade google-auth-oauthlib[tool]

Vei primi un url de autorizare

google-oauthlib-tool --client-secrets ~/googleassistant/credentials.json \
--scope https://www.googleapis.com/auth/assistant-sdk-prototype \
--scope https://www.googleapis.com/auth/gcm \
--save --headless

Este posibil să primești o eroare de autorizare. Pentru a rezolva acest lucru setează în platforma Google Cloud în zona de autentificare Credentials -> OAuth Consent Screen   Asigură-te că ai selectat aplicația ta (Application name)! În momentul în care vei introduce codul de autorizare vei vedea:

credentials saved: /home/pi/.config/google-oauthlib-tool/credentials.json
(env) pi@raspberrypi :~/googleassistant $

Pasul 5. Erorile portului Audio

Este posibil să întâlnești următoarea eroare:

OSError:  PortAudio library not found
(env) pi@raspberrypi :~/googleassistant $

Instalează:

sudo apt-get install libportaudio2

Pentru a preveni pierderea și întârzierea semnalului audio introdu următorul comentariu: /etc/pulse/default.pa

De asemenea, rulează PulseAudio pentru a evita problemele cu Google Assistant:

sudo nano /etc/systemd/system/pulseaudio.service

Adaugă următoarea linie de cod:

[Unit]                      
Description=PulseAudio Sound Server in system-wide mode [Service] 
Type=forking                      
PIDFile=/var/run/pulse/pid                      
ExecStart=/usr/bin/pulseaudio --system --disallow-exit=1 \                       
 --disable-shm=1 --fail=1 --daemonize
[Install]                      
WantedBy=multi-user.target

Activează serviciul și adaugă userul pi grupului pulse-access:
sudo systemctl --system enable pulseaudio.service
sudo adduser pi pulse-access

Dezactivează modulul următor pentru a evita întârzierile audio:

/etc/pulse/default.pa
#load-module module-suspend-on-idle
sudo nano /etc/systemd/system/assistant.service

Pasul 6. Transformă Google Assitant în propriul serviciu personal

Crează un fișier  ~/start_assistant.sh folosind ID-ul modelului de dispozitiv din platforma Google Action:

#!/bin/bash
source /home/pi/googleassistant/env/bin/activate
googlesamples-assistant-hotword --device-model-id <your_device_model_id> 

Fă scriptul executabil:

chmod +x start_assistant.sh

Crează un fișier service în /etc/systemd/system/assistant.service

[Unit]
Description=Google Assistant
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
ExecStart=/bin/bash /home/pi/start_assistant.sh
Restart=on-abort
User=pi
Group=pi
[Install]
WantedBy=multi-user.target

Activează și pornește serviciul:

sudo systemctl enable assistant.service
sudo systemctl start assistant.service

Pasul 7. Ai terminat!

De acum te poți bucura de propriul tău Google Assistant pe Raspberry Pi folosind expresiile “Hey Google” sau “Ok Google“. De asemenea, poți înregistra dispozitivul în aplicația Google Assistant pe iOS sau Android.

RoboNews: Ce ar putea fi mai fun decât o platformă IoT Arduino?

Piața platformelor IoT este în continuă creștere. Probabil ai auzit de IoT pentru că anul trecut s-au dezvoltat peste 450 de platforme de acest gen, estimându-se ca în acest an numărul lor să depășească 1000. Internet of Things (IoT) System este o platfor mă care simplifică administrarea la scară largă a dispozitivelor și obiectelor conectate la rețea. De fapt, aceasta oferă o infrastructură care este proiectată să gestioneze sisteme de mari dimensiuni cu trafic intens generat de diverse dispozitive și platforme.

Platformele IoT sunt software-ul de suport care pun laolaltă totul într-un singur sistem. O platformă IoT facilitează comunicarea, fluxul de date, gestionarea dispozitivelor și funcționalitatea aplicațiilor. Datorită acestor lucruri, platformele IoT sunt de un real ajutor în sprijinul companiilor care vor să depășească provocările tehnice fără a avea nevoie de resurse suplimentare pentru a gestiona echipe de ingineri specializați în diverse domenii.

De exemplu, un business ar putea să fie foarte bun în tehnica de hardware, dar în locul procesului scump și de durată de a angaja dezvoltatori de software pentru a construi totul in house, platforma IoT este o soluție rapidă și mai eficientă din punct de vedere al costurilor.

Facem o trecere în revistă a celor mai noi domenii în care se folosesc cu succes platformele IoT Arduino și cum poate fi folosită o platformă IoT:

EyeScan AT3D Max – senzorul cu scanare 3D cu cea mai rapidă și cea mai înaltă definiție a laserului

Laserul este o tehnologie revoluționară cu o influență extraordinară în multe domenii. Îl găsim în imprimantele de la calculatoare, în CD sau DVD-playere, în spitale pentru operaţiile chirurgicale asistate de laser, în aparatele pentru măsurat distanţe, în tehnologiile pentru comunicaţiile pe fibră optică, în sudură, tăierea sau prelucrarea materialelor ce necesită înaltă precizie. EyeScan AT 3D Max este cel mai rapid și cel mai mare senzor de deplasare a rezoluției de pe piață. Senzorul de poziție poate măsura la viteză foarte mare distanța dintre un obiect și un punct de referință sau modificări în lungime. Senzorul The EyeScan AT 3D Max poate scana 3D chiar si cele mai mici componente ale unei piese ajungand la o rezoluție de măsurare de un micrometru.

Cum se întâmplă acest lucru? Senzorul își proiectează linia laser pe obiectul ce urmează să fie inspectat. Acest obiect se va deplasa prin dreptul senzorului pentru a inspecta toata suprafața acestuia, iar după ce obiectul este scanat în întregime se generează o imagine 3D. Rezoluția imaginii obținute cât și viteza de scanare face acest senzor ideal pentru măsurarea și inspectarea pieselor foarte mici, cum ar fi componentele electronice, chiar dacă acestea au zone întunecate sau strălucitoare.

Acest senzor EyeScan AT 3D Max se poate interconecta la o mare varietate de sisteme folosind interfețele UR Robot și Profinet Stack.

Unitatea utilizează propriul software EyeVision care realizează evaluări 3D utile pentru industria auto sau electronică, precum și evaluări pentru industria alimentară și a băuturilor. (Sursa)

Accesul la comunicațiile cloud simplifică dezvoltarea aplicațiilor IoT

Pasionat de Arduino? Atunci suntem siguri că ești în căutarea unei soluții care să-ți permită dezvoltarea și gestionarea aplicațiilor IoT într-o manieră cât mai accesibilă. Versiune publică beta a cloudului Arduino IoT, cu generarea automată a dashboard-ului, suport pentru webhooks unde se poate modifica comportamentul unei aplicații web dar și a protocolului securizat TLS (Transport Layer Security) reprezintă un avantaj major pentru utilizatorii de arduino. Arduino Cloud IoT permite, de asemenea, și alte metode de interacțiune, inclusiv API-ul HTTP REST, MQTT, tool-uri linie de comandă, JavaScript și WebSocket-uri.

Ușurința și flexibilitatea de a programa în Arduino au fost considerate concepte cheie pentru cloudul Arduino IoT fără a mai obliga utilizatorii să le programeze prin Arduino Sketch.

Pentru a sublinia modul în care Arduino IoT Cloud ar lucra în tandem cu familia MKR într-o soluție reală, Massicot Banzi – expert in tehnologia Arduino,  oferă un exemplu pentru domeniul agriculturii, în care opțiunile de alimentare optimă cu energie a componentelor și alternative de conectivitate sunt esențiale: “Să presupunem că dorim să construim o seră IoT, obiectivul fiind acela de a controla această seră de la distanță, adică să pornim și să oprim luminile, să pornim sistemul de irigații și să citim și să reglăm temperatura din seră, fără intervenția umană. Sistemul complet poate fi automatizat și controlat utilizând o placă Arduino MKR WIFI 1010 împreună cu cloudul Arduino IoT. Trebuie doar să atașați senzorii relevanți (de exemplu, senzorii de temperatură, lumină și umiditate), dispozitivele de acționare (de exemplu, pompa de irigare) și comutatoarele (luminile și ventilatoarele) pe placă. Încărcați software-ul (Arduino Sketch) și va fi gata în câteva minute pentru a controla automat proprietățile elementelor actionate (de exemplu, activați ventilatoarele de ventilație atunci când există prea multă umiditate în seră) printr-o interfață web simplă.” (Sursa)

Viața plantelor, monitorizată cu ajutorul unui dispozitiv Raspberry Pi

Pasionată de viața plantelor și de procesul de creștere al acestora, de la stadiul de germinarea până la stadiul de plantă adultă, Nicole He, artist și programator, a studiat timp de 2 ani un ficus din propria ei casă. Nicole a programat interfața Raspberry pentru a posta zilnic pe Twitter câte o fotografie cu propria ei plantă. Ea a folosit un aparat de fotografiat alimentat de o placă Raspberry Pi, pentru a se documenta cu privire la creșterea lentă a plantei Ficus Lyrata. De asemenea, a folosit un Logitech HD WebCam C310, pe care l-a conectat prin USB la o placă Raspberry Pi, un monitor extern, o tastatură și o conexiune Wi-Fi pentru a putea trimite zilnic poza pe Internet.

Astfel, timp de doi ani, acumulând zi de zi poze cu stadiul de creștere lentă a plantei, Nicole He a compilat toate pozele într-un mic filmuleț intitulat  “meditație asupra naturii și tehnologiei”. (Sursa)

Industria producătoare de semiconductori, îmbunătățiri majore datorită aplicațiilor care utilizează tehnologia cloud

APEC (Asia-Pacific Economic Cooperation) anunță dezvoltarea platformei Strata Developer Studio care oferă o modalitate utilizată de ingineri de a lucra plăcile de evaluare și dezvoltare, oferind cea mai recentă documentație, informații despre produse, note de proiectare precum și fișiere de referință direct pe calculator. Toate plăcile noi de evaluare a semiconductorilor vor fi în viitor “Strata-Ready”, ceea ce înseamnă că vor fi automat recunoscute de platforma Strata Developer Studio când sunt conectate la computer. Această platformă oferă echipei de proiectare o interfață intuitivă pentru un control direct al parametrilor de configurare și feedback-ul vizual al funcționalității placii de evaluare. În același timp, Strata va descărca toate informațiile de proiectare necesare unui inginer pentru a începe evaluarea sau proiectarea. Strata Developer Studio este furnizat ca o aplicație recunoscuta de Microsoft care se conectează la platforma SaaS a companiei. Dispune de autentificare securizată, de transfer de date și de izolare completă a informațiilor, utilizând baze de date criptate ce respectă Regulamentul UE privind protecția generală a datelor (GDPR). Toate informațiile și securitatea respectă regulamentul Institutului Național de Standardizare și Tehnologie (NIST). (Sursa)

Soluțiile IoT devin inevitabil mai complexe și mai dinamice cu trecerea timpului. Acestea implică ecosisteme mai mari de dispozitive și se dezvoltă mult mai repede decât software-ul tradițional de aplicații pentru întreprinderi. Odată cu dezvoltarea tuturor tipurilor de interacțiuni de la distanță între dispozitive și oameni, soluțiile IoT reprezintă o nouă paradigmă pentru experiența digitală orientată spre client. Complexitatea lor poate părea intimidantă la început, dar, de fapt, avantajele platformelor IoT sunt fezabile, fără a reinventa roata. În acest scop, o platformă IoT este noua roată.

Cum să realizăm un gateway LoRaWAN

Acoperirea rețelelor LoRaWAN la noi în țară este destul de scăzută (atât a rețelelor comerciale cât și a rețelei TTN). Din acest motiv, pentru a testa un sistem IoT LoRaWAN (ca cel descris în „Cum să realiză un sistem IoT LoRaWAN”) uneori este necesară realizarea unui sistem gateway LoRaWAN propriu. Sistemele profesionale de acest tip sunt destul de scumpe reprezentând o variantă de lux, a se vedea studiul comparativ a celor de la LorIoT.

O altă variantă este construirea unui sistem gateway propriu utilizând o placă de dezvoltare de genul Raspberry Pi. Problema în acest caz este generată de complexitatea modulației radio LoRa – sistemele gateway fiind sisteme care ascultă frecvențe radio multiple simultan (sunt denumite și concentratoare). Din acest motiv un modul radio LoRa obișnuit nu poate echipa un sistem gateway LoRaWAN fiind necesar un modul de tip concetrator, de exemplu: iC880A – LoRaWAN Concentrator 868MHz – modul cel mai adesea folosit în sisteme gateway LoRaWAN bazate pe Raspberry Pi.

2

Pentru mai multe detalii despre cum puteți construi un sistem gateway LoRaWAN bazat pe un modul de tip concentrator puteți consulta și materialele:

Chiar dacă prețul unui modul concentrator este mai mic decât a unui gateway profesional construirea unui astfel de sistem implică totuși un buget destul de mare.

Singura alternativă, accesibilă ca buget, este realizarea unui sistem gateway LoRaWAN de tipul One Channel (sau Single Channel). Adică vom un utiliza un modul radio LoRa obișnuit împreună cu o placă de tipul Raspberry Pi pentru realizarea unui sistem gateway. Dezavantajul unui astfel de gateway este faptul că ascultă pe o singură frecvență radio neputând comunica simultan cu mai multe sisteme IoT LoRaWAN. Acest tip de sisteme sunt considerate sisteme de tip ”forwarder” (Single Channel Forwarder) neavând o funcționalitate gateway LoRaWAN completă. Totuși, un astfel de sistem poate fi utilizat în locații izolate (fără acoperire LoRaWAN) pentru a testa comunicația LoRaWAN. Rețeaua TTN permite accesul acestor sisteme în rețea dar nu încurajează și nu asigură suport pentru ele fiind considerate compatibile dar neconforme cu specificațiile LoRaWAN.

Pentru implementare vom utiliza o placă de dezvoltare Raspberry Pi 3 și un hat LoRa/GPS. Testele au fost realizate sub Raspbian 9 (stretch) Lite, kernel 4.9.41-v7+.

Placa Raspberry Pi trebuie să aibă protocolul SPI activat (cu ajutorul utilitarului raspi-config) și pachetul wiringpi instalat.

$sudo raspi-config

4

$sudo apt-get update

$sudo apt-get install wiringpi

Pentru a implementa funcționalitatea de redirecționare a comunicației LoRa către platforma TTN vom utiliza software-ul single_chan_pkt_fwd.

$ wget https://github.com/tftelkamp/single_chan_pkt_fwd/archive/master.zip

$ unzip master.zip

$ cd single_chan_pkt_fwd-master

$ nano main.cpp

În fișierul main.cpp vom personaliza următoarele linii:

int ssPin = 6;

int dio0  = 7;

int RST   = 0;

sf_t sf = SF7;

uint32_t  freq = 868100000;

// opțional, dacă dorim să declarăm

// poziția și altitudinea sistemului

float lat=…;

float lon=…;

int   alt=…;

static char platform[24] = “Single Channel Gateway”;

static char email[40] = “…”;

static char description[64] = “…”;

#define SERVER1 “52.169.76.203”

#define PORT 1700

Salvăm (CTRL+O, CTRL+X), compilăm programul și îl lansăm în execuție:

$ make

$ sudo ./single_chan_pkt_fwd

5

Următorul pas necesită înregistrarea sistemului gateway în cadrul platformei TTN. În momentul înregistrării sistemului gateway este foarte important să bifăm opțiunea ”I’m using the legacy packet forwarder” (nu se poate modifica ulterior) și să copiem Gateway ID din consola ssh în consola de înregistrare.

6

După terminare înregistrării vom putea observa în consola TTN conexiunea dintre sistem și platforma TTN (Gateway Overview):

7

Pentru a face ca programul single_chan_pkt_fwd să ruleze automat la repornirea sistemului de operare adăugăm următoarea linie în fișierul /etc/rc.local (înainte de linia cu exit 0):

sudo /home/pi/single_chan_pkt_fwd-master/single_chan_pkt_fwd &

presupunând că am salvat și realizat compilarea în directorul utilizatorului pi.

Pentru mai multe informații legate de realizarea unui gateway LoRaWAN TTN Single Channel se pot consulta și următoarele materiale:

Cum putem utiliza placa Raspberry Pi ca Access Point WiFi?

La momentul actual nu se poate concepe o rețea locală fără componentă de acces fără fir (WiFi). Prețul dispozitivelor Access Point (ce permit accesul WiFi într-o rețea locală) a scăzut destul de mult și există o diversitate foarte mare de astfel de dispozitive acoperind o funcționalitate variată. Totuși, posibilitatea de personalizare a acestor dispozitive se rezumă de cele mai multe ori la o interfață web destul de sărăcăcioasă cu funcții predefinite pentru o utilizare generică. În cazul în care dorim implementarea unor funcționalități specifice (pentru o rețea de dispozitive IoT de exemplu) ce implică filtrarea traficului, cifrarea traficului sau detectarea și prevenirea intruziunilor suntem obligați să achiziționăm dispozitive AP scumpe cu funcționalități avansate de router / firewall.

Placa Raspberry Pi 3 oferă posibilitatea implementării facile a funcționalității de Access Point WiFi datorită celor două interfețe de rețea integrate: interfață ethernet și interfață WiFi, permițând implementarea de funcții avansate (VPN, IDS/IDPS) și o personalizare completă a funcționării datorită sistemului de operare Linux. În plus, conectivitatea USB a plăcii permite conectarea de dispozitive de tip modem GSM oferind posibilitatea de conectare la Internet a rețelei locale prin intermediul rețelelor mobile de date (*),(*). Pentru implementarea funcționalității de AP WiFi nu este necesară distribuția Raspbian with Pixel (cu interfață grafică), se poate utiliza și Raspbian Lite deoarece toată configurare se va efectua în linie de comandă (în Terminal). Testarea configurației prezentate s-a făcut pe un sistem Raspberry Pi 3 rulând Raspbian 8 Jessie Lite cu kernel 4.9.28-v7+.

Configurarea interfeței de rețea WiFi

Ambele interfețe de rețea ale plăcii Raspberry Pi 3 (ethernet și WiFi) sunt configurate implicit să funcționeze în rețele locale ce oferă configurație dinamică (prin serviciul de DHCP). Primul pas în implementarea funcționalității de AP WiFi este configurarea adresei IP a interfeței WiFi – modificarea configurației din alocare dinamică în alocare statică – trebuie să stabilim adresa IP a interfeței și clasa de adrese IP pentru viitori clienți WiFi.

Primul lucru este dezactivarea serviciului de configurare dinamică. Se va edita fișierul /etc/dhcpcd.conf și se va adăuga la sfârșit următoarea linie:

denyinterfaces wlan0

După dezactivarea achiziției configurației dinamice trebuie să stabilim adresa IP statică a sistemului. Se va edita fișierul /etc/network/interfaces și pentru interfața wlan0 se va introduce următoarea configurație:

allow-hotplug wlan0

iface wlan0 inet static

address 192.168.99.1

netmasq 255.255.255.0

network 192.168.99.0

broadcast 192.168.99.255

unde 192.168.99.1 este adresa locală a sistemului AP și 192.168.99.0/24 este clasa de adrese a viitorilor clienți WiFi. Se poate alege orice altă clasă de adrese IP nerutabile atâta timp cât nu intră în conflict cu clasa de adrese a interfeței ethernet. Pentru ca modificările să-și facă efectul sistemul trebuie repornit. Atenție!!! Interfața ethernet trebuie să fie conectată al o rețea locală cu acces Internet, interfața WiFi a sistemului va avea rolul, de acum încolo, de AP WiFi, nu va mai putea asigura conectivitatea de rețea normală.

Instalarea și configurarea aplicației HostAPD

Aplicația HostAPD implementează partea de autentificare și control al conexiunilor WiFi. Pentru instalarea acestei aplicației vom rula comanda:

sudo apt-get install hostapd

După instalare vom crea fișierul /etc/hostapd/hostpad.conf cu următorul conținut:

interface=wlan0

ssid=Pi3-AP

hw_mode=g

channel=6

ieee80211n=1

wmm_enabled=1

ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]

macaddr_acl=0

auth_algs=1

ignore_broadcast_ssid=0

wpa=2

wpa_key_mgmt=WPA-PSK

wpa_passphrase=raspberry

rsn_pairwise=CCMP

Denumirea AP-ului și parola de acces pot fi stabilite, bineînțeles, după bunul plac. Fișierul de configurare creat trebuie referit în fișierul de inițializare a aplicației hostapd: /etc/default/hostapd, prin inserarea următoarei linii:

DAEMON_CONF=”/etc/hostapd/hostapd.conf”

După repornirea sistemului vom putea să vedem AP-ul generat de placa Raspberry Pi dar acesta nu va funcționa încă corect.

Instalarea și configurarea aplicației DNSMASQ

Funcționalitatea de Access Point implică în mod obligatoriu două servicii de bază fără de care clienții nu pot accesa rețeaua Internet: serviciul de configurare dinamică a informațiilor IP (DHCP) și serviciul de rezolvare a adreselor IP (DNS). Aplicația DNSMASQ oferă ambele servicii pentru rețele de mici dimensiuni cum este o rețea locală formată de un AP. Instalarea aplicației se va face cu ajutorul comenzii:

sudo apt-get install dnsmasq

După instalarea aplicație vom înlocui fișierul de configurare (/etc/dnsmasq.conf)

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

sudo nano /etc/dnsmasq.conf

cu următorul conținut:

interface=wlan0

listen-address=192.168.99.1

bind-interfaces

server=8.8.8.8

domain-needed

bogus-priv

dhcp-range=192.168.99.2,192.168.99.100,12h

Bineînțeles, adresa interfeței WiFi a AP și plaja de adrese pentru clienții WiFi pot fi personalizate în funcție de alegerea clasei de adrese IP făcută anterior. Pentru ca aplicația DNSMASQ să devină funcțională utilizând configurația stabilită trebuie repornit sistemul.

Activarea rutării pachetelor și configurarea regulilor de rutare

Ultimul pas în configurarea sistemului AP este activarea rutării pachetelor între cele două interfețe de rețea a plăcii Raspberry Pi, adică pachetele provenite de la clienții WiFi să fie retrimise spre rețeaua plăcii ethernet (spre Internet). Acest lucru necesită editarea fișierului /etc/sysctl.conf și decomentarea liniei următoare:

net.ipv4.ip_forward=1

În plus de activarea rutării este necesar să definim reguli suplimentare deoarece clasa de adrese IP oferită clienților WiFi este privată. Aceste reguli vor fi impuse cu ajutorul utilitarului iptables specific sistemului de operare Linux. Vom utiliza următoarea succesiune de instrucțiuni pentru definirea regulilor:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

sudo iptables -A FORWARD -i eth0 -o wlan0 -m state –state

RELATED,ESTABLISHED -j ACCEPT

sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

Vom salva apoi regulile într-un fișier:

sudo sh -c “iptables-save > /etc/iptables.ipv4.nat”

Pe care îl vom utiliza pentru reinițializare la fiecare repornire a sistemului. Pentru acest lucru vom adăuga în fișierul /etc/rc.local următoarea linie (chiar înainte de linia exit 0):

iptables-restore < /etc/iptables.ipv4.nat

După repornirea sistemului vom avea un sistem AP complet funcțional.

Posibile funcționalități suplimentare

Configurarea prezentată este cea mai rapidă modalitate de implementare a funcționalității de AP WiFi pe o placă Raspberry Pi 3, în nici un caz nu este singura soluție – puteți vedea mai multe informații consultând (*), (*), (*), (*), (*), (*).

În plus, sistemul AP poate căpăta funcționalități suplimentare specifice sistemelor router avansate, ca de exemplu:

 

  • Server VPN (Virtul Private Network) ce permite realizarea de canale de comunicație complet cifrate între două sisteme Internet sau între un sistem Internet și un server VPN ce deservește o rețea locală. Distribuția Raspbian 8 Jessy include pachetul openvpn) ce poate fi instalat cu ajutorul comenzii (se poate consulta și materialul (*)):

sudo apt-get install openvpn

2

  • Server IDS (Intrusion Detection System) – este un sistem ce permite analiza traficului de rețea în vederea detectării activității malițioase și protejarea calculatoarelor din rețeaua locală. Distribuția Raspbian 8 Jessy include pachetul snort ce poate fi instalat cu ajutorul comenzii (se poate consulta și materialul (*)):

sudo apt-get install snort

3

  • PPPoE gateway – mulți furnizori de Internet oferă serviciile de acces la Internet prin intermediul unei conexiuni de PPPoE, conexiune ce necesită de obicei un echipament specializat. Interfața ethernet a plăcii Raspberry Pi poate fi utilizată și în acest scop utilizând pachetul ppp. Se poate vedea și materialul (*).
  • Server proxy – serviciu ce permite accelerarea traficului web într-o rețea cu conexiune la Internet mai lentă. Distribuția Raspbian include pachetul squid ce implementează această funcționalitate. Se poate vedea și materialul (*). Suplimentar, combinând funcționalitatea oferită de pachetul squid cu funcționalitatea oferită de sistemul antivirus clamav se poate obține un sistem ce poate scana tot traficul web împotriva aplicațiilor malițioase și a programelor de tip virus. În acest sens se pot consulta materialele (*), (*).