Mundarija:
- 1 -qadam: dasturiy ta'minot
- 2 -qadam: Uskuna
- 3 -qadam: qurilmani sinab ko'ring
- 4 -qadam: Qo'shimcha: ATtiny85
Video: Arduino 1-simli umumiy mijoz/qul qurilmasi (Sensor): 4 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
Vaziyat va mavjud kutubxonalar haqida ko'proq ma'lumot olish uchun Arduino 1 simli displeyni (144 ta belgilar) qanday qurish kerakligi haqidagi ko'rsatmamning kirish va 2-bosqichini o'qing. U erda tushuntirilganidek, biz Arduino yordamida umumiy 1 simli qurilmalarni (masalan, datchiklarni) yaratish uchun OneWire-Hub kutubxonasidan (OneWire qul qurilmalar emulyatori) orgua (atrofda boshqa vilkalar borligiga e'tibor bering) dan foydalanamiz.
1 -qadam: dasturiy ta'minot
Eng muhimi, har qanday qiymatni oddiy tarzda qaytaradigan qurilmani yaratishdir. Bu shuni anglatadiki, standart dasturiy ta'minot barcha qiymatlarni to'g'ridan -to'g'ri o'qish uchun ishlatilishi mumkin (suhbat yoki ikkilik manipulyatsiya kerak emas). Buning uchun bizga suzishni qaytaradigan va keng qo'llab-quvvatlanadigan oddiy 1 simli qurilma kerak. Men biladigan yagona tanlov bu DS18B20 termometridir (DS2438 batareya monitori juda qiziqarli va foydalidir, lekin juda murakkab va shuning uchun boshqa kamchiliklar orasida sekin). OneWire-Hub kutubxonasida bizga kerak bo'lgan narsani bajaradigan DS18B20_asInterface nomli misol mavjud. Bu DS18B20 to'plamini yaratadi, ularning har biri sensorlarimizdan qaytmoqchi bo'lgan bitta o'zgaruvchan qiymatni anglatadi. Bu erda cheklovlar piksellar soniga to'g'ri keladi va qiymatlar -55, 0… 125, 0 oralig'ida bo'lishi kerak. Bunga osonlik bilan erishish mumkin - eng yomoni, qayta o'lchamaslik - va aslida ko'rsatilishi mumkin bo'lgan qiymatlardan yaxshiroqdir. DS2438 qiymatlari (1,5 dan 10V gacha). Shu bilan bir qatorda katta qiymatlar diapazoni quyidagicha o'rnatilishi mumkin.
setTemperatureRaw (static_cast (qiymat * 16.0f));
lekin bu qiymatlarni o'qish va qayta ishlash hamma dasturlar tomonidan qo'llab -quvvatlanmasligi mumkin, chunki u texnik xususiyatlarga ega emas.
Siz bilishingiz kerak bo'lgan narsa shundaki, dastlab maksimal qullar soni 8 taga cheklangan, lekin "OneWireHub_config.h" da HUB_SLAVE_LIMIT ni 32 taga ko'paytirish orqali o'zgartirish mumkin. Agar kerak bo'lsa, ONEWIRE_TIME_MSG_HIGH_TIMEOUT qabul qilinganligiga ishonch hosil qilishingiz kerak. 1 simli tarmoq (masalan, x10), Arduino 1 simli displeyining 2-bosqichida (144 ta belgilar) tushuntirilganidek. Kodni kompilyatsiya qilish va Arduino -ga yuklash uchun IDE>> 1.8.3 versiyasidan foydalanish.
Misol sifatida men yaqinda qurgan qurilmaning kodi. Men sensorlar kombinatsiyasini ishlatmayman deb o'ylayman, men bu erda batafsil ma'lumot bermayman, kodni tekshiring va sizga yordam kerak bo'lsa savollar bering.
2 -qadam: Uskuna
Asosan, Arduino -ga ulanadigan har qanday narsani siz tanlagan sensor sifatida ishlatish mumkin. Faqatgina cheklov shundaki, 1 simli aloqa uchun ko'p vaqt qolishi uchun sensorni o'qish imkon qadar tezroq bo'lishi kerak (Arduino 1-simli displey (144 belgilar) haqida ko'rsatmamning 2-bosqichini o'qing). misol olish uchun).
Mumkin bo'lgan uskunalarga misol ob -havo stantsiyasi bo'lishi mumkin, masalan:
https://shop.boxtec.ch/wetter-messer-p-41289.html
Qo'shimcha yoki sizning o'rniga Arduino -ni sensor sifatida ishlatishni xohlashingiz mumkin. Siz bu haqda ko'proq ma'lumotga ega bo'lishingiz mumkin - Arduino -ning ma'lum bo'lmagan xususiyatlari - mumkin bo'lgan qiymatlar manba voltaji va ichki harorat.
Misol sifatida men yaqinda qurgan qurilmaning tasviri. Men sensorlar kombinatsiyasidan foydalanmasligingizni taxmin qilgandim, men bu erda batafsil ma'lumot bermayman, kodni tekshiring va sizga yordam kerak bo'lsa savollar bering.
3 -qadam: qurilmani sinab ko'ring
Uni tarmoqqa ulang va dasturiy ta'minotda barcha ROM identifikatorlari mavjudligini va ular harorat sifatida qaytariladigan qiymatlarni tekshiring.
4 -qadam: Qo'shimcha: ATtiny85
Yagona qurilmalar (xotirani cheklash) ATtiny85 da ham amalga oshirilishi mumkin. Bu ATDiny85 -ni Arduino Uno -dan ISP sifatida Arduino IDE yordamida dasturlashda bir necha qadamlarni talab qiladi.
-
Havolalar
- 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
- Arduino IDE -dan foydalaning> = 1.8.3
-
IDE -ga ATtiny -ni o'rnating
- Fayl> Tanlovlar> Qo'shimcha boshqaruv paneli URL manzillari:
- Asboblar> Kengash: ??? > Kengash menejeri …
- "kichik" ni qidiring va o'rnating
-
Internet -provayder eskizini Uno -ga yuklang
Fayl> Misollar> ArduinoISP> ArduinoISP
-
ATtiny85-ni dasturlash (nol-quvvat) rozetkasiga joylashtiring va sim bilan ulang:
- Arduino Pin MOSI D11 - ATtiny Pin 5
- Arduino Pin MISO D12 dan ATtiny Pin 6gacha
- Arduino Pin SCK D13 dan ATtiny Pin 7gacha
- Arduino Pin D10 -ni ATtiny Pin 1 -ga qaytaring
- Arduino Pin GND dan ATtiny Pin 4gacha
- Arduino Pin VCC dan ATtiny Pin 8gacha
- (> Arduino Uno RESET pinidagi 10uF qopqoq kerak bo'lishi mumkin)
-
ATtiny85 -ni tanlang (rasmga qarang):
- Kengash: "ATtiny25/45/85"
- Taymer 1 soat: "CPU"
- B. O. D.: "B. O. D. nogironlar"
- LTO (faqat 1.6.11 +): "O'chirilgan"
- Chip: "ATtiny85"
- Soat: "8 MGts (ichki)" (ATtiny85 va ATtiny84 mos keladi)
- Soat: "16 MGts (PLL)" (faqat ATtiny85 uchun muqobil sozlash)
- Port: ???
-
Dasturchi -ni tanlang:
Asboblar> Dasturchi: "Arduino ISP sifatida" ("ArduinoISP" EMAS!)
-
sug'urta sozlamalarini o'rnating (soat va boshqalar):
Asboblar> Bootloader -ni yoqish
- ushbu kodni yuklang (dasturchi xato LEDini o'chirib qo'yishi kerak, aks holda uni qayta o'rnating)
-
ATtinyX5 pin tartibi (ATtiny85):
- 1 -pin: PB5 (RST)
- 2 -pin: PB3 (A3) - ixtiyoriy ravishda 220 ohm orqali 1 <-TX ga ulanadi
- 3 -pin: PB4 (A2) - 1 simli DATA ga ulangan
- 4 -pin: GND - GND ga ulangan
- 5 -pin: PB0 (PWM) - I2C SDA sensoriga ulangan
- 6 -pin: PB1 (PWM) - LEDga 4,7k GND ga ulangan
- 7 -pin: PB2 (A1) - I2C SCL sensoriga ulangan
- 8 -pin: VCC - 5V ga ulangan
ATTiny85 bilan ishlash biroz ko'proq ishlashni talab qiladi, chunki sizga I2C comm (adafruit/TinyWireM) va ketma -ket chiqish (TinyDebugSerial) uchun qo'shimcha kutubxonalar kerak bo'ladi. Bundan tashqari, xotira cheklanganligi sababli siz #define bilan ko'p ishlashni xohlashingiz mumkin. ketma -ket disk raskadrovka olib tashlash uchun. Misolda bularning barchasini bir joyga to'planganini ko'rishingiz mumkin.
Sinov uchun, birinchi navbatda, LED to'g'ri chastotada, 0,5 Gts yonib -o'chmasligini tekshirish kerak. Keyin uni 1wire avtobusiga ulang va yangi qurilmani tekshiring.
Tavsiya:
Ikkala rejim ham ESP8266 (AP va mijoz rejimi): 3 qadam
Ikkala rejim ham ESP8266 (AP va mijoz rejimi): Oldingi maqolada men kirish nuqtasi yoki Wi -Fi stantsiyasi va wifi mijozi bo'lgan ESP8266 rejimini qanday o'rnatish haqida ko'rsatma berdim. Ushbu maqolada men sizga ko'rsataman. ESP8266 rejimini ikkala rejimga o'rnatish. Ya'ni, ushbu rejimda ESP8266 mumkin
[Uy IoT] ESP8266 MQTT mijoz qurilmasi: 7 qadam
[Bosh sahifa IoT] ESP8266 MQTT mijoz qurilmasi: Mushukim uchun suvni avtomatik oziqlantiruvchi kabi qurilmalarni boshqarish uchun MQTT protokoli bilan Wi-Fi-ni yoqadigan arzon MCU-dan foydalanish qiziq. Batafsil ma'lumot uchun mening blogim bor (https://regishsu.blogspot.com/2019/07/home-iot-esp…Spe
MKR1000 IoT mijoz/server aloqalari: 4 qadam
MKR1000 IoT Client/server bilan aloqa: Ushbu loyiha ikkita Arduino/Genuino MKR1000 qurilmasini server va mijoz sifatida qanday o'rnatishni tavsiflaydi. MKR1000 mijozi sizning mahalliy Wi -Fi tarmog'ingizga ulanadi va mijozga jismoniy ulangan ikkita kirishni tinglaydi; biri tugmachadan, ikkinchisi tebranishdan
IOT123 - SENSOR HUBINI ASSIMILASH: ICOS10 UMUMIY SHELL (HOOKUP WIRE) Assambleyasi: 4 qadam
IOT123 - ASSIMILAT SENSOR HUB: ICOS10 GENERIC SHELL (HOOKUP WIRE) Assambleyasi: YANGILANISH Ishonchliligi uchun IDC sxemasidan (HOOKUP emas) foydalanishni tavsiya etamiz. Agar siz kontaktlarning zanglashini tekshirishga vaqtingiz bo'lsa, bu HOOKUP yig'ilishi muhim bo'lmagan operatsiyalar uchun javob beradi. Men bir nechta simlarni topdim (panellarning yuqori qatlami: qizil/sariq) uzoq vaqt emas
HC - 06 (qul moduli) "NAME" ni "Monitor Serial Arduino" ishlatmasdan o'zgartirish "osonlikcha ishlaydi": muammosiz yo'l!: 3 qadam
HC - 06 (Slave Module) "NAME" ni "Monitor Serial Arduino" ishlatmasdan o'zgartirish … "osonlikcha ishlaydi": Xatosiz Yo'l!: Keyin " Uzoq vaqt " " Arduino seriyali monitor, " Muvaffaqiyat ", men boshqa oson yo'lni topdim va hozir Sharing! Qiziqarli do'stlar