pátek 20. ledna 2017

Domoticz Outdoor Node

Můj první Domoticz Outdoor Node

Pro měření venkovní teploty atd. jsem si do krabičky GAINTA G203CMF navrhnul jednostranný DPS, který lze osadit buď ESP modulem WEMOS D1 MINI (ESPEasy varianta) nebo Arduinem Pro Mini a NRF24L01+ (klasicka MySensors)

Dále je tam:
  • DC/DC měnič AIMTEC AMSR-783.3-NZ 
  • modul s BME280 pro měření teploty, vlhkosti a barometrického tlaku
  • modul s BH1750 pro měření světelné intenzity (varinta GY-30 (GY302 má piny jinak!))

Schema a náhled DPS:



Než jsem dal vyrobit DPS, tak jsem si to nanečisto do krabičky poskládal:

Verze ARDUINO PRO MINI / NRF24L01+:

Verze WEMOS D1 MINI:


DPS jsem dal vyrobit v osvědčeném PLOŠŇÁKY.CZ. Deska před osazením:


A po osazení:


V krabičce:


Finální umístění:










ESPEasy @ WEMOS D1 mini

Jak nahrát FW ESPEasy do WEMOS D1 mini a nastavení čidel


 Vše je samozřejmě již popsané, originál v angličtině např. zde.

Postup:
  • Připojil jsem D1 přes USB k počítači:

  • Ve správci zařízení jsem zjistil, jaké číslo COM portu modul dostal:
  • Stáhnul jsem ESP Easy firmware (image) ze stránek Let's control it a archiv rozbalil:
  • Spustil jsem flash.cmd, zadal číslo COM portu, Flash Size a číslo Buildu (v tomto případě 120)
  • Po cca minutě je "flešování" hotovo:
  • Zapnul/vypnul jsem modul D1 a připojil se na jeho Wifi, která má název ESP_0 a heslo je configesp
  • Po připojení se většinou otevře internetový prohlížeč, který má být nasměrován na konfigurační stránku Wifi Setup wizard, to však ne vždy funguje, takže jsem zadal ručně výchozí adresu modulu D1, která je:  http://192.168.4.1
  • Otevřela se mi stránka pro nastení Wifi připojení, zde jsem zvolil svoji Wifi síť, ke které se má D1 automaticky připojovat, a zadal heslo. Connect.


  • Krátce na to se zobrazí informace o připojení a přidělené IP adrese modulu D1:
    Welcome to ESP Easy: newdevice
    ESP is connected and using IP Address: 10.1.1.87
    Connect your laptop / tablet / phone back to your main Wifi network and Proceed to main config
    Powered by www.esp8266.nu
  • Přešl jsem v prohlížeči na přidělenou IP adresu 10.1.1.87 a zobrazila se konfigurační stránka ESP Easy. Přešel jsem na stránku Config:

    a nastavil:
    - Name: síťová název ESPčka
    - Admin Passw.: přístupové heslo k ESPčku
    - Controller IP: IP adresa Domoticz serveru (měl by mít pevnou adresu)
    - Controller Port: 8080 = default
    - Controller User a Passw.: přístupové údaje do Domoticzu
  • Modul D1 jsem vložil do připraveného "NODU", ve kterém jsou již přes I2C připojeny:
    - modul s BME280 pro měření teploty, vlhkosti a barometrického tlaku
    - modul s BH1750 pro měření světelné intenzity



  • Přešel jsem na stránku Devices a přidal tyto dvě připojená zařízení. Důležité je jim přiřadit stejné IDX, jako mají odpovídající Dummy zařízení v Domoticzu:



  • No a jak je vidět na obrázku výše, D1 od okamžiku správného nastavení automaticky sype naměřená data do Domoticzu 
  •  Zkusil jsem čidlům nastavit Delay na 300 sekund a v Configu zapnout Sleep Mode, čímž jsem dosádl toho, že D1 se probouzí po 5ti minutách, změří a odešle data na Domoticz.


  • Dle katalogového listu má použitý DC/DC měnič Quiescent current = 7mA, což zhruba odpovídá mému měření (Ledka a I2C moduly by měli mít velmi malou spotřebu). Změřil jsem i délku toho probuzení a D1 se zvládne připojit k wifi a odeslat naměřená data za cca 9 vteřin!


















středa 18. ledna 2017

Instalace Domoticz na Raspberry Pi Zero

Koncem roku 2016 jsem narazil na domácí automatizace... Krátce tedy popíšu, jak jsem jednu takovou zprovoznil... Vybral jsem si myslím tu z nejpoužívanějších, systém Domoticz. Základem je tzv controller (nějaké srovnání tady), což je softwarové srdce systému, které může běžet na různém hardware.

Já si za HW vybral Raspberry Pi Zero, a to hlavně kvůli ceně $5 (poštovné stojí stejně jako jedno Pi Zero :). Pravda, je potřeba ještě Micro SDHC Class 10 karta, napájení, USB hub, Lan/Wifi adaptér, krabička...


1x Raspberry Pi Zero - Max 1 Pi Zero Per Customer! - Pi Zero only for £3.33 each
Subtotal : £3.33 GBP
VAT : £0.67 GBP
Shipping : £4.00 GBP
Total : £8.00 GBP

Instalace je a není jednoduchá - jak pro koho. V angličtině je podrobně popsaná zde

Postup:

  1. Na Micro SDHC Class 10 kartu (stačí 4GB) jsem pomocí Win32DiskImageru nahrál  linuxovou distribuci RASPBIAN JESSIE LITE.
  2. Protože SSH je defaultně vypnuté, vytvořil jsem na kartě prázdný soubor 'ssh', díky kterému se povolí...
  3. Takto vypadá mé Zero s přiletovaným USB HUBem s  Ethernet portem:
    Raspberry Pi Zero + USB HUB with LAN
    Chci vyzkoušet podobný HUB za 100,- z eBay.
  4. Vložil jsem do Zera připravenou SD kartu, připojil LAN kabel a napájení.
  5. Je možné připojit Zero přes HDMI k nějakému zobrazovadlu (je potřeba redukce na miniHDMI) a nastavovat přes USB klávesnici.
     Já jsem si po připojení Zera k síti zjistil z routeru jeho přidělenou IP adresu a připojil jsem se do něj z mého PC přes SSH pomocí programu
    PuTTy.
  6. Výchozí jméno / heslo jsou:  pi / raspberry
  7.  Rychlé nastavení:
    • sudo raspi-config (1.Expand FS + 2.Change Password)
    • sudo apt-get update
    • sudo apt-get upgrade 
    • sudo reboot
    • sudo curl -L install.domoticz.com | sudo bash 
  8. Potvrdil jsem průvodci pár předvoleb a Domoticz už frčí:

Co je dále vhodné udělat:
  • Domoticz / Setup / Setting: zadat Location a nastavit Website Protection
  • SSH: 
  • sudo raspi-config: 
    • 4 Localisation. / I2 Change Timezone: Europe/Prague
    • 4 Localisation. / I4 Change Wifi C. / CZ
    • 5 Interfacing / P6 Serial / No
    • 7 Advanced O. / A3 Memory Split / 16
  • Prodloužit život SD kartě: 1, 2

K čemu to vlastně bude? No možností je mnoho, já jsem jako první udělal Dummy zařízení a v něm Temp + Humidity + Baro senzor, na který posílám data z ESPEasy (NodeMCU + BME280).

Lákavé jsou hotové moduly Sonoff od ITEADu, doporučuji mrknout na Product List na této stránce.

sobota 6. února 2016

MCP23017


MCP23017 x 16LED @ ARDUINO
16-bit remote bidirectional I/O port
1.8...5.5V DC
Low standby current: 1 µA





// COUNT 0..65535 IN BINARY:
  for (uint16_t i=0; i < 0xFFFF ; i++) {     // cycle
      mcp.writeGPIOAB(i);
  }


// DULL PWM:

 for (int ir=0; ir < 2000 ; ir++) {
  mcp.writeGPIOAB(0b0000000000000000);
  mcp.writeGPIOAB(0b1111111111111111);
  mcp.writeGPIOAB(0b0111111111111111);
  mcp.writeGPIOAB(0b0011111111111111);
  mcp.writeGPIOAB(0b0001111111111111);
  mcp.writeGPIOAB(0b0000111111111111);
  mcp.writeGPIOAB(0b0000011111111111);
  mcp.writeGPIOAB(0b0000001111111111);
  mcp.writeGPIOAB(0b0000000111111111);
  mcp.writeGPIOAB(0b0000000011111111);
  mcp.writeGPIOAB(0b0000000001111111);
  mcp.writeGPIOAB(0b0000000000111111);
  mcp.writeGPIOAB(0b0000000000011111);
  mcp.writeGPIOAB(0b0000000000001111);
  mcp.writeGPIOAB(0b0000000000000111);
  mcp.writeGPIOAB(0b0000000000000011);
  mcp.writeGPIOAB(0b0000000000000001); }