ESP8266 a použití v praxi

V minulém článku jsem popsal připojení ESP8266 (dále už jen ESP) k počítači přes USB převodník a nahrání kódu z Arduino IDE. Dnes si ukážeme jak ESP používat v praxi.

Serial

Sériová linka na RX a TX pinech ESP funguje na rychlosti 115200 baudů. Můžete však díky knihovně SoftwareSerial tuto linku emulovat i na jiných pinech.

PWM

ESP modul podporuje PWM na pinech 12,13 a 15. V Arduino IDE tak můžete rychle vyzkoušet připojením LEDky na jeden z těchto pinů a nahráním Fade examplu (nezapoměnte změnit příslušné číslo pinu v kódu).

Analogový vstup

Analogových vstupů (tedy digitálních vstupů s AD převodníkem) není na ESP mnoho. Tedy konkrétně je jeden. Je jak známe i z Arduina desetibitový (hodnoty 0-1023) ale pouze pro maximální napětí 1V. Pro zjištění hodnoty na vstupu použijte:

analogRead(A0)

Dá se však ale použít i v režimu zjištění napájecího napětí (do 3.3V) do kterého ho přepnete následovným příkazem:

ADC_MODE(ADC_VCC);

A napájecí napětí v milivoltech pak získáte příkazem:

ESP.getVcc()

 

WiFi manager

Opravdovou třešínkou na dortu je knihovna WiFi manager. Její vlastnosti zde popisovat nebudu, jelikož si to můžete přečíst na vlastním GitHubu, který má perfektní dokumentaci.

MQTT klient

Tato knihovna není výsadou pouze ESP, ale rozchodíte jí na jakémkoliv Arduinu. Bude se však hodit, pokud chcete podle následujícího článku zprovoznit teplotní čidlo.

  1. Komáři se ženili aneb něco o MQTT
  2. Instalace MQTT brokeru Mosquitto na Raspi a FreeBSD
  3. Komár (mosquitto) na Raspi
  4. ESP8266 a Arduino IDE
  5. ESP8266 a použití v praxi
  6. ESP8266 jako teplotní čidlo
  7. ESP8266 jako IoT display
Rubriky: Arduino | Štítky: , , , , | Comments Off on ESP8266 a použití v praxi

ESP8266 a Arduino IDE

Abychom mohli využívat funkcí popsaných v předchozím článku o MQTT protokolu potřebujeme k tomu mikrokontrolér s připojením k síti. Může nám k tomu posloužit klasické Arduino s WiFi, nebo Ethernet shieldem, ale proč na to rovnou nevyužít ESP8266 (dále už jen jako ESP), které má za málo peněz (cca 1.5$3.3.2016) hodně muziky. K tom ale potřebujeme do ESP nejdřív nahrát nějaký kód. Je více možností jak to udělat, ale jako velký fanoušek Arduina (a špatný znalec jazyka LUA) padá v úvahu jedině jazyk Wiring a Arduino IDE.

Takže jak na to?

Seznam potřebných věcí:

  1. Arduino IDE
  2. ESP8266 modul
  3. USB převodník
  4. Dvě tlačítka
  5. Breadboard
  6. Pár kablíků
  7. Kávu

K nahrání kódu do ESP budeme potřebovat stáhnout podporu této desky do Arduino IDE. To lze provést následovně:

  1. Otevřete Arduino IDE (zkoušeno na verzích IDE 1.6.5 a vyšších)
  2. Jděte do File -> Preferences
  3. Do formuláře Additional Bards Manager URLs přidejte následující řádek:
     http://arduino.esp8266.com/stable/package_esp8266com_index.json
  4. Restartujte IDE.
  5. Dále jděte do Tools -> Boards Manager a nainstalujte si podporu pro esp8266 by ESP8266 Community aktuálně3.3.2016 ve verzi 2.1.0.
  6. Dejte si kávu, nebo jiný nápoj dle vašich chutí, bude to chviličku trvat.
  7. A je hotovo (skoro).

Nastavení IDE

Nyní si nastavte Arduino IDE podle následujícího obrázku (odzkoušeno na ESP8266-1 a ESP8266-12) :

Setting of Arduino IDE for ESP8266

Připojení k PC

Nyní jsme připraveni ESP připojit k počítači. Pokud vlastníte nějaké dražší desky, které mají na sobě USB převodník, stačí ESP propojit USB kabelem a je vystaráno. Pokud jste držgrešle (nebo chcete provozovat ESP na baterie) musíte k ESP teprve USB převodník připojit:

POZOR!!! NASTAVTE SI USB PŘEVODNÍK NA 3.3v JINAK MŮŽE Z ESP UNIKNOUT MAGICKÝ KOUŘ!

  • RX na ESP do TX na převodníku
  • TX na ESP do RX na převodníku
  • VCC na ESP do 3V3 na převodníku
  • GND na ESP do GND na převodníku
  • REST na ESP přes tlačítko na GND
  • GPIO0 na ESP přes tlačítko na GND

Nyní už nám nic nebrání připojit ještě LED diodu a uploadnout z IDE Blink example. Před samotným uploadem je nutné stisknout obě dvě připojená tlačítka a poté nejprvě pustit tlačítko reset a následně i tlačítko na GPIO0. Tím se modul uvede do stavu, kdy očekává nahrání kódu. Jestli jste vše zvládli zapojit správně, nezbývá než vám pogratulovat k rozhýbání modulu ESP8266 a nasměrovat vás na další článek, v kterém si povíme o vlastnostech a výhodách ESP a jak jich využít v náš prospěch.

  1. Komáři se ženili aneb něco o MQTT
  2. Instalace MQTT brokeru Mosquitto na Raspi a FreeBSD
  3. Komár (mosquitto) na Raspi
  4. ESP8266 a Arduino IDE
  5. ESP8266 a použití v praxi
  6. ESP8266 jako teplotní čidlo
  7. ESP8266 jako IoT display
Rubriky: Arduino | Štítky: , , , , | Comments Off on ESP8266 a Arduino IDE

Komár (mosquitto) na Raspi

Mosquitto

komarMQTT
Mosquitto je malý MQTT broker, který lze bez větších problémů provozovat na malých zařízeních jako je, např. i Raspberry Pi. Problém se současnou verzi raspbianu (debianu na raspi) je ten, že jeho repozitáře obsahují pouze velice zastaralou verzi MQTT brokera (serveru) mosquitto. V článku instalace mosquitto ze zdrojových kódů popisujeme jak mosquitto na raspi a FreeBSD nainstalovat přímo ze zdrojových kódů.

V tomto článku si ukážeme další cestu instalace podpořenou přímo tvůrci tohoto software.

V další části budeme předpokládat, že používáme raspbian verze jessie. Verzi vašeho operačního systému raspbian(debian) zjistíte v příkazové řádce systému takto:

cat /etc/os-release

Tento příkaz vám může vypsat text podobný tomuto:

PRETTY_NAME="Raspbian GNU/Linux 8 (jessie)"
NAME="Raspbian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

Z kterého již lehce zjistíte verzi systému. V případně, že používáte starší verzi raspbianu, tedy wheezy, mosquitto podle uvedeného návodu nainstalujete ovšem bez podpory websockets, jejiž knihovna pro wheezy není v hlavních repozitářích této verze a tak jí vývojáři nepodporují. Na verzi jessie je mosquitto přeloženo s podporou websocketů. Vždy však, jak na wheezy tak na jessie, můžete instalovat broker přímo ze zdrojů a knihovnu websockets si ručně dokompilovat tak, jak popsáno v našem článku Instalace na raspi ze zdrojových kódů

Úprava zdrojů balíčkovacího systému

Nejprve musíme systému pro správu software předat a potvrdit GPG veřejný klíč k repozitáři s balíčky mosquitto:

# stáhneme GPG klíč
wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
# nahrajeme do správy balíčků
sudo apt-key add mosquitto-repo.gpg.key

Dále vložíme seznam odkazů pro naši verzi operačního systému rasbian (tedy musíme vědět zda máme jessie či wheezy) na tento repozitář do adresáře /etc/apt/sources.list.d/:

 cd /etc/apt/sources.list.d/
# ZVOLTE SEZNAM ZDROJŮ DLE VERZE VAŠEHO SYSTÉMU
# Následuje verze pro JESSIE
sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list
# následuje verze pro WHEEZY - ZVOLTE POUZE JEDEN SEZNAM
# sudo wget http://repo.mosquitto.org/debian/mosquitto-wheezy.list

Upgrade informací v systému správy software apt

Nyní musíme obnovit databázi instalovatelných balíčků pro systém apt:

 sudo apt-get update

Instalace brokeru mosquitto z adresáře tvůrců

Nejprve zjistíme zda a jaké balíčky projektu mosquitto jsou nám k dispozici:

 sudo apt-cache search mosquitto

a poté broker nainstalujeme

sudo apt-get install mosquitto

V případě, že už máte mosquitto nainstalovaný z oficiálního repozitáře vašeho systému stačí po apt-get update zadat příkaz:

sudo apt-get dist-upgrade

Konfigurace

Když nyní zkusíme mosquitto nastartovat pomocí:

sudo /etc/init.d/mosquitto start

Můžeme se přesvědčit, že běží a používá defaultního MQTT portu 1883. Přesvědčit se můžete např. příkazem:

sudo ss -a -p | grep mosq

který by měl vypsat následující výstup:

 tcp    LISTEN     0      100                  *:1883                  *:*        users:(("mosquitto",pid=4470,fd=3))

tedy vidíme TCP port 1883, na kterém mosquitto poslouchá.

Nyní v adresáři /etc/mosquitto/conf.d vytvoříme konfigurační doplněk, ve kterém mosquitto dokonfigurujeme tak, aby poslouchal i na portu např. 8813 jednoduše tak, že do nového souboru /etc/mosquitto/conf.d/websockets.conf vložíme následující řádky:

# default port for MQTT protocol
port 1883
# adding websockets listener
listener 8813
protocol websockets

Nyní MQTT broker mosquitto běží na našem Raspi jak na standardním portu TCP 1883 tak s podporou websockets na 8813.

A na závěr zbývá nastavit automatický start mosquitto při startu systému:

sudo update-rc.d mosquitto defaults
  1. Komáři se ženili aneb něco o MQTT
  2. Instalace MQTT brokeru Mosquitto na Raspi a FreeBSD
  3. Komár (mosquitto) na Raspi
  4. ESP8266 a Arduino IDE
  5. ESP8266 a použití v praxi
  6. ESP8266 jako teplotní čidlo
  7. ESP8266 jako IoT display
Rubriky: IoT, Raspberry Pi | Štítky: , , | Comments Off on Komár (mosquitto) na Raspi

Instalace Mosquitto ze zdrojových kódů na Raspi a FreeBSD

V tomto článku si popíšeme jak Mosquitto nainstalovat na Raspberry Pi přímo ze zdrojových kódů. V závěru se v poznámce zmíníme, jak přidat podporu Websockets na FreeBSD do Mosquitta instaloveného z portů.

Instalace na Raspberry Pi

Článek ve své části pro Raspi vychází z textu  Mike Karlinera.

Budeme popisovat instalaci verze mosquitto 1.4.4 a budeme jej kompilovat s podporou websockets verze 1.4. (stav březen 2016). Následující řádky předpokládají, že umíte pracovat v příkazovém řádku unixového systému a používat balíčkovací systém debianu.

Příprava systému

V případě, že jste mosquitto instalovali z repozitáře, tak jej ze systému odstraňte.
A před začátkem kompilace nového software si svůj systém aktualizujte:

sudo apt-get update

a nainstalujte balíčky potřebné ke kompilaci:

sudo apt-get install libssl-dev
sudo apt-get install cmake libc-ares-dev uuid-dev daemon

Vytvořte si adresář v němž budete kompilovat knihovnu websockets a mosquitto, např. ~/src/:

mkdir ~/src/

a stáhněte si do něj zdroje používaného software:

cd ~/src/
wget http://mosquitto.org/files/source/mosquitto-1.4.4.tar.gz
wget http://git.libwebsockets.org/cgi-bin/cgit/libwebsockets/snapshot/libwebsockets-1.4-chrome43-firefox-36.tar.gz

Vlastní kompilace a instalace zkompilovaného software

Nejprve přeložíme a nainstalujeme knihovnu websockets:

cd ~/src/
tar xvzf libwebsockets-1.4-chrome43-firefox-36.tar.gz
cd libwebsockets-1.4-chrome43-firefox-36/
mkdir build
cd build/
cmake ..
sudo make install
sudo ldconfig

poté rozbalíme zdrojové kódy MQTT brokera:

cd ~/src/
tar xvzf mosquitto-1.4.4.tar.gz

přepneme se do vytovřeného adresáře se zdrojovými kódy:

cd mosquitto-1.4.4/

a v souboru config.mk zapneme možnost užívání websockets tak, že řádek:

WITH_WEBSOCKETS:=no

změníme na:

WITH_WEBSOCKETS:=yes

Poté software přeložíme a nainstalujeme:

make
sudo make install
sudo cp mosquitto.conf /etc/mosquitto/

Úprava konfigurace

Nyní upravíme konfiguraci v souboru /etc/mosquitto/mosquitto.conf, tak aby server poslouchal jak na standardním MQTT portu tak na nestandardním portu, kde bude poskytovat připojení pomocí websockets.

Upravíme řádek v úvodní části konfigurace – nastavíme jméno uživatele, pod kterým broker poběží v sekci General configuration:

user mosquitto

v sekci Default listener nastavíme port pro MQTT:

# Port to use for the default listener.
port 1883

a připojíme v sekci Extra listeners následující konfiguraci:

listener 8813
protocol websockets

Přidání uživatele

Přidáme uživatele mosquitto do systému:

sudo adduser mosquitto

Spuštění brokeru

A v závěru spustíme broker z příkazové řádky:

 /usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

Tím nám běží čerstvě zkompilovaný mosquitto broker s podporou websockets. Jak jej používat si ukážeme v nějakém dalším článku.

Instalace na FreeBSD s podporou websockets

Na FreeBSD je v portech aktuální mosquitto avšak bez podpory websockets (zřejmě kvůli licenci knihovny websockets).
Knihovnu websockets nejprve nainstalujete stejně jako na raspi s tím, že předpokládáme, že máte nainstalovaný port cmake. Tedy:

wget http://git.libwebsockets.org/cgi-bin/cgit/libwebsockets/snapshot/libwebsockets-1.4-chrome43-firefox-36.tar.gz
tar xvzf libwebsockets-1.4-chrome43-firefox-36.tar.gz
cd libwebsockets-1.4-chrome43-firefox-36/
mkdir build
cd build/
cmake ..
make install
/etc/rc.d/ldconfig start

Poté přejdeme do portu net/mosquitto:

cd /usr/port/net/mosquitto/

a do souboru /usr/port/net/mosquitto/Makefile doplníme za řádek USERS následující konfiguraci:

CMAKE_ARGS=     -DWITH_THREADING:BOOL=OFF -DWITH_WEBSOCKETS=ON

a poté standardně port přeložíme a nainstalujeme:

 make all install clean

Konfiguraci k MQTT brokeru poté nalezneme v souboru /usr/local/mosquitto/mosquitto.conf, ve kterém provedeme stejné změny, jako v případě raspi.

  1. Komáři se ženili aneb něco o MQTT
  2. Instalace MQTT brokeru Mosquitto na Raspi a FreeBSD
  3. Komár (mosquitto) na Raspi
  4. ESP8266 a Arduino IDE
  5. ESP8266 a použití v praxi
  6. ESP8266 jako teplotní čidlo
  7. ESP8266 jako IoT display
Rubriky: IoT, Raspberry Pi | Štítky: , , | Comments Off on Instalace Mosquitto ze zdrojových kódů na Raspi a FreeBSD

Komáři se ženili aneb něco o MQTT

AjSíKjů pro věci

http://mqtt.org/Internet věcí (IoT) propojuje různé přístroje, nástroje, senzory, … do jedné sítě. I tyto „věci“ mezi sebou touží komunikovat a k této jejich komunikaci slouží takové jejich „sociální sítě“ (tedy spíše komunikační protokoly). Tato komunikace se souhrnně označuje M2M (Machine to Machine) a vlastních komunikačních způsobů, protokolů a technologií existuje celá řada. My se v tomto článku zaměříme na jednoduchý M2M komunikační protokol MQTT (Message Queuing Telemetry Transport) vyvinutý a prosazovaný především firmou IBM. My se tímto protokolem komunikace „věcí“ budeme zabývat proto, že existují pohodlné, volně dostupné nástroje, které tento protokol umožňují jednoduše využít v projektech postavených na platformě Arduino či ESP8266.

Struktura MQTT

MQTT je jednoduchý komunikační protokol postavený nad TCP/IP, který umožňuje mezi jednotlivými subjekty přednášet krátké zprávy. Zprávy mohou produkovat například čidla, ta je poskytují (publikují, angl. publish) do jednoho centra. Tomuto centru se říká MQTT Broker. Každá zpráva je publikována s někajaký názvem tématu (topic). Toto téma po jeho publikaci poté broker rozešle všem klientům, kteří si je objednali k odběru (subscribe).
Klientem může být nějaká webová služba, jednoduchý program, či jiné zařízení (např. displej), které tuto zprávu dále zpracuje, např. zobrazí. Takže vaše ESP8266 může publikovat stav teploty a zároveň třeba odebírat topic určující stav RGB diody a nějakého pinu ovládajícího LEDku, relé, atp. V pravidelných intervalech jsou tedy broker a jeho „klienti“ informováni o stavu teploty na příslušném topicu a zároveň úplně jiné zařízení může ovládat stav RGB diody či zapnutí, nebo vypnutí relé. V sumě tedy odesílající zařízení pošle zprávu označenou nějakým tématem (topic) brokeru a ten okamžitě tuto stejnou zprávu rozešle všem klientům, kteří toto téma (topic) mají u brokeru zaregistrované k odběru.
komarSchema

Topic – téma zprávy

Téma zprávy je textový řetězec, který může být pomocí znaku „/“ rozdělen do několika úrovní. Může vypadat například takto:
chata/venku/teplota
home/inside/temperature
arduino/output/pin13
Užijeme-li tématu chata/venku/teplota v naší odeslané zprávě, pak všichni odběratelé, kteří odebírají tento topic, či vše co patří do úrovně chata, atp. dostanou tuto zprávu. Systém úrovní témat umožňuje různé druhy filtrování a používání zástupných znaků, takže např. můžete odebírat zprávy, které jsou buď přesně daného topicu, či spadají do nějaké úrovně struktury témat i například v nějaké své větvi či úrovni obsahují nějaký řetězec, např. teplota.

Více např. v článku na HiveMQ, který popisuje i dobrou praxi volby názvů vašich publikovaných témat a jednotlivých úrovní.

Payload – obsah zprávy

Vlastní obsah odeslané zprávy (payload) mohou být jakákoli data. Protokol sám nespecifikuje jakého typu data mají být, takže lze posílat text, binární data, obrázky, hudbu. Záleží pak jen na tom, jakým způsobem si s vámi odeslanými daty poradí odběratel. Samotný broaker rozešle odběratelům vaši zprávu přesně v té formě, ve které jí od vás dostal. Velikost zprávy bývá omezena brokerem. Námi používaný broker omezuje velikost zprávy na 268435455 bajtů.

Broker – MQTT server

Centrem MQTT komunikace je broker. Program (server), který publikované zprávy přijímá a přeposílá je odběratelům. Vzhledem ke standardizovanému protokolu MQTT existuje několik implementací MQTT brokeru. Mezi makery je hojně používaná volně dostupná opensource implementace Mosquitto. V dalším článku si ukážeme jakým způsobem naintalujeme tento broker na Raspberry Pi.

Klienti

S MQTT může komunikovat buď specializovaný sofware (MQTT klient – jejich zajímavý seznam je opět na HiveMQ), případně můžete implementaci MQTT nasadit do vašeho programu v téměř libovolném jazyce a pro tuto variantu existuje několik již hotových knihoven, nejpoužívanější jsou opensource knihovny pro jazyky Python, C, javascript (websockets) atp. projektu PaHo.

Knihovnu pro Arduino IDE naleznete s popisem zde, knihovnu můžete získat v posledních verzích Arduino IDE přímo ve správci knihoven.

  1. Komáři se ženili aneb něco o MQTT
  2. Instalace MQTT brokeru Mosquitto na Raspi a FreeBSD
  3. Komár (mosquitto) na Raspi
  4. ESP8266 a Arduino IDE
  5. ESP8266 a použití v praxi
  6. ESP8266 jako teplotní čidlo
  7. ESP8266 jako IoT display
Rubriky: Arduino, IoT | Štítky: , , | Comments Off on Komáři se ženili aneb něco o MQTT

Čeština v Arduino IDE 1.0.5

Podílíme se na překladu rozhraní vývojového prostředí Arduino IDE do češtiny jak pro verzi IDE 1.0.5 tak nově vyvíjené větve IDE 1.5.x. Žel, náš překlad (stejně jako některé další) se zatím nedostal do starší verze IDE, jelikož vývojový team je teď soustředěn především na novou verzi 1.5.x. Proto jsme pro naše české makery vytvořili distribuční balíčky Arduino 1.0.5-CZ, které obsahují počeštění.

Balíček Arduino 1.0.5-CZ:

Balíček Arduino 1.5.3:

Balíček nainstalujte stejně jako oficiální distribuční balíčky (od kterých se tyto liší pouze přidáním jazyků). Návody, zatím pouze anglicky psané, pro arduino.cc.

Češtinu zapnete tak, že v menu File->Preferences vyberete v položce Editor language: Čeština. Poté stisknete OK a a restartujete Arduino IDE. Tedy program ukončíte a znovu spustíte program Arduino a pak už byste měli vidět počeštěná menu tak, jak je vidíte na obrázku níže:

Screen Shot 2012-12-17 at 14.23.45
Budeme vděčni za jakékoli připomínky k překladu na e-mailu mcha(zavináč)4makers.cz.

Ať vám dobře slouží k vývoji vašich projektů.

EDIT: (17.12.2012) – změněny odkazy z verze 1.0.2-CZ na 1.0.3-CZ.
EDIT: (12.03.2013) – změněny odkazy z verze 1.0.3-CZ na 1.0.4-CZ.
EDIT: (12.03.2013) – přidány odkazy na 1.5.3
EDIT: (21.05.2013) – změněny odkazy z verze 1.0.4-CZ na 1.0.5-CZ.
EDIT: (26.06.2013) – opraveny některé hrubky ve verzi 1.0.5-CZ

 

Rubriky: Arduino | Štítky: , | Napsat komentář

Kniha programování AVR v jazyce C

Screen Shot 2014-01-20 at 20.16.19 Na serveru  Svět Elektroniky vycházela v roce 2012 pěkná serie článků s názvem Programujeme AVR v Jazyku C.
Slovenský autor Onřej Závodský se rozhodl celou sérii koncem roku uvolnit jako elektronickou knihu.
Odhlédneme-li od faktu stáří popisovaných nástrojů – kniha popisuje nástroje založené na AVR Studio 4, přičemž současné je Atmel Studio 6 – můžeme se dozvědět hodně zajímavého o detailech fungování AVR procesorů (8bitové procesory firmy Atmel, mnohé desky Arduino užívají nějaký AVR) v jazyce, který může být některým čtenářům přeci jen bližší než angličtina, tedy ve slovenčtině. Kniha předpokládá znalost jazyka C, nicméně nám autor v úvodu zopakuje práci s binárními daty, zasvětí nás do struktury procesorů AVR, ukáže funkci jednotlivých registrů, naučí nás pracovat s jednotlivými I/O piny, poodhalí přerušení, čítače a časovače, docela podrobně vysvětlí PWM a jednotlivé I/O obvody (AD převodník, UART, SPI, I2C) a závěrem ukáže jak naše MCU v různých módech uspat.

Uvedené znalosti se hodí i makerům, kteří používají Arduino spolu s makry jazyka C nazývanými Wiring, jelikož ve svých programech mohou téměž bez úprav užít právě uvedené funkce a programovat arduino na nižší úrovni. Takové zásahy jsou nutné, programujete-li specielní aplikace vyžadující rychlejší přístup k nízkourovňovým vlastnostem procesoru, které makra a knihovní funkce Wiringu buď obcházejí, nebo k nim přímý přístup vůbec neumožňují. Mnohé takové příklady jsou publikovánz i na Arduino Playground a to bez hlubšího vysvětlení, no a právě uvedená kniha takovým věcem pomůže porozumět. Určitě by si knihu měl přečíst i každý, kdo chce pro Arduino psát (či upravovat) Arduino knihovny.

Odkaz na stažení knihy naleznete zde (Programujeme AVR v jazyku C)

Rubriky: Uncategorized | Comments Off on Kniha programování AVR v jazyce C

Instalace Arduino IDE

Pro potřeby našeho Geocaching eventu, CBduino si zde popíšeme instalaci programovacího prostředí Arduino IDE pod jednotlivými operačními systémy.

Windows:

  1. Stáhněte si instalační balíček( přeložená verze do češtiny zde) na Plochu.
  2. Rozbalte stažený soubor.
  3. Připojte Arduino:
    Pomocí USB kabelu připojte desku Arduina k počítači. Arduino by se mělo okamžitě zapnout(Rozsvítí se příslušná dioda LED s označením PWR).
  4.  Nainstalujte ovladače:
  • Připojte desku k počítači a chvilku vyčkejte. Windows začne automaticky proces instalace driveru, který však po chvíli selže.
  • Klikněte na Start a otevřete Ovládací panely -> Systém ->Správce zařízení.
  • Pod nastavením „Porty (COM & LPT)“ by jste měli vidět port „Arduino (COMxx)“.
  • Pravým tlačítkem myši otevřete port a vyberte „Aktualizovat software ovladače“.
  • Dále zvolte „Vyhledat ovladač v počítači“.
  • Vyberte soubor driveru nazvaný „arduino.inf“, ve složce „Drivers“ v předem rozbaleném staženém archívu.
  • Windows pak dokončí instalaci.

 

5. Spusťte Arduino IDE:

Češtinu zapnete tak, že v menu File->Preferences vyberete v položce Editor language: Čeština. Poté stisknete OK a a restartujete Arduino IDE. Tedy program ukončíte a znovu spustíte program Arduino a pak už byste měli vidět počeštěná menu.

6. Otevřete Skicu Blink:

Soubor -> Příklady -> Basics -> Blink.

Blink

7. Vyberte typ Arduina:

Nástroje -> Board -> typ Arduina, který používáte.

Board

8. Vyberte port COM:

Nástroje -> Sériový port -> port na kterém je vaše Arduino připojené.

Port

9. Uploadujte skicu:

Nyní již můžete uploadovat skicu do Arduina. Jednoduše stiskněte tlačítko „uploadovat“ (ikona šipky mířící vpravo). Po pár vteřinách kdy se upload dokončí by jste měli vidět začít blikat diodu na pinu 13.

Rubriky: Arduino | Štítky: , , , | Comments Off on Instalace Arduino IDE

Co je nového v Arduino IDE 1.0.4

2cc4e2d28a5911e2ad7a22000a9f3090_7

Včera 11.března 2013 vyšla další verze vývojového prostředí Arduino (Arduino IDE 1.0.4). V release notes (tj. záznamu provedných změn) se můžeme dočíst, že byl upraven bootloader pro Mega2560 a tudíž bude fungovat watchdog. Upraveny jsou ovladače pro Windows, zejména problém z podpisem ve Win8. Dále bylo opraveno několik chyb v jádře a knihovnách systému a nakonec, byla přidána knihovna pro nový oficiální GSM shield.

Pro novou počeštěnou verzi byl upraven i článek Čeština v Arduino IDE 1.0.4 odkud si můžete novou verzi tohoto IDE stáhnout. Případně stahujte přímo z oficiálních stránek.

Rubriky: Arduino | Štítky: , , , | Comments Off on Co je nového v Arduino IDE 1.0.4

Wi-fi USB adaptér NWD2015 na raspi

wifi dongle ZyXELPři hledání levného USB Wi-fi dongle pro mé Raspberry Pi jsem na fórech narazil na adaptér od firmy ZyXEL, NWD2105. Je dostupný (kupoval jsem u našeho lokálního dodavatele, ale je k mání i na Alze a jiných eshopech), za velmi dobrou cenu cca 250 Kč (bez DPH) a hlavně funguje s raspi bez nutnosti použití externího USB hubu pro napájení. S tím trošku souvisí jeho nižší citlivost oproti jiným podobným zařízením, nicméně na můj projekt je naprosto dostačující.  Původně jsem jej konfiguroval na starší upravené verzi Raspbianu (Occidentalis v0.2), ale pro účely tohoto článku jsem stáhl poslední stabilní Raspbian wheezy (2012-12-16-wheezy-raspbian) a zjistil, že konfigurace je oproti mým původním peripetiím s upgradem modulů kernelu a nepříjemnou konfigurací v této nové verzi OS pro Raspberry daleko jednodužší, proto si popíšeme tuto, přičemž budeme předpokládat, že konfigurujume pomocí příkazové řádky (CLI), tedy prostředictvím SSH nebo přímo z textové konzole. Konfigurace prostřednicvím GUI je u toho zařízení ještě jednodušší, použijete aplikaci, která je na defaultní ploše Raspianu pojmenována Wifi Config
wifi_config
Tato aplikace umožňuje graficky provádět prakticky to samé co budeme dělat v tomto návodu ručně, tj. zobrazí viditelné sítě a pozmění příslušný konfigurační soubor.

Při zasunutí dongle do Raspberry Pi lze nechat systém pomocí příkazu sudo lsusb vypsat jaká všechna USB zařízení vidí.

$ sudo lsusb 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. 
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. 
Bus 001 Device 005: ID 0586:341e ZyXEL Communications Corp. NWD2105 802.11bgn Wireless Adapter [Ralink RT3070]

To se hodí při řešení problémů s detekcí zažízení systémem, hledání vhodného modulu pro kernel atp.. Poslední řádek ukazuje na přítomnost zasunutého wi-fi adaptéru NWD2105.  Po zjištění, že systém zařízení nějak detekoval lze ještě pomocí sudo ifconfig zjistit, zda se adaptér objevil v systému i jako síťové rozhraní:

$sudo ifconfig
[ ... ]
wlan0     Link encap:Ethernet  HWadr b0:b2:dc:60:3b:48  
          AKTIVOVÁNO VŠESMĚROVÉ_VYSÍLÁNÍ MULTICAST  MTU:1500  Metrika:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          kolizí:0 délka odchozí fronty:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

V případě toho adaptéru nenastal žádný problém a objevilo se síťové rozhraní wlan0. V případě, že se žádné nové síťové rozhraní neobjeví, je pravděpodobné, že nastal nějaký problém na úrovni ovladače (modulu kernelu) a pak nastává hledání řešení, ale u toho konkrétního zařízení můžeme přistopit k dalšímu kroku. Ověříme zda zařízení opravdu dokáže detekovat wi-fi provoz v okolí, tj. zda vidí nějaké přítomné bezdrátové sítě. Příkazem sudo iwlist wlan0 scan  aktivujeme detekci (scan) síťí v okolí a výstupem je podrobný výpis se všemi možnými a nemožnými parametry těchto sítí (důležité pro další nastavení jsou identifikace sítě (ESSID) a podporované druhy autentizace):

$ sudo iwlist wlan0 scan
wlan0     Scan completed :
          Cell 01 - Address: 88:7F:7C:3D:31:1D
                    Channel:3
                    Frequency:2.422 GHz (Channel 3)
                    Quality=70/70  Signal level=-27 dBm  
                    Encryption key:on
                    ESSID:"BlueSky"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s
                              24 Mb/s; 36 Mb/s; 54 Mb/s
                    Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s
                    Mode:Master
                    Extra:tsf=000000aaaa6306a1
                    Extra: Last beacon: 1210ms ago
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : CCMP TKIP
                        Authentication Suites (1) : PSK
          Cell 02 - Address: 00:26:CB:C6:6E:43
                    Channel:3
                    Frequency:2.422 GHz (Channel 3)
                    Quality=45/70  Signal level=-65 dBm  
                    Encryption key:on
                    ESSID:"PracovniSit"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s
                              24 Mb/s; 36 Mb/s; 54 Mb/s
                    Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s
                    Mode:Master
                    Extra:tsf=000000addabf9922
                    Extra: Last beacon: 1210ms ago
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : CCMP TKIP
                        Authentication Suites (1) : PSK 
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : CCMP TKIP
                        Authentication Suites (1) : PSK

Z výpisu je vidět, že v dosahu jsou dvě  sítě, jedna s označením BlueSky a druhá označená PracovniSit. Protože známe přístupová hesla k síti PracovniSit můžeme nakonfigurovat připojení na úrovni bezdrátové sítě. Připojení k bezdrátové síti se nakonfiguruje  v souboru /etc/wpa_supplicant/wpa_supplicant.conf , do kterého je třeba přidat řádky s konfigurací připojení k některé z viditelných sítí. V následujícím přikladu jsou nakonfigurovány dvě sítě mojewifi a PracovniSit.

network={
  ssid="mojewifi"
  key_mgmt=WPA-PSK
  psk="heslo"
}
network={
  ssid="PracovniSit"
  key_mgmt=WPA-PSK
  psk="Heslo hello hes!"
}

V souboru můžeme nakonfigurovat připojení k několika sítím  a dokonce může jít o sítě z různým druhem autentizace, systém se pokouší k sítím připojit v pořadí uvedeném v souboru.  O dalších parametrech pro jiné nastavení vaší sítě se můžete dočíst například zde.

Když systém restartujeme tak pomocí příkazu sudo iwconfig wlan0  můžeme zjistit kvalitu a druh bezdrátového připojení:

$sudo iwconfig wlan0
wlan0     IEEE 802.11bgn  ESSID:"PracovniSit"  
          Mode:Managed  Frequency:2.472 GHz  Access Point: 00:26:CB:C6:6E:43   
          Bit Rate=1 Mb/s   Tx-Power=20 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on
          Link Quality=45/70  Signal level=-65 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:1  Invalid misc:4   Missed beacon:0

Použijeme-li nyní znovu příkaz ifconfig, tak za předpokladu, že nám IP adresu přiřazuje DHCP server bychom mohli vidět funkční síťové zařízení s nakonfigurovanou IP adresou.

$sudo ifconfig
[ ... ]
wlan0     Link encap:Ethernet  HWadr b0:b2:dc:60:3b:48  
          inet adr:10.20.30.100  Všesměr:10.20.30.255 Maska:255.255.255.0
          AKTIVOVÁNO VŠESMĚROVÉ_VYSÍLÁNÍ BĚŽÍ MULTICAST  MTU:1500  Metrika:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          kolizí:0 délka odchozí fronty:1000 
          RX bytes:1256 (1.2 KiB)  TX bytes:1012 (1012.0 B)

 

Raspberry Pi s připojeným Wi-Fi dongle od ZyXELu

 

Rubriky: Raspberry Pi | Štítky: , , | Napsat komentář

Připojení Raspi pomocí HDMI2VGA adaptéru

HD Adapter HDMI na VGAStalo se mi, že jsem přes ssh konfiguroval wifi bridge na Raspberry Pi a nějak jsem se uklepl v editování konfigurace a po restartu se raspberry na síti neobjevilo. Neměl jsem v dosahu žádné HDMI zařízení, jen seriový terminál a monitor pouze s VGA. V tu chvíli mi bylo jasné, že by se mi hodil adaptér konvertující HDMI na VGA, chvilka vyhledávání na fórech mne přivedla k levnému adaptéru, který jsem nakonec za $11 na eBay koupil z Asie (stačí na eBay vyhledat frázi  „1080P HDMI Male To VGA RGB Female Video Cable Converter Adapter“).  Aby raspi posílalo adaptéru data, kterým porozumí váš monitor, je třeba  upravit parametry v souboru config.txt . Tento textový soubor se nachází na SD kartě přímo v kořenovém adresáři. Takže stačí ve vašem systému připojit SD a soubor upravit ve vašem oblíbeném textovém editoru. Pro můj starý monitor jsem upravil následující parametry:

# nastavi maximalni HDMI kompatibilitu
hdmi_safe=1
# neprovadi se detekce typu HDMI displeje
hdmi_force_hotplug=1
# nastaveni specifického HDMI modu - viz http://elinux.org/RPi_config.txt
hdmi_group=1
hdmi_mode=1
# naridi HDMI mode namisto DVI mode
hdmi_drive=2
# zesili signal do HDMI
config_hdmi_boost=4

Nyní stačí kartu bezpečně odpojit od vašeho systému, vložit do Raspberry Pi, připojit HDMI konektor adapteru k raspi a do VGA připojit monitor a po připojení ke zdroji byste měli vidět běžné bootování raspberry na vašem VGA monitoru.

Rubriky: Raspberry Pi | Štítky: , , | Comments Off on Připojení Raspi pomocí HDMI2VGA adaptéru