Obsah:

1-drôtové generické klientske/podradené zariadenie Arduino (snímač): 4 kroky
1-drôtové generické klientske/podradené zariadenie Arduino (snímač): 4 kroky

Video: 1-drôtové generické klientske/podradené zariadenie Arduino (snímač): 4 kroky

Video: 1-drôtové generické klientske/podradené zariadenie Arduino (snímač): 4 kroky
Video: Полный курс React Query за час | TanStack Query v4 для начинающих 2024, November
Anonim
Generické klientske/podradené zariadenie Arduino (snímač)
Generické klientske/podradené zariadenie Arduino (snímač)

Prečítajte si úvod a krok 2 môjho pokynu o tom, ako vytvoriť 1-vodičový displej Arduino (144 znakov), aby ste získali viac informácií o situácii a dostupných knižniciach. Ako je tam vysvetlené, použijeme knižnicu OneWire-Hub (emulátor podradeného zariadenia OneWire) organizácie orgua (pozor, okolo sú ďalšie vidlice), aby sme pomocou Arduina mohli postaviť generické 1-drôtové zariadenia (napr. Senzory).

Krok 1: Softvér

Najdôležitejšie je vytvoriť zariadenie, ktoré dokáže jednoduchým spôsobom vracať v zásade akúkoľvek hodnotu. To znamená, že na čítanie všetkých hodnôt je možné použiť štandardný softvér (nie je potrebná žiadna konverzácia ani binárna manipulácia). Na to potrebujeme veľmi jednoduché predvolené 1-drôtové zariadenie, ktoré dokáže vrátiť plaváky a je široko podporované. Jedinou voľbou, ktorú poznám, je teplomer DS18B20 (monitor batérie DS2438 je tiež zaujímavý a užitočný, ale pomerne zložitý, a teda pomalý okrem iných nevýhod). Knižnica OneWire-Hub obsahuje príklad s názvom DS18B20_asInterface, ktorý robí presne to, čo potrebujeme. Vytvára veľa DS18B20, z ktorých každý predstavuje jednu pohyblivú hodnotu, ktorú chceme vrátiť z našich senzorov. Obmedzeniami sú rozlíšenie a hodnoty musia byť v rozsahu -55, 0… 125, 0. To sa dá ľahko dosiahnuť - v najhoršom prípade zmena stupnice - a je v skutočnosti lepšie ako hodnoty, ktoré je možné reprezentovať napr. hodnoty DS2438 (1,5 až 10V). Väčší rozsah hodnôt je možné nastaviť aj pomocou:

setTemperatureRaw (static_cast (hodnota * 16,0f));

čítanie a spracovanie týchto hodnôt však nemusí byť podporované všetkým softvérom, pretože je mimo špecifikácií.

Musíte si uvedomiť, že spočiatku je maximálny počet otrokov obmedzený na 8, ale dá sa zmeniť v „OneWireHub_config.h“zvýšením HUB_SLAVE_LIMIT až na 32. Tiež sa musíte uistiť, že v prípade potreby prijmete ONEWIRE_TIME_MSG_HIGH_TIMEOUT 1-vodičová sieť (napr. X10), ako je vysvetlené v kroku 2 1-vodičového displeja Arduino (144 znakov). A použiť verziu IDE> = 1.8.3 na kompiláciu a nahranie kódu do vášho Arduina.

Tu je príklad kódu zariadenia, ktoré som postavil veľmi nedávno. Keďže predpokladám, že nepoužívate rovnakú kombináciu senzorov ako ja, nebudem sa tu podrobnejšie zaoberať, skontrolujte kód a položte otázky, ak potrebujete pomoc.

Krok 2: Hardvér

Hardvér
Hardvér

V zásade čokoľvek, čo môžete pripojiť k Arduinu, môžete použiť ako svoj vybraný senzor. Jediným obmedzením je, že čítanie senzora by malo byť čo najrýchlejšie, aby mal dostatok času na uskutočnenie 1-vodičovej komunikácie (poraďte krok 2 môjho pokynu o 1-vodičovom displeji Arduino (144 znakov) v uvedenom poradí). získať príklad).

Príkladom možného hardvéru môže byť meteorologická stanica, ako napríklad:

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

Navyše alebo namiesto vás možno budete chcieť ako snímač použiť samotné Arduino. Viac si o tom môžete prečítať v mojom návode na používanie menej známych funkcií Arduina - možnými hodnotami sú napätie zdroja a vnútorná teplota.

Tu je ako príklad obrázok zariadenia, ktoré som postavil veľmi nedávno. Keďže predpokladám, že nepoužívate rovnakú kombináciu senzorov ako ja, nebudem sa tu podrobnejšie zaoberať, skontrolujte kód a položte otázky, ak potrebujete pomoc.

Krok 3: Otestujte zariadenie

Pripojte ho k sieti a skontrolujte, či váš softvér obsahuje všetky ID ROM a hodnoty, ktoré vracajú ako teplotu.

Krok 4: Príloha: ATtiny85

Príloha: ATtiny85
Príloha: ATtiny85

Jednotlivé zariadenia (obmedzenie pamäte) je možné vykonať aj na serveri ATtiny85. Pri programovaní ATtiny85 pomocou Arduino Uno ako ISP s pomocou Arduino IDE to vyžaduje niekoľko krokov:

  • Odkazy

    • 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. používať Arduino IDE> = 1.8.3
  2. nainštalovať voľbu ATtiny do IDE

    1. Súbor> Predvoľby> Adresy URL ďalších správcov dosiek:
    2. Nástroje> Doska: ??? > Správca dosiek …
    3. vyhľadajte výraz „malý“a nainštalujte ho
  3. nahrajte skicu ISP na server Uno

    Súbor> Príklady> ArduinoISP> ArduinoISP

  4. vložte ATtiny85 do programovacej zásuvky (s nulovou silou) a zapojte:

    1. Pin Arduino MOSI D11 na ATtiny Pin 5
    2. Pin Arduino MISO D12 na ATtiny Pin 6
    3. Pin Arduino SCK D13 na ATtiny Pin 7
    4. Pin Arduino resetujte D10 na ATtiny Pin 1
    5. Pin Arduino GND na ATtiny Pin 4
    6. Pin Arduino VCC na ATtiny Pin 8
    7. (> = Možno bude potrebná čiapka 10uF na pine RESET Arduino Uno)
  5. vyberte ATtiny85 (pozri obrázok):

    • Doska: "ATtiny25/45/85"
    • Hodiny časovača 1: „CPU“
    • B. O. D.: „B. O. D. je zakázaný“
    • LTO (iba 1.6.11 +): „Zakázané“
    • Čip: "ATtiny85"
    • Hodiny: "8 MHz (interné)" (kompatibilné s ATtiny85 a ATtiny84)
    • Hodiny: „16 MHz (PLL)“(alternatívne nastavenie iba pre ATtiny85)
    • Prístav: ???
  6. vyberte programátora:

    Nástroje> Programátor: „Arduino ako ISP“(NIE „ArduinoISP“!)

  7. nastaviť nastavenia poistky (hodiny atď.):

    Nástroje> Napáliť bootloader

  8. nahrajte tento kód (kontrolka chyby programátora musí zhasnúť, inak ho resetujte)
  9. Rozloženie pinov ATtinyX5 (ATtiny85):

    1. Pin 1: PB5 (RST)
    2. Pin 2: PB3 (A3) - voliteľne pripojený cez 220 ohmov k 1 <-TX
    3. Pin 3: PB4 (A2) - pripojený k 1 -vodičovému DATA
    4. Pin 4: GND - pripojený k GND
    5. Pin 5: PB0 (PWM) - pripojený k senzoru I2C SDA
    6. Pin 6: PB1 (PWM) - pripojený k LED s 4,7 k na GND
    7. Pin 7: PB2 (A1) - pripojený k senzoru I2C SCL
    8. Pin 8: VCC - pripojený k 5V

Práca s ATTiny85 vyžaduje trochu viac práce, pretože potrebujete ďalšie knižnice pre I2C comm (adafruit/TinyWireM) a sériový výstup (TinyDebugSerial). Pretože je pamäť dosť obmedzená, budete chcieť pravdepodobne veľa pracovať s #define, napr. na odstránenie sériového ladenia. V príklade môžete vidieť, ako je to všetko spojené.

Pri testovaní je prvým krokom kontrola, či LED dióda bliká so správnou frekvenciou 0,5 Hz. Potom ho pripojte k zbernici 1wire a vyhľadajte nové zariadenie.

Odporúča: