Projekt k repozitáru - Github: Termostat - Ethernet
Arduino Ethernet Wiznet W5100 / W5500 DS18B20 OneWire Dallas HTML Webserver WebSocket
MAC adresa Ethernet termostatu: DE:AD:BE:EF:FE:ED - Pre potreby statického priradenia IP adresy z DHCP služby
Nahratie programu do Arduina cez avrdude (vzorovo pre COM21 a program sketch.ino.hex):
avrdude -CC: avrdude.conf -v -patmega328p -carduino -PCOM21 -b115200 -D -Uflash:w:sketch.ino.hex:i
Nahratie programu do Arduina Nano s "OLD Bootloader" cez avrdude (vzorovo pre COM21 a program sketch.ino.hex):
avrdude -CC: avrdude.conf -v -patmega328p -carduino -PCOM21 -b57600 -D -Uflash:w:sketch.ino.hex:i

Spustenie projektu izbový termostat - Arduino + Ethernet Wiznet W5100 / W5500


Projekt Ethernet termostat je dostupný zdarma vo forme strojových kódov pre cieľovú platformu Arduino Uno / Nano (s čipom AVR ATmega328P). Verzia obsahuje celkom 6 strojových - predkompilovaných programov pre Ethernet shield Wiznet W5100 a W5500, firmvéry sa líšia statickou / dynamickou adresou získanou cez DHCP server. Strojový kód (.hex) zaručuje, že daný program je kompatibilný a má totožnú funkčnosť na všetky zariadenia, do ktorých sa nahrá a spustí. Nahratie firmvéru je rýchle a jednoduché cez nástroj AVRDUDE / XLoader s grafickým rozhraním. Hlavná aplikácia sa spustí ihneď po nahratí firmvéru. Kód je tak univerzálny a poskytuje možnosť na ukážku poskytnúť autorovi záujemcom o vyskúšanie projektu jeho build bez prístupu ku zdrojovému (.ino) kódu. Nakoľko má každý Ethernet termostat rovnakú - preddefinovanú MAC adresu, je možné v LAN sieti využívať iba jeden termostat, inak dôjde ku konfliktu MAC adries a nebude komunikovať ani jeden termostat!

Verzia zdarma (free) je dostupná iba vo forme strojového kódu bez prístupu k aplikácii napísanej v .ino formáte z ktorej bol program kompilovaný.

Rozdelenie strojových kódov na základe Ethernet shieldu:
  • Ethernet Wiznet W5100
  • Ethernet Wiznet W5500 (W5200 - 5500 compatible)
  • Rozdelenie strojových kódov na základe pridelenia IPv4 LAN adresy:
  • Statická - pridelená staticky priamo v zdrojovom kóde (192.168.4.1 / 192.168.1.254) 24-bit maska, t.j. sieť 192.168.4.0 / 192.168.1.0
  • Dynamická - pridelená dynamicky cez DHCP server v LAN sieti (môže byť priradená staticky na cieľovú MAC adresu prostredníctvom pravidla v routri)
  • Názov firmvéru Shield IPv4
    dynamic_W5100.hex SK W5100 priradená cez DHCP (obsahuje i maintain pre predĺženie lease time / vyžiadanie novej IP)
    dynamic_W5500.hex SK W5200 až W5500 priradená cez DHCP (obsahuje i maintain pre predĺženie lease time / vyžiadanie novej IP)
    static_W5100_1_254.hex SK W5100 192.168.1.254
    static_W5100_4_1.hex SK W5100 192.168.4.1
    static_W5500_1_254.hex SK W5200 až W5500 192.168.1.254
    static_W5500_4_1.hex SK W5200 až W5500 192.168.4.1

    Pre nahratie strojového kódu do Arduina je možné využiť nástroj AVRDUDE, ktorý pre nahrávanie skompilovaného programu využíva i prostredie Arduino IDE. Nástroj je možné spúšťať priamo z príkazového riadku (CLI), ale je nutné správne nastaviť všetky konfigurovateľné údaje (rýchlosť nahrávania firmvéru, cieľový COM port, cieľový mikrokontróler a nalinkovať avrdude.conf) a tak nie je vhodný pre menej skúsených programátorov, či laikov. Pre menej skúsených používateľov je vhodná alternatíva XLoader. Táto Windows aplikácia (nástroj) s jednoduchým grafickým rozhraním umožňuje výber firmvéru - strojového kódu (.hex), cieľovej platformy a vie dynamicky ukázať COM port, na ktorom sa zariadenie nachádza, ak je jeho ovládač nainštalovaný v operačnom systéme. XLoader umožňuje nahrať firmvér do AVR platforiem t.j. Arduino Uno, Nano, Duemilanove (AtMega328 / AtMega168), Arduino Mega (AtMega1280 / AtMega2560) a pod... Jednoduchým kliknutím na Upload je možné strojový kód automatizovane nahrať (XLoader využíva podobne ako Arduino IDE nástroj AVRDUDE). Okno XLoadera informuje o úspešnom uploade formou výpisu počtu uploadovaných bajtov. Od tohto momentu je termostat plne aktívny. V prípade DHCP verzie firmvéru sa pridelená IP adresa vypíše do UART monitoru (115200 baud/s).

    XLoader - Arduino - AVRDUDE - Termostat - Ethernet

    Zvolenie COM portu


    V prípade nahrávania firmvéru cez AVRDUDE je nutné špecifikovať COM port manuálne priamo v príkaze pre nahratie firmvéru do mikrokontroléra. Aktuálny port, kde je prihlásený mikrokontróler nájdete v Správcovi zariadení. Zariadenie je najčastejšie označené ako USB-SERIAL CH340 v prípade klonov, alebo napr. Arduino Uno v prípade originálnych Arduino dosiek. U verzií Arduina Nano je možné nájsť aj označenie FT232RL device, ak používa prevodník FTDI232RL. Baudrate pre New Bootloader je: 115200 baud/s, pre Old Bootloader: 57600 (najmä čínske verzie Arduina Nano V3.0). Na nesprávny baudrate upozorní samotné rozhranie XLoader hláškou o neúspešnom nahratí firmvéru.

    Správca zariadení - Arduino COM port
    Po úspešnom nahratí strojového kódu do Arduina je termostat plne pripravený a je dostupný na svojej IP adrese. Program funguje na základe schémy zapojenia projektu a logiky z popisu.

    Videonávod pre upload firmvéru do Arduina cez XLoader