Isi kandungan:
Video: Arduino 1-wire Generic Client / Slave Device (Sensor): 4 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Sila baca Pengenalan dan Langkah 2 arahan saya mengenai cara membina Paparan 1-wayar Arduino (144 Chars) untuk mendapatkan lebih banyak maklumat mengenai keadaan dan perpustakaan yang ada. Seperti yang dijelaskan di sana kita akan menggunakan perpustakaan OneWire-Hub (emulator peranti hamba OneWire) oleh orgua (perhatikan ada garpu lain di sekitarnya) untuk membina peranti 1 wayar generik (mis. Sensor) menggunakan Arduino.
Langkah 1: Perisian
Perkara yang paling penting adalah membuat peranti yang pada dasarnya dapat mengembalikan nilai apa pun dengan cara yang mudah. Bermaksud bahawa perisian standard dapat digunakan untuk membaca semua nilai secara langsung (tidak perlu perbualan atau manipulasi binari). Untuk itu kita memerlukan peranti 1-wayar lalai yang sangat mudah yang dapat mengembalikan pelampung dan disokong secara meluas. Satu-satunya pilihan yang saya tahu ialah Termometer DS18B20 (Monitor Bateri DS2438 juga menarik dan berguna tetapi agak rumit dan dengan demikian perlahan antara kekurangan lain). Perpustakaan OneWire-Hub mengandungi contoh yang disebut DS18B20_asInterface yang melakukan apa yang kita perlukan. Ini menghasilkan sekumpulan DS18B20 yang mana setiap satu mewakili satu nilai apungan yang ingin kita kembalikan dari sensor kita. Batasan di sini adalah ketetapan dan nilainya harus berada dalam julat -55, 0… 125, 0. Itu dapat dicapai dengan mudah - dalam keadaan terburuk adalah penukaran semula - dan sebenarnya lebih baik daripada nilai yang dapat diwakili oleh mis. nilai DS2438 (1.5 hingga 10V). Sebagai alternatif, julat nilai yang lebih besar dapat ditetapkan dengan menggunakan:
setTemperatureRaw (static_cast (nilai * 16.0f));
tetapi membaca dan memproses nilai-nilai ini mungkin tidak disokong oleh semua perisian kerana di luar spesifikasi.
Yang harus anda perhatikan ialah pada mulanya jumlah maksimum hamba dibatasi hingga 8 tetapi dapat diubah dalam "OneWireHub_config.h" dengan meningkatkan HUB_SLAVE_LIMIT hingga 32. Juga anda harus memastikan untuk menggunakan ONEWIRE_TIME_MSG_HIGH_TIMEOUT jika diperlukan oleh anda Rangkaian 1-wayar (misalnya x10), seperti yang dijelaskan dalam Langkah 2 Paparan 1-wayar Arduino (144 Karakter). Dan untuk menggunakan Versi IDE> = 1.8.3 untuk menyusun dan memuat naik kod ke Arduino anda.
Di sini sebagai contoh kod peranti yang saya bina baru-baru ini. Oleh kerana saya menganggap anda tidak menggunakan kombinasi sensor yang sama seperti yang saya lakukan, saya tidak akan memperincikannya dengan lebih terperinci di sini, periksa kodnya dan tanyakan soalan sekiranya anda memerlukan bantuan.
Langkah 2: Perkakasan
Pada dasarnya apa sahaja yang anda boleh sambungkan ke Arduino boleh digunakan sebagai pilihan anda. Satu-satunya sekatan ialah membaca sensor harus secepat mungkin untuk mempunyai banyak masa yang tersisa untuk komunikasi 1 wayar berlangsung (berikan Langkah 2 dari arahan saya mengenai Arduino 1-wire Display (144 Chars) agar untuk mendapatkan contoh).
Contoh perkakasan yang mungkin ialah stesen cuaca seperti:
https://shop.boxtec.ch/wetter-messer-p-41289.html
Selain itu atau sebagai gantinya anda mungkin mahu menggunakan Arduino itu sendiri sebagai sensor anda. Anda boleh membaca lebih lanjut mengenai perkara itu dalam arahan saya mengenai Ciri-ciri Kurang Dikenal Arduino - nilai yang mungkin adalah voltan sumber dan suhu dalaman.
Di sini sebagai contoh gambar peranti yang saya bina baru-baru ini. Oleh kerana saya menganggap anda tidak menggunakan kombinasi sensor yang sama seperti yang saya lakukan, saya tidak akan memperincikannya dengan lebih terperinci di sini, periksa kodnya dan tanyakan soalan sekiranya anda memerlukan bantuan.
Langkah 3: Uji Peranti
Sambungkannya ke rangkaian anda dan periksa perisian anda untuk semua ID ROM ada dan nilai-nilai mereka kembali sebagai suhu.
Langkah 4: Lampiran: ATtiny85
Peranti tunggal (batasan memori) juga boleh dilakukan pada ATtiny85. Ini memerlukan beberapa langkah semasa kami memprogram ATtiny85 menggunakan Arduino Uno sebagai ISP dengan bantuan Arduino IDE:
-
Pautan
- 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
- gunakan Arduino IDE> = 1.8.3
-
pasang pilihan ATtiny ke IDE
- Fail> Pilihan> URL Pengurus Papan Tambahan:
- Alatan> Papan: ??? > Pengurus Papan …
- cari: "kecil" dan pasang
-
memuat naik lakaran ISP ke Uno
Fail> Contoh> ArduinoISP> ArduinoISP
-
masukkan ATtiny85 ke soket pengaturcaraan (zero-force) dan kawatnya:
- Arduino Pin MOSI D11 hingga ATtiny Pin 5
- Arduino Pin MISO D12 hingga ATtiny Pin 6
- Arduino Pin SCK D13 hingga ATtiny Pin 7
- Arduino Pin Reset D10 ke ATtiny Pin 1
- Arduino Pin GND ke ATtiny Pin 4
- Arduino Pin VCC ke ATtiny Pin 8
- (> = Cap 10uF pada pin Arduino Uno RESET mungkin diperlukan)
-
pilih ATtiny85 (lihat gambar):
- Papan: "ATtiny25 / 45/85"
- Jam Pemasa 1: "CPU"
- B. O. D.: "B. O. D. Dilumpuhkan"
- LTO (1.6.11 + sahaja): "Dilumpuhkan"
- Cip: "ATtiny85"
- Jam: "8 MHz (dalaman)" (serasi ATtiny85 dan ATtiny84)
- Jam: "16 MHz (PLL)" (tetapan alternatif untuk ATtiny85 sahaja)
- Pelabuhan: ???
-
pilih Pengaturcara:
Alat> Pengaturcara: "Arduino sebagai ISP" (BUKAN "ArduinoISP"!)
-
tetapkan tetapan fius (jam, dll.):
Alat> Burn Bootloader
- muat naik kod ini (LED ralat pengaturcara perlu dimatikan, jika tidak tetapkan semula)
-
Tata Letak Pin ATtinyX5 (ATtiny85):
- Pin 1: PB5 (RST)
- Pin 2: PB3 (A3) - disambungkan secara pilihan melalui 220ohm hingga 1 <-TX
- Pin 3: PB4 (A2) - disambungkan ke DATA 1-wayar
- Pin 4: GND - disambungkan ke GND
- Pin 5: PB0 (PWM) - disambungkan ke sensor I2C SDA
- Pin 6: PB1 (PWM) - disambungkan ke LED dengan 4.7k ke GND
- Pin 7: PB2 (A1) - disambungkan ke sensor I2C SCL
- Pin 8: VCC - disambungkan ke 5V
Bekerja dengan ATTiny85 memerlukan sedikit lebih banyak pekerjaan kerana anda perlu mendapatkan perpustakaan tambahan untuk I2C comm (adafruit / TinyWireM) dan output bersiri (TinyDebugSerial). Selain itu kerana memori agak terhad, anda mungkin mahu banyak bekerja dengan #define mis. untuk membuang penyahpepijatan bersiri. Dalam contoh anda dapat melihat semua ini dilemparkan bersama.
Untuk menguji langkah pertama adalah memeriksa sama ada LED berkelip dengan frekuensi yang betul, 0.5Hz. Kemudian sambungkannya ke bas 1wire dan periksa peranti baru.
Disyorkan:
IOT123 - HUB SENSOR ASSIMILATE: PENGUMPULAN SHELL GENERIC ICOS10 (IDC): 6 Langkah
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 GENERIC SHELL (IDC) ASSEMBLY: NOTETIni adalah versi (ketahanan litar) yang lebih baik dari HUB ASSIMILATE SENSOR: ICOS10 GENERIC SHELL (HOOKUP WIRE). Ia dipasang lebih cepat dan mempunyai litar berkualiti tinggi, tetapi harganya lebih tinggi (~ $ 10 tambahan jika menyokong 10 sensor). Fungsi utama
Solar Irradiance Device (SID): Sensor Suria Berasaskan Arduino: 9 Langkah
Solar Irradiance Device (SID): Arduino Solar Sensor: The Solar Irradiance Device (SID) mengukur kecerahan cahaya matahari, dan dirancang khusus untuk digunakan di dalam kelas. Mereka dibina menggunakan Arduinos, yang membolehkannya diciptakan oleh semua orang dari pelajar sekolah menengah hingga dewasa. Inst ini
Slave Trigger Flash Mark II: 6 Langkah (dengan Gambar)
Slave Trigger Flash Mark II: Dalam arahan ini saya akan menerangkan cara membuat flash trigger slave (optik) sebenar dengan minimum komponen. Terdapat banyak reka bentuk kompleks yang anda dapati di internet, reka bentuk ini sangat mudah dan berfungsi baik dalam envi terang dan redup
Slave Trigger Flash: 4 Langkah (dengan Gambar)
Slave Trigger Flash: Dalam arahan ini saya akan menerangkan cara membuat peletap hamba (optik) sebenar dengan minimum komponen. Terdapat banyak reka bentuk kompleks yang anda dapati di internet, reka bentuk ini sangat mudah dan berfungsi dengan baik di persekitaran yang terang dan redup
HC - 06 (Slave Module) Mengubah "NAMA" Tanpa Digunakan "Monitor Serial Arduino" yang "Berfungsi dengan Mudah": Cara Tanpa Sesar !: 3 Langkah
HC - 06 (Slave Module) Menukar "NAMA" Tanpa Digunakan "Monitor Serial Arduino" … yang "Berfungsi dengan Mudah": Cara Tanpa Sesar !: Selepas " Masa Lama " mencuba Menukar Nama ke HC - 06 (hamba Modul), menggunakan " monitor bersiri Arduino, tanpa " Kejayaan ", saya menjumpai cara lain yang mudah dan saya Berkongsi sekarang! Selamat Bersenang-senang