Kazalo:
- 1. korak: Programska oprema
- 2. korak: Strojna oprema
- Korak: Preizkusite napravo
- 4. korak: Dodatek: ATtiny85
Video: Arduino 1-žilna splošna odjemalska/podrejena naprava (senzor): 4 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
Prosimo, preberite uvod in 2. korak mojega navodila, kako zgraditi 1-žični zaslon Arduino (144 znakov), da dobite več informacij o razmerah in knjižnicah, ki so na voljo. Kot je pojasnjeno, bomo za izdelavo generičnih enožičnih naprav (npr. Senzorjev) z uporabo Arduina uporabili knjižnico OneWire-Hub (emulator podrejenih naprav OneWire).
1. korak: Programska oprema
Najpomembnejša stvar je, da naredite napravo, ki lahko v bistvu na preprost način vrne kakršno koli vrednost. To pomeni, da se s standardno programsko opremo lahko neposredno berejo vse vrednosti (pogovora ali binarne manipulacije ni potrebno). Za to potrebujemo zelo preprosto privzeto 1-žilno napravo, ki lahko vrne plavajoče in je široko podprta. Edina izbira, ki jo poznam, je termometer DS18B20 (monitor baterije DS2438 je zanimiv in uporaben, vendar precej zapleten in zato počasen med drugimi pomanjkljivostmi). Knjižnica OneWire-Hub vsebuje primer, imenovan DS18B20_asInterface, ki naredi točno tisto, kar potrebujemo. Ustvari kup DS18B20, od katerih vsak predstavlja eno plavajočo vrednost, ki jo želimo vrniti iz naših senzorjev. Tu so omejitve ločljivost in vrednosti morajo biti v območju -55, 0 … 125, 0. To je mogoče zlahka doseči - v najslabšem primeru prilagoditi velikost - in je dejansko boljše od vrednosti, ki jih lahko predstavimo npr. vrednosti DS2438 (1,5 do 10 V). Druga možnost je, da nastavite večji razpon vrednosti z:
setTemperatureRaw (static_cast (vrednost * 16,0f));
vendar branje in obdelava teh vrednosti morda ne podpira vsa programska oprema, ker nima specifikacij.
Zavedati se morate, da je sprva največje število podrejenih omejeno na 8, vendar jih je mogoče spremeniti v »OneWireHub_config.h« s povečanjem HUB_SLAVE_LIMIT do 32. Prav tako morate poskrbeti, da sprejmete ONEWIRE_TIME_MSG_HIGH_TIMEOUT, če bo to potrebno 1-žično omrežje (npr. X10), kot je razloženo v 2. koraku Arduino 1-žičnega zaslona (144 znakov). In za uporabo različice IDE> = 1.8.3 za sestavljanje in nalaganje kode v vaš Arduino.
Tu je na primer koda naprave, ki sem jo izdelal pred kratkim. Ker predvidevam, da ne uporabljate iste kombinacije senzorjev, ki jih uporabljam jaz, se tukaj ne bom spuščal v podrobnosti, preverite kodo in postavite vprašanja, če potrebujete pomoč.
2. korak: Strojna oprema
V bistvu lahko vse, kar lahko povežete z Arduinom, uporabite kot senzor po vaši izbiri. Edina omejitev je, da mora biti branje senzorja čim hitrejše, da ostane dovolj časa za izvedbo 1-žične komunikacije (podarite 2. korak mojega navodila o 1-žičnem zaslonu Arduino (144 znakov) po vrstnem redu) za primer).
Primer možne strojne opreme je lahko vremenska postaja, na primer:
https://shop.boxtec.ch/wetter-messer-p-41289.html
Dodatno ali namesto vas bi morda želeli uporabiti sam Arduino kot svoj senzor. Več o tem lahko preberete v mojih navodilih o manj znanih lastnostih Arduino - možne vrednosti so napetost vira in notranja temperatura.
Tu je na primer slika naprave, ki sem jo izdelal pred kratkim. Ker predvidevam, da ne uporabljate iste kombinacije senzorjev, ki jih uporabljam jaz, tukaj ne bom šel podrobneje, preverite kodo in postavite vprašanja, če potrebujete pomoč.
Korak: Preizkusite napravo
Povežite ga z omrežjem in preverite, ali so v programski opremi prisotni vsi ID -ji ROM -a in vrednosti, ki se vrnejo kot temperatura.
4. korak: Dodatek: ATtiny85
Posamezne naprave (omejitev pomnilnika) je mogoče narediti tudi na ATtiny85. To potrebuje nekaj korakov, ko programiramo ATtiny85 z uporabo Arduino Uno kot ponudnika internetnih storitev s pomočjo Arduino IDE:
-
Povezave
- 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
- uporabite Arduino IDE> = 1.8.3
-
namestite možnost ATtiny v IDE
- Datoteka> Nastavitve> URL -ji dodatnih upraviteljev plošč:
- Orodja> Plošča: ??? > Upravni odbor …
- poiščite: "tiny" in namestite
-
naložite skico ponudnika internetnih storitev v Uno
Datoteka> Primeri> ArduinoISP> ArduinoISP
-
vstavite ATtiny85 v vtičnico za programiranje (brez sile) in jo ožičite:
- Arduino Pin MOSI D11 do ATtiny Pin 5
- Arduino Pin MISO D12 do ATtiny Pin 6
- Arduino Pin SCK D13 do ATtiny Pin 7
- Arduino Pin ponastavite D10 na ATtiny Pin 1
- Arduino Pin GND do ATtiny Pin 4
- Arduino Pin VCC do ATtiny Pin 8
- (> Morda bo potreben pokrovček 10uF na zatiču za ponastavitev Arduino Uno)
-
izberite ATtiny85 (glejte sliko):
- Plošča: "ATtiny25/45/85"
- Ura časovnika 1: "CPE"
- B. O. D.: "B. O. D. onemogočeno"
- LTO (samo 1.6.11 +): "Onemogočeno"
- Čip: "ATtiny85"
- Ura: "8 MHz (notranja)" (združljivo z ATtiny85 in ATtiny84)
- Ura: "16 MHz (PLL)" (alternativna nastavitev samo za ATtiny85)
- Pristanišče: ???
-
izberite programer:
Orodja> Programer: "Arduino kot ponudnik internetnih storitev" (NE "ArduinoISP"!)
-
nastavite nastavitve varovalk (ura itd.):
Orodja> Burn Bootloader
- naložite to kodo (LED dioda napake programerja mora biti izklopljena, sicer jo ponastavite)
-
Postavitev pin ATtinyX5 (ATtiny85):
- Pin 1: PB5 (RST)
- Pin 2: PB3 (A3) - po izbiri priključen preko 220ohm na 1 <-TX
- Pin 3: PB4 (A2) - povezan z 1 -žičnimi DATA
- Pin 4: GND - povezan z GND
- Pin 5: PB0 (PWM) - priključen na senzor I2C SDA
- Pin 6: PB1 (PWM) - priključen na LED z 4,7k na GND
- Pin 7: PB2 (A1) - priključen na senzor I2C SCL
- Pin 8: VCC - priključen na 5V
Delo z ATTiny85 zahteva nekaj več dela, saj potrebujete dodatne knjižnice za komunikacijo I2C (adafruit/TinyWireM) in serijski izhod (TinyDebugSerial). Poleg tega, ker je pomnilnik precej omejen, boste morda želeli veliko delati z #define npr. odstraniti serijsko odpravljanje napak. V primeru lahko vidite, da je vse skupaj združeno.
Za preskus je prvi korak, da preverite, ali LED utripa s pravilno frekvenco, 0,5Hz. Nato ga povežite z vodilom 1wire in preverite, ali je nova naprava.
Priporočena:
No Pee Now, naprava za prilagajanje vedenja hišnih ljubljenčkov, ki preprečuje mačkam, da bi lulele po vašem domu: 4 koraki
No Pee Now, Pet -Behavior Adjustment Device, preprečuje mačkam, da bi lulele po vašem domu: moja mucka me je tako motila, da rada lula na mojo posteljo, preveril sem vse, kar potrebuje, in jo odpeljal tudi k veterinarju. Ko sem odpravil težave in si prisluhnil zdravnikovi besedi, se zavedam, da ima le nekaj slabega vedenja. Torej
Naprava ASS (protidruštvena socialna naprava): 7 korakov
Naprava ASS (antisocialna družabna naprava): recimo, da ste nekakšna oseba, ki je rada v bližini ljudi, vendar jim ni všeč, da bi se jim približali. Prav tako ste ljubitelj ljudi in težko rečete ne ljudem. Zato ne veste, kako jim reči, naj odstopijo. No, vnesite - naprava ASS! Y
[Domači IoT] Odjemalska naprava ESP8266 MQTT: 7 korakov
[Domači IoT] Odjemalska naprava ESP8266 MQTT: Zanimivo je, da z uporabo poceni MCU-ja, ki podpira WiFi, s protokolom MQTT upravljate naprave, kot je samodejni podajalnik vode za mojo mačko. Za podrobnejše informacije je moj blog (https://regishsu.blogspot.com/2019/07/home-iot-esp…Spe
Naprava za sončno obsevanje (SID): sončni senzor na osnovi Arduina: 9 korakov
Naprava za sončno obsevanje (SID): Sončni senzor na osnovi Arduina: Naprava za sončno obsevanje (SID) meri svetlost sonca in je posebej zasnovana za uporabo v razredu. Zgrajeni so z uporabo Arduinosa, kar jim omogoča, da jih ustvarijo vsi, od srednješolcev do odraslih. Ta inst
Govorljiva merilna naprava z UV-indeksom, ki uporablja senzor VEML6075 in Mali sogovornik: 5 korakov
Govorilna merilna naprava z UV-indeksom, ki uporablja senzor VEML6075 in Little Buddy Talker: Prihajajo poletja! Sonce sije! Kar je super. Ker pa ultravijolično (UV) sevanje postaja vse intenzivnejše, ljudje, kot sem jaz, dobijo pege, majhne rjave otočke, ki plavajo v morju rdeče, sončne in srbeče kože. Biti sposoben imeti informacije v realnem času