Talaan ng mga Nilalaman:
Video: Arduino 1-wire Generic Client / Slave Device (Sensor): 4 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
Mangyaring basahin ang Panimula at Hakbang 2 ng aking itinuro tungkol sa kung paano bumuo ng isang Arduino 1-wire Display (144 Chars) upang makakuha ng karagdagang impormasyon tungkol sa magagamit na sitwasyon at mga aklatan. Tulad ng ipinaliwanag doon ay gagamitin namin ang library ng OneWire-Hub (OneWire slave device emulator) ng orgua (bigyang pansin mayroong iba pang mga tinidor sa paligid) upang makabuo ng mga generic na 1-wire na aparato (hal. Mga sensor) gamit ang isang Arduino.
Hakbang 1: Software
Ang pinakamahalagang bagay ay upang makagawa ng isang aparato na maaaring ibalik talaga ang anumang uri ng halaga sa isang simpleng pamamaraan. Ibig sabihin ay magagamit ang karaniwang software upang mabasa nang direkta ang lahat ng mga halaga (hindi kinakailangan ng pag-uusap o pagmamanipula ng binary). Para sa kailangan namin ng isang napaka-simpleng default na 1-wire na aparato na maaaring bumalik sa mga float at malawak na sinusuportahan. Ang tanging pagpipilian na alam ko lamang ay ang DS18B20 Thermometer (ang DS2438 Battery Monitor ay kagiliw-giliw at kapaki-pakinabang din ngunit medyo kumplikado at sa gayon ay mabagal kasama ng iba pang mga drawbacks). Naglalaman ang library ng OneWire-Hub ng isang halimbawa na tinatawag na DS18B20_asInterface na eksaktong ginagawa ang kailangan namin. Lumilikha ito ng isang bungkos ng DS18B20 kung saan ang bawat isa ay kumakatawan sa isang halaga ng float na nais naming bumalik mula sa aming (mga) sensor. Ang mga paghihigpit dito ay ang resolusyon at ang mga halaga ay dapat nasa saklaw na -55, 0… 125, 0. Na madaling makamit - sa pinakamasamang kaso ay iligtas - at talagang mas mahusay kaysa sa mga halagang maaaring kinatawan ng hal. ang mga halagang DS2438 (1.5 hanggang 10V). Bilang kahalili ang isang mas malaking saklaw ng mga halaga ay maaaring maitakda sa pamamagitan ng paggamit ng:
setTemperatureRaw (static_cast (halaga * 16.0f));
ngunit ang pagbabasa at pagproseso ng mga halagang ito ay maaaring hindi suportado ng lahat ng software dahil wala na ito sa mga detalye.
Ang dapat mong malaman ay sa una ang pinakamaraming bilang ng mga alipin ay pinaghihigpitan sa 8 ngunit maaaring mabago sa "OneWireHub_config.h" sa pamamagitan ng pagtaas ng HUB_SLAVE_LIMIT hanggang sa 32 Gayundin dapat mong tiyakin na mag-ampon ng ONEWIRE_TIME_MSG_HIGH_TIMEOUT kung kinakailangan ng iyong 1-wire network (hal x10), tulad ng ipinaliwanag sa Hakbang 2 ng Arduino 1-wire Display (144 Chars). At upang magamit ang Bersyon ng IDE> = 1.8.3 upang makatipon at mai-upload ang code sa iyong Arduino.
Dito bilang isang halimbawa ang code ng aparato na binubuo ko kamakailan. Tulad ng ipinapalagay kong hindi mo gagamitin ang parehong kombinasyon ng mga sensor na ginagawa ko hindi ko na lalagyan pa ang mga detalye dito, suriin ang code at magtanong kung kailangan mo ng tulong.
Hakbang 2: Hardware
Talaga ang anumang bagay na maaari mong ikonekta sa isang Arduino ay maaaring magamit bilang iyong sensor na pinili. Ang tanging paghihigpit ay ang pagbabasa ng sensor ay dapat na mas mabilis hangga't maaari upang magkaroon ng maraming oras na natitira para sa 1-wire na komunikasyon na maganap (ipagkaloob ang Hakbang 2 ng aking itinuturo tungkol sa Arduino 1-wire Display (144 Chars) sa pagkakasunud-sunod upang makakuha ng isang halimbawa).
Ang isang halimbawa ng posibleng hardware ay maaaring isang istasyon ng panahon tulad ng hal.:
https://shop.boxtec.ch/wetter-messer-p-41289.html
Bilang karagdagan o sa halip na baka gusto mo lamang gamitin ang Arduino mismo bilang iyong sensor. Maaari mong basahin ang higit pa tungkol doon sa aking itinuturo tungkol sa Arduino Lesser Known Features - ang mga posibleng halaga ay ang pinagmulan ng boltahe at ang panloob na temperatura.
Dito bilang isang halimbawa ng isang imahe ng aparato na binubuo ko kamakailan lamang. Tulad ng ipinapalagay ko sa iyo na hindi gagamit ng parehong kombinasyon ng mga sensor na ginagawa ko hindi ko na lalagyan pa ang mga detalye dito, suriin ang code at magtanong kung kailangan mo ng tulong.
Hakbang 3: Subukan ang Device
Ikonekta ito sa iyong network at suriin ang iyong software para sa lahat ng mga ROM ID na naroroon at ang mga halagang ibabalik nila bilang temperatura.
Hakbang 4: Apendiks: ATtiny85
Ang mga solong aparato (limitasyon sa memorya) ay maaari ding gawin sa isang ATtiny85. Kailangan nito ng ilang mga hakbang sa aming pagpo-program ng ATtiny85 gamit ang Arduino Uno bilang ISP sa tulong ng Arduino IDE:
-
Mga link
- 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
- gamitin ang Arduino IDE> = 1.8.3
-
i-install ang opsyon na ATtiny sa IDE
- File> Mga Kagustuhan> Mga Karagdagang Mga URL ng Manager ng Boards:
- Mga tool> Lupon: ??? > Mga Tagapamahala ng Lupon…
- maghanap para sa: "maliit" at i-install
-
i-upload ang ISP sketch sa isang Uno
File> Mga Halimbawa> ArduinoISP> ArduinoISP
-
ipasok ang ATtiny85 sa socket ng programa (zero-force) at i-wire ito:
- Arduino Pin MOSI D11 hanggang ATtiny Pin 5
- Arduino Pin MISO D12 hanggang ATtiny Pin 6
- Ang Arduino Pin SCK D13 hanggang ATtiny Pin 7
- Ang Arduino Pin Reset D10 hanggang ATtiny Pin 1
- Ang Arduino Pin GND sa ATtiny Pin 4
- Ang Arduino Pin VCC sa ATtiny Pin 8
- (> = 10uF cap sa Arduino Uno RESET pin ay maaaring kailanganin)
-
piliin ang ATtiny85 (tingnan ang larawan):
- Lupon: "ATtiny25 / 45/85"
- Timer 1 Clock: "CPU"
- B. O. D.: "Hindi Magagawa ang B. O. D."
- LTO (1.6.11 + lamang): "Hindi pinagana"
- Chip: "ATtiny85"
- Clock: "8 MHz (panloob)" (Tugma ang ATtiny85 at ATtiny84)
- Clock: "16 MHz (PLL)" (alternatibong setting para sa ATtiny85 lamang)
- Port: ???
-
piliin ang Programmer:
Mga Tool> Programmer: "Arduino bilang ISP" (HINDI "ArduinoISP"!)
-
itakda ang mga setting ng piyus (orasan, atbp.):
Mga tool> Burn Bootloader
- i-upload ang code na ito (kailangang patayin ang programmer error LED, kung hindi man i-reset ito)
-
ATtinyX5 Pin Layout (ATtiny85):
- Pin 1: PB5 (RST)
- Pin 2: PB3 (A3) - opsyonal na konektado sa pamamagitan ng 220ohm sa 1 <-TX
- Pin 3: PB4 (A2) - konektado sa 1-wire DATA
- Pin 4: GND - konektado sa GND
- Pin 5: PB0 (PWM) - konektado sa sensor I2C SDA
- Pin 6: PB1 (PWM) - konektado sa LED na may 4.7k sa GND
- Pin 7: PB2 (A1) - konektado sa sensor I2C SCL
- Pin 8: VCC - konektado sa 5V
Ang pagtatrabaho sa ATTiny85 ay nangangailangan ng kaunting trabaho tulad ng kailangan mo upang makakuha ng karagdagang mga aklatan para sa I2C comm (adafruit / TinyWireM) at serial output (TinyDebugSerial). Bilang karagdagan dahil ang memorya ay lubos na limitado baka gusto mong gumana nang marami sa # tukuyin hal. upang alisin ang serial debugging. Sa halimbawang makikita mo ang lahat ng ito nang magkakasama.
Para sa pagsubok sa unang hakbang ay suriin kung ang LED flashes na may tamang dalas, 0.5Hz. Pagkatapos ay ikonekta ito sa 1wire bus at suriin para sa bagong aparato.
Inirerekumendang:
ASS Device (Anti-Social Social Device): 7 Mga Hakbang
ASS Device (Anti-Social Social Device): Sabihin na ikaw ang mabait na tao na gusto ang pagiging malapit sa mga tao ngunit ayaw sa kanila na lumapit. Ikaw din ay isang taong nagpapasaya at nahihirapang sabihin na hindi sa mga tao. Kaya hindi mo alam kung paano mo sasabihin sa kanila na tumalikod. Kaya, ipasok - ang ASS Device! Y
Madaling IOT - Kontroladong App RF Sensor Hub para sa Mga Medium Range na Mga IOT na Device: 4 na Hakbang
Madaling IOT - Kontroladong App RF Sensor Hub para sa Mga Medium Range IOT Device: Sa seryeng ito ng mga tutorial, magtatayo kami ng isang network ofdevices na maaaring makontrol sa pamamagitan ng isang link sa radyo mula sa isang sentral na aparato ng hub. Ang pakinabang ng paggamit ng isang 433MHz serial radio connection sa halip na WIFI o Bluetooth ay ang mas higit na saklaw (na may mahusay na
[Home IoT] Device ng Client ng ESP8266 MQTT: 7 Mga Hakbang
[Home IoT] ESP8266 MQTT Client Device: Nakakatuwa na ang paggamit ng isang murang WiFi na pinagana ng WiFi gamit ang MQTT na proteksyon upang makontrol ang mga aparato tulad ng awtomatikong tagapagpakain ng tubig para sa aking pusa. Mayroong aking blog para sa karagdagang impormasyon sa detalye (https://regishsu.blogspot.com/2019/07/home-iot-esp…Spe
IOT123 - ASSIMILATE SENSOR HUB: ASSEMBLY ng ICOS10 GENERIC SHELL (IDC): 6 na Hakbang
IOT123 - ASSIMILATE SENSOR HUB: ASSEMBLY ng ICOS10 GENERIC SHELL (IDC): TANDAAN Ito ay isang pinahusay na (circuit robustness) na bersyon ng ASSIMILATE SENSOR HUB: ICOS10 GENERIC SHELL (HOOKUP WIRE) Assembly. Mas mabilis itong nagtitipon at mayroong isang mas mataas na kalidad na circuit, ngunit nagkakahalaga ng higit pa (~ $ 10 dagdag kung sumusuporta sa 10 sensor). Ang pangunahing fe
Solar Irradiance Device (SID): isang Arduino Batay sa Solar Sensor: 9 Mga Hakbang
Solar Irradiance Device (SID): isang Arduino Batay sa Solar Sensor: Sinusukat ng Solar Irradiance Device (SID) ang ningning ng araw, at partikular na idinisenyo upang magamit sa silid aralan. Ang mga ito ay binuo gamit ang Arduinos, na nagbibigay-daan sa kanila na likhain ng lahat mula sa mga mag-aaral sa junior high hanggang sa mga may sapat na gulang. Ang inst