Satura rādītājs:
- 1. darbība: programmatūra
- 2. darbība. Aparatūra
- 3. darbība: pārbaudiet ierīci
- 4. solis: Pielikums: ATtiny85
Video: Arduino 1 vadu vispārēja klienta/vergu ierīce (sensors): 4 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:52
Lūdzu, izlasiet manu pamācību ievadā un 2. solī par to, kā izveidot Arduino 1 vadu displeju (144 rakstzīmes), lai iegūtu vairāk informācijas par situāciju un pieejamajām bibliotēkām. Kā tur paskaidrots, mēs izmantosim orgua OneWire-Hub bibliotēku (OneWire vergu ierīces emulatoru) (pievērsiet uzmanību, ka apkārt ir arī citas dakšas), lai izveidotu vispārīgas 1 vadu ierīces (piemēram, sensorus), izmantojot Arduino.
1. darbība: programmatūra
Vissvarīgākais ir izgatavot ierīci, kas vienkāršā veidā var atgriezt būtībā jebkura veida vērtību. Tas nozīmē, ka standarta programmatūru var izmantot, lai tieši nolasītu visas vērtības (nav nepieciešama saruna vai bināras manipulācijas). Šim nolūkam mums ir nepieciešama ļoti vienkārša noklusējuma 1 vadu ierīce, kas var atgriezt pludiņus un tiek plaši atbalstīta. Vienīgā izvēle, ko es zinu, ir termometrs DS18B20 (akumulatora monitors DS2438 ir arī interesants un noderīgs, taču diezgan sarežģīts un līdz ar to lēns starp citiem trūkumiem). OneWire-Hub bibliotēkā ir piemērs ar nosaukumu DS18B20_asInterface, kas dara tieši to, kas mums nepieciešams. Tas rada virkni DS18B20, no kuriem katrs attēlo vienu peldošo vērtību, kuru mēs vēlamies atgriezt no mūsu sensora (-iem). Ierobežojumi šeit ir izšķirtspēja, un vērtībām jābūt diapazonā -55, 0… 125, 0. To var viegli sasniegt - sliktākajā gadījumā - mainīt mērogu - un patiesībā tas ir labāk nekā vērtības, kuras var attēlot, piem. DS2438 vērtības (no 1,5 līdz 10V). Varat arī iestatīt lielāku vērtību diapazonu, izmantojot:
setTemperatureRaw (static_cast (vērtība * 16.0f));
bet šo vērtību lasīšanu un apstrādi var neatbalstīt visa programmatūra, jo tās specifikācijas nav pieejamas.
Jums jāzina, ka sākotnēji maksimālais vergu skaits ir ierobežots līdz 8, bet to var mainīt sadaļā “OneWireHub_config.h”, palielinot HUB_SLAVE_LIMIT līdz 32. Ja jums ir nepieciešams, noteikti izmantojiet ONEWIRE_TIME_MSG_HIGH_TIMEOUT. 1 vadu tīkls (piemēram, x10), kā paskaidrots Arduino 1 vadu displeja 2. solī (144 rakstzīmes). Un, lai izmantotu IDE versiju> = 1.8.3, lai apkopotu un augšupielādētu kodu savā Arduino.
Šeit kā piemērs nesen izveidotās ierīces kods. Tā kā es pieņemu, ka jūs neizmantojat to pašu sensoru kombināciju, ko es izmantoju, es šeit sīkāk neiedziļināšos, pārbaudiet kodu un uzdodiet jautājumus, ja jums nepieciešama palīdzība.
2. darbība. Aparatūra
Būtībā jebko, ko varat savienot ar Arduino, var izmantot kā jūsu izvēlēto sensoru. Vienīgais ierobežojums ir tas, ka sensora nolasīšanai jābūt pēc iespējas ātrākai, lai paliktu pietiekami daudz laika, lai notiktu 1 vadu komunikācija (piešķiriet manas instrukcijas 2. soli par Arduino 1 vadu displeju (144 rakstzīmes), lai lai iegūtu piemēru).
Iespējamās aparatūras piemērs varētu būt meteoroloģiskā stacija, piemēram:
https://shop.boxtec.ch/wetter-messer-p-41289.html
Turklāt vai jūsu vietā jūs varētu vēlēties kā sensoru izmantot pašu Arduino. Vairāk par to varat izlasīt manā pamācībā par Arduino mazpazīstamajām funkcijām - iespējamās vērtības ir avota spriegums un iekšējā temperatūra.
Šeit kā piemērs nesen izveidotās ierīces attēls. Tā kā es pieņemu, ka jūs neizmantojat to pašu sensoru kombināciju, ko es izmantoju, es šeit sīkāk neiedziļināšos, pārbaudiet kodu un uzdodiet jautājumus, ja jums nepieciešama palīdzība.
3. darbība: pārbaudiet ierīci
Pievienojiet to tīklam un pārbaudiet, vai jūsu programmatūrā ir visi ROM ID un vai vērtības tiek atgrieztas kā temperatūra.
4. solis: Pielikums: ATtiny85
Atsevišķas ierīces (atmiņas ierobežošana) var veikt arī ar ATtiny85. Tas prasa dažus soļus, jo mēs programmējam ATtiny85, izmantojot Arduino Uno kā ISP, izmantojot Arduino IDE:
-
Saites
- 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
- izmantot Arduino IDE> = 1.8.3
-
instalējiet ATtiny opciju IDE
- Fails> Preferences> Papildu dēļu pārvaldnieka vietrāži URL:
- Rīki> Padome: ??? > Valdes vadītājs…
- meklējiet: "tiny" un instalējiet
-
augšupielādējiet ISP skici Uno
Fails> Piemēri> ArduinoISP> ArduinoISP
-
ievietojiet ATtiny85 programmēšanas (nulles spēka) ligzdā un pievienojiet to vadam:
- Arduino tapa MOSI D11 līdz ATtiny Pin 5
- Arduino tapa MISO D12 līdz ATtiny Pin 6
- Arduino tapa SCK D13 līdz ATtiny Pin 7
- Arduino Pin Reset D10 uz ATtiny Pin 1
- No Arduino Pin GND līdz ATtiny Pin 4
- Arduino Pin VCC līdz ATtiny Pin 8
- (> = Var būt nepieciešams 10uF vāciņš uz Arduino Uno RESET tapas)
-
izvēlieties ATtiny85 (skatiet attēlu):
- Dēlis: "ATtiny25/45/85"
- Taimeris 1 Pulkstenis: "CPU"
- B. O. D.: "B. O. D. invalīds"
- LTO (tikai 1.6.11 +): atspējots
- Mikroshēma: "ATtiny85"
- Pulkstenis: "8 MHz (iekšējais)" (saderīgs ar ATtiny85 un ATtiny84)
- Pulkstenis: "16 MHz (PLL)" (alternatīvs iestatījums tikai ATtiny85)
- Osta: ???
-
izvēlieties programmētāju:
Rīki> Programmētājs: "Arduino kā ISP" (NAV "ArduinoISP"!)
-
iestatiet drošinātāju iestatījumus (pulkstenis utt.):
Rīki> Burn Bootloader
- augšupielādējiet šo kodu (programmētāja kļūdas gaismas diodei jābūt izslēgtai, pretējā gadījumā atiestatiet to)
-
ATtinyX5 tapu izkārtojums (ATtiny85):
- 1. tapa: PB5 (RST)
- 2. tapa: PB3 (A3) - pēc izvēles caur 220ohm savienots ar 1 <-TX
- 3. tapa: PB4 (A2) - savienots ar 1 vadu DATA
- 4. tapa: GND - savienots ar GND
- 5. tapa: PB0 (PWM) - savienots ar sensoru I2C SDA
- 6. tapa: PB1 (PWM) - savienots ar LED ar 4.7k līdz GND
- 7. tapa: PB2 (A1) - savienots ar sensoru I2C SCL
- 8. tapa: VCC - savienots ar 5V
Darbam ar ATTiny85 ir nepieciešams nedaudz vairāk darba, jo jums ir nepieciešams iegūt papildu bibliotēkas I2C comm (adafruit/TinyWireM) un sērijveida izvadei (TinyDebugSerial). Turklāt, tā kā atmiņa ir diezgan ierobežota, iespējams, vēlēsities daudz strādāt ar #define, piem. lai noņemtu sērijas atkļūdošanu. Piemērā jūs varat redzēt, kā tas viss ir salikts kopā.
Lai pārbaudītu, pirmais solis ir pārbaudīt, vai gaismas diode mirgo ar pareizo frekvenci - 0,5 Hz. Pēc tam pievienojiet to 1wire kopnei un pārbaudiet jauno ierīci.
Ieteicams:
ASS ierīce (antisociāla sociālā ierīce): 7 soļi
ASS ierīce (antisociāla sociāla ierīce): sakiet, ka esat tāds cilvēks, kuram patīk atrasties cilvēku tuvumā, bet nepatīk, ka viņi nāk pārāk tuvu. Jūs arī esat cilvēku baudītājs un jums ir grūti pateikt cilvēkiem nē. Tātad jūs nezināt, kā viņiem pateikt atkāpties. Nu, ievadiet - ASS ierīce! Y
[Mājas IoT] ESP8266 MQTT klienta ierīce: 7 soļi
[Mājas IoT] ESP8266 MQTT klienta ierīce: Interesanti, ka, izmantojot lētu MCU ar WiFi, ar MQTT protokolu, lai kontrolētu tādas ierīces kā mana kaķa automātisko ūdens padevēju. Sīkākai informācijai ir pieejams mans emuārs (https://regishsu.blogspot.com/2019/07/home-iot-esp…Spe
HP WebCam 101 Aka 679257-330 tīmekļa kameras moduļa atkārtota izmantošana kā vispārēja USB tīmekļa kamera: 5 soļi
Atkārtoti izmantot HP WebCam 101 Aka 679257-330 tīmekļa kameras moduli kā vispārēju USB tīmekļa kameru: es vēlos papildināt savu 14 gadus veco Panasonic CF-18 ar pavisam jaunu tīmekļa kameru, bet Panasonic vairs neatbalsta šo brīnišķīgo mašīnu, tāpēc man tas ir jādara izmantojiet pelēko vielu kaut kam vienkāršākam nekā b & b (alus un burgeri). Šī ir pirmā daļa
IOT123 - D1M BLOCKS - Vispārējā montāža: 7 soļi
IOT123 - D1M BLOCKS - Vispārējā montāža: izstrādājot prototipus vai veidojot shēmas saviem projektiem, tiklīdz komponenti ir pielodēti pie PCB, ir ierobežots to atkārtotas izmantošanas apjoms citās ķēdēs bojājumu atkausēšanas dēļ. Tieši tur nāk D1M BLOCKS. Tās ir korpusa/kraušanas sistēma, kas paredzēta
HC - 06 (vergu modulis) Nosaukuma "NAME" nomaiņa, neizmantojot "Monitor Serial Arduino" kas "darbojas viegli": nevainojams veids!: 3 soļi
HC - 06 (vergu modulis) Nosaukuma "NAME" maiņa bez lietošanas "Monitor Serial Arduino" … kas "darbojas viegli": nevainojams veids!: Pēc " Ilgi " mēģinot mainīt nosaukumu uz HC -06 (vergu modulis), izmantojot " Arduino sērijas monitors, bez " Veiksmi ", es atradu citu vienkāršu veidu, un es tagad kopīgošu! Izklaidējieties, draugi