Tartalomjegyzék:

Arduino 1 vezetékes általános kliens/slave eszköz (érzékelő): 4 lépés
Arduino 1 vezetékes általános kliens/slave eszköz (érzékelő): 4 lépés

Videó: Arduino 1 vezetékes általános kliens/slave eszköz (érzékelő): 4 lépés

Videó: Arduino 1 vezetékes általános kliens/slave eszköz (érzékelő): 4 lépés
Videó: Как использовать ESP32 WiFi и Bluetooth с Arduino IDE, полная информация с примерами и кодом. 2024, November
Anonim
Arduino 1 vezetékes általános kliens/slave eszköz (érzékelő)
Arduino 1 vezetékes általános kliens/slave eszköz (érzékelő)

Kérjük, olvassa el az Arduino 1 vezetékes kijelző (144 karakter) felépítésével kapcsolatos útmutatóm bevezetőjét és 2. lépését, hogy további információkat szerezzen a helyzetről és a rendelkezésre álló könyvtárakról. Amint azt itt kifejtettük, az orgua OneWire-Hub könyvtárát (OneWire slave device emulator) használjuk (ügyeljen arra, hogy más villák is vannak a környéken), hogy általános 1 vezetékes eszközöket (pl. Érzékelőket) építsenek Arduino segítségével.

1. lépés: Szoftver

A legfontosabb az, hogy olyan eszközt készítsünk, amely alapvetően bármilyen értéket képes egyszerű módon visszaadni. Ez azt jelenti, hogy a szabványos szoftverrel az összes érték közvetlenül olvasható (nincs szükség beszélgetésre vagy bináris manipulációra). Ehhez egy nagyon egyszerű alapértelmezett 1-vezetékes eszközre van szükségünk, amely képes úszókat visszaadni, és széles körben támogatott. Az egyetlen választás, amit tudok, a DS18B20 hőmérő (a DS2438 akkumulátorfigyelő is érdekes és hasznos, de meglehetősen bonyolult és így lassú a többi hátrány között). A OneWire-Hub könyvtár tartalmaz egy DS18B20_asInterface nevű példát, amely pontosan azt teszi, amire szükségünk van. Egy csomó DS18B20 -at hoz létre, amelyek mindegyike egy lebegő értéket képvisel, amelyet vissza akarunk adni az érzékelőnkről. A korlátozások itt a felbontást jelentik, és az értékeknek -55, 0… 125, 0 tartományban kell lenniük. Ez könnyen elérhető - legrosszabb esetben átméretezés -, és valójában jobb, mint pl. a DS2438 értékeket (1,5–10 V). Alternatívaként nagyobb értéktartomány állítható be a következők használatával:

setTemperatureRaw (static_cast (érték * 16.0f));

de előfordulhat, hogy ezeknek az értékeknek az olvasását és feldolgozását nem támogatja minden szoftver, mivel a specifikációkon kívül van.

Amit tudnia kell, az az, hogy kezdetben a slave -ek maximális száma 8 -ra korlátozódik, de megváltoztatható a "OneWireHub_config.h" -ban a HUB_SLAVE_LIMIT érték 32 -re történő növelésével. Ha szükséges, győződjön meg arról, hogy az ONEWIRE_TIME_MSG_HIGH_TIMEOUT alkalmazást is alkalmazza. 1 vezetékes hálózat (pl. X10), az Arduino 1 vezetékes kijelző (144 karakter) 2. lépésében leírtak szerint. Az IDE verzió> = 1.8.3 használatával pedig összeállíthatja és feltöltheti a kódot Arduino -jába.

Itt példaként annak az eszköznek a kódja, amelyet nemrég építettem. Feltételezem, hogy nem ugyanazt az érzékelő kombinációt használja, mint én, ezért itt nem részletezem a részleteket, ellenőrizze a kódot, és ha segítségre van szüksége, kérdezzen.

2. lépés: Hardver

Hardver
Hardver

Alapvetően bármi, amit az Arduino -hoz csatlakoztathat, választható érzékelőként használható. Az egyetlen korlátozás az, hogy az érzékelő leolvasása a lehető leggyorsabb legyen, hogy sok idő maradjon az 1 vezetékes kommunikációra (adja meg az Arduino 1 vezetékes kijelzővel (144 karakter) kapcsolatos utasításom 2. lépését) hogy példát kapjunk).

A lehetséges hardverre példa lehet egy időjárás állomás, például:

https://shop.boxtec.ch/wetter-messer-p-41289.html

Ezenkívül vagy helyette csak az Arduino -t szeretné használni érzékelőjeként. Erről részletesebben olvashat az Arduino kevésbé ismert funkcióiról szóló útmutatómban - lehetséges értékek a forrásfeszültség és a belső hőmérséklet.

Példaként itt van egy kép a nemrég épített eszközről. Feltételezem, hogy nem ugyanazt az érzékelőkombinációt használja, mint én, ezért itt nem részletezem a részleteket, ellenőrizze a kódot, és ha segítségre van szüksége, kérdezzen.

3. lépés: Tesztelje az eszközt

Csatlakoztassa a hálózathoz, és ellenőrizze a szoftverben, hogy minden ROM -azonosító jelen van -e, és a hőmérsékletként visszatérő értékeket.

4. lépés: Függelék: ATtiny85

Függelék: ATtiny85
Függelék: ATtiny85

Egyetlen eszköz (memória korlátozás) is elvégezhető az ATtiny85 készüléken. Ennek néhány lépést kell tennie, mivel az ATtiny85 programozását az Arduino Uno mint internetszolgáltató segítségével végezzük az Arduino IDE segítségével:

  • Linkek

    • https://playground.boxtec.ch/doku.php/arduino/att…
    • https://sebastian.expert/could-not-find-usbtiny-d…
    • https://learn.sparkfun.com/tutorials/tiny-avr-pro…
    • https://forum.arduino.cc/index.php?topic=425532.0
    • https://forum.arduino.cc/index.php?topic=128963.0
  1. használja az Arduino IDE> = 1.8.3
  2. telepítse az ATtiny opciót az IDE -be

    1. Fájl> Beállítások> További táblák kezelői URL -ek:
    2. Eszközök> Tábla: ??? > Igazgatótanácskezelő…
    3. keress rá: "tiny" és telepítsd
  3. töltse fel az internetszolgáltató vázlatát az Uno -ba

    Fájl> Példák> ArduinoISP> ArduinoISP

  4. illessze be az ATtiny85-öt a programozó (nulla erő) aljzatba és csatlakoztassa:

    1. Arduino Pin MOSI D11 - ATtiny Pin 5
    2. Arduino Pin MISO D12 - ATtiny Pin 6
    3. Arduino csap SCK D13 - ATtiny Pin 7
    4. Arduino Pin Reset D10 to ATtiny Pin 1
    5. Arduino Pin GND - ATtiny Pin 4
    6. Arduino Pin VCC - ATtiny Pin 8
    7. (> = 10uF sapka az Arduino Uno RESET tűn szükséges lehet)
  5. válassza az ATtiny85 (lásd a képet):

    • Tábla: "ATtiny25/45/85"
    • 1. időzítő óra: "CPU"
    • B. O. D.: "B. O. D. Letiltva"
    • LTO (csak 1.6.11 +): „Letiltva”
    • Chip: "ATtiny85"
    • Óra: "8 MHz (belső)" (ATtiny85 és ATtiny84 kompatibilis)
    • Óra: "16 MHz (PLL)" (alternatív beállítás csak ATtiny85 esetén)
    • Port: ???
  6. Válassza ki a programozót:

    Eszközök> Programozó: "Arduino mint internetszolgáltató" (NEM "ArduinoISP"!)

  7. állítsa be a biztosítékok beállításait (óra stb.):

    Eszközök> Burn Bootloader

  8. töltse fel ezt a kódot (a programozó hiba LED -jének ki kell kapcsolnia, különben állítsa vissza)
  9. ATtinyX5 Pin elrendezés (ATtiny85):

    1. 1. tű: PB5 (RST)
    2. 2. tű: PB3 (A3) - opcionálisan 220ohm -on keresztül 1 <-TX -hez csatlakoztatva
    3. 3. tű: PB4 (A2) - 1 vezetékes DATA -hoz csatlakoztatva
    4. 4. tű: GND - csatlakozik a GND -hez
    5. 5. tű: PB0 (PWM) - az I2C SDA érzékelőhöz csatlakoztatva
    6. 6. tű: PB1 (PWM) - LED -hez csatlakoztatva 4,7 k -ról GND -re
    7. 7. tű: PB2 (A1) - az I2C SCL érzékelőhöz csatlakoztatva
    8. 8. tű: VCC - 5V -ra csatlakoztatva

Az ATTiny85 -tel való munka némi munkát igényel, mivel további könyvtárakat kell beszereznie az I2C comm (adafruit/TinyWireM) és a soros kimenethez (TinyDebugSerial). Továbbá, mivel a memória meglehetősen korlátozott, érdemes sokat dolgozni a #define programmal, pl. soros hibakeresés eltávolításához. A példában mindezt együtt láthatja.

A teszteléshez az első lépés annak ellenőrzése, hogy a LED megfelelő, 0,5 Hz frekvencián villog -e. Ezután csatlakoztassa az 1wire buszhoz, és ellenőrizze az új eszközt.

Ajánlott: