OpenWRT – mai mult decât simplă conectivitate WiFi

Succesul revoluției IoT arată în mod clar că sistemele embedded au atins un prag funcțional în care conectivitatea de rețea este absolut necesară. Bineînțeles, această evoluție a fost posibilă datorită creșterii nivelului de integrare a circuitelor integrate ce a condus la creșterea puterii de calcul a microcontrolerelor și a apariției controlerelor de rețea extrem de accesibile. Conectivitatea de rețea fără fire (WiFi) este cea mai comodă și mai flexibilă modalitate de conectare directă la rețeaua Internet a unui sistem embedded. Acest lucru se poate observa și în efortul companiilor producătoare de circuite integrate de a aduce pe piață controlere specializate WiFi din ce în ce mai puternice și din ce în ce mai ieftine. Controlere precum ESP8266 (ce echipează plăcile de dezvoltare NodeMCU, Adafruit Feather HUZZAH, Sparkfun Blynk Board, Arduino Uno WiFi), HDG204 (Arduino WiFi shield), CC3000 (CC3000 WiFi Shield) sau ATWINC1500 (Adafruit Feather M0 Wifi, Genuino MKR1000) sunt doar câteva exemple de componente ce permit conectarea unui sistem Arduino la Internet prin intermediul unei rețele WiFi.

1

https://www.robofun.ro/wireless/wireless-wifi/arduino_wifi_shield

2

https://www.robofun.ro/feather-m0-wifi-atsamd21-atwinc1500

În ciuda complexității acestei noi generații de controlere WiFi sistemele embedded pe 8 biți precum plăcile de dezvoltare Arduino Uno sau Arduino Leonardo au de îndeplinit o sarcină dificilă prin conectarea la rețeaua Internet. Chiar dacă aceste controlere implementează în totalitate stiva de comunicație TCP/IP lăsând în sarcina microcontrolerului doar implementarea nivelului aplicație, limitările sistemului rezultat sunt destul de mari fiind date de memoria internă de dimensiuni modeste (atât memoria program cât și memoria de date), viteza de procesare mică a microcontrolerului, posibilitatea redusă de prelucrare a informației (cuvânt de date pe 8 biți). Cu alte cuvinte, chiar dacă echipăm un sistem embedded pe 8 biți cu un controler WiFi performant nu vom obține un sistem de calcul cu posibilitățile de prelucrare și comunicație echivalente cu un Raspberry Pi, de exemplu, sau cu un alt sistem bazat pe o arhitectură de tip microprocesor.

Totuși, există o posibilitate prin care putem transforma o platformă Arduino clasică într-un sistem IoT cu capabilități complete de prelucrare și comunicație. Soluția este oferită de controlere de comunicație ce rulează distribuția Linux OpenWRT precum Arduino Yun.3

https://www.robofun.ro/wireless/wireless-wifi/arduino_yun

Placa Arduino Yun dispune de un microprocesor Atheros AR9331 cu 16MB memorie flash internă, unde este stocat sistemul de operare, și 64MB memorie RAM plus un  microcontrolerul ATmega32U4 (prezent și pe Arduino Leonardo). Coexistența celor două circuite programabile simplifică implementarea aplicațiilor de rețea permițând scrierea părții de nivel aplicație pe microprocesorul Atheros. Astfel programatorul are la dispoziție microcontrolerul ATmega32U4 doar pentru sarcinile specifice unei plăci Arduino: control, achiziție de date, interfață utilizator etc. Comunicația între cele două circuite programabile se face serial și este ușurată de biblioteca software Bridge. Această combinație de două circuite programabile este mult mai simplu de utilizat și mai eficientă pentru dezvoltarea aplicațiilor embedded decât o placă de dezvoltare de tipul Raspberry Pi sau BeagleBone. Pentru exemplificare vă recomandăm parcurgerea proiectului Yun Spot din cadrul cărții ”10(zece) proiecte cu Arduino” ce descrie implementarea unui router cu facilități de tip punct de acces WiFi și interfață utilizator bazată pe un LCD alfanumeric HD4478:

https://books.google.ro/books?id=aMB8BgAAQBAJ

Distribuția Linux OpenWRT ce rulează pe microprocesorul Atheros este o distribuție gândită special pentru sisteme specializate de tip punct de acces WiFi necesitând foarte puține resurse de calcul (memorie, putere procesor, spațiu de stocare intern). Această distribuție este întâlnită pe multe sisteme de tip router aflate pe piață produse de firme precum: 3Com, Asus, D-Link, Hi-Link etc. – cine știe? poate chiar routerul dvs. rulează OpenWrt…

4

https://openwrt.org/

Succesul plăcii de dezvoltare Arduino Yun a condus la diversificarea acestei subfamilii Arduino apărând diferite variante bazate pe aceiași combinație microcontroler AVR și microprocesor ce rulează OpenWRT:

Arduino Yun Mini – o placă de format mai mic dar fără mufele RJ45 (pentru conexiunea Ethernet) și USB Host (ambele prezente pe Arduino Yun) și fără cititorul de card SD. Este produsă exclusiv de arduino.org și din acest motiv biblioteca Bridge a fost rebotezată Ciao.

5

https://www.robofun.ro/arduino/arduino-yun-mini

Arduino Industrial 101 – un format fizic total atipic pentru familia Arduino, nu expunse decât 7 pini ai microcontrolerului ATmega32U4 (4 analogici și 3 digitali), în plus deține conector pentru afișaj dogOLED. Fără conectori Ethernet, USB Host și cititor card SD. Singurul avantaj este prețul mai mic. Produsă exclusiv de arduino.org.

6

https://www.robofun.ro/arduino/arduino-industrial-101

Arduino Tian – un Arduino Yun pe steroizi… Microprocesor Atheros AR9342 (560MHz, compatibil WiFi 2.4GHz și 5GHz), memorie flash 16MB + 4GB eMMC, memorie RAM 64MB, conexiune Ethernet 10/100/1000 Mbit/s. Microcontroler ARM Cortex M0+ SAM21G18 pe 32 de biți, memorie flash 256KB, memorie RAM 32KB. Conectivitate Bluetooth 4.0 / BLE. Produsă exclusiv de arduino.org .

7

https://www.robofun.ro/arduino/arduino-tian

și nu în ultimul rând: LinkIt Smart 7688 și LinkIt Smart 7688 Duo – două plăci de dezvoltare produse de compania MediaTek (sunt echipate cu microprocesoare MediaTek MT7688 580MHz, 32MB Flash, 128MB RAM) în parteneriat cu Seeed Studio. Doar varianta Duo dispune de microcontroler ATmega32U4 și, în ciuda diferenței de microprocesor, este compatibilă software 100% cu placa Arduino Yun și cu biblioteca Bridge (inclusă în distribuția OpenWRT instalată în memoria flash a plăcii). Au avantajul major al prețului …

8

https://www.robofun.ro/arduino/linkit-smart-7688-duo

 

Pentru a vă convinge de avantajele sistemului de operare OpenWRT în realizarea unor proiecte IoT vă recomandăm următoarele proiecte și articole:

9

 

Plant Monitoring System using AWS IoT

https://www.hackster.io/carmelito/plant-monitoring-system-using-aws-iot-6cb054

Make Batman dance at the rythm of a gas sensor

https://blog.arduino.cc/2015/07/23/make-batman-dance/

Simple and Smart Air Purifier System

https://create.arduino.cc/projecthub/aaronkow/simple-and-smart-air-purifier-system-8604ab

Arduino Yún: the best hacks you will ever see

http://www.open-electronics.org/arduino-yun-the-best-hacks-you-will-ever-see/

Embedded Linux Board Comparison – Raspberry Pi, Beaglebone Black, Arduino Yun, and Intel Galileo–which one is right for you?

https://learn.adafruit.com/embedded-linux-board-comparison

Zoned Climate Control with MediaTek’s LinkIt™ Smart 7688

https://www.hackster.io/BuddyC/zoned-climate-control-with-mediatek-s-linkit-smart-7688-f7eb3c

DIY a Wi-Fi Speaker with LinkIt Smart 7688

http://www.seeed.cc/project_detail.html?id=1076

Linkit SMART/ONE sensor monitoring

https://www.hackster.io/smerkousdavid/linkit-smart-one-sensor-monitoring-7e2741

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s