Სარჩევი:

Arduino 1 მავთულის ზოგადი კლიენტი/მონა მოწყობილობა (სენსორი): 4 ნაბიჯი
Arduino 1 მავთულის ზოგადი კლიენტი/მონა მოწყობილობა (სენსორი): 4 ნაბიჯი

ვიდეო: Arduino 1 მავთულის ზოგადი კლიენტი/მონა მოწყობილობა (სენსორი): 4 ნაბიჯი

ვიდეო: Arduino 1 მავთულის ზოგადი კლიენტი/მონა მოწყობილობა (სენსორი): 4 ნაბიჯი
ვიდეო: How to use 5V Relay with Arduino to turn ON and OFF AC bulb or DC load 2024, დეკემბერი
Anonim
Arduino 1 მავთულის ზოგადი კლიენტი/მონა მოწყობილობა (სენსორი)
Arduino 1 მავთულის ზოგადი კლიენტი/მონა მოწყობილობა (სენსორი)

გთხოვთ წაიკითხოთ ჩემი ინსტრუქციის შესავალი და ნაბიჯი 2 იმის შესახებ, თუ როგორ უნდა შექმნათ Arduino 1 მავთულის ჩვენება (144 სიმბოლო), რათა მიიღოთ მეტი ინფორმაცია სიტუაციისა და ბიბლიოთეკების შესახებ. როგორც იქ არის განმარტებული, ჩვენ გამოვიყენებთ OneWire-Hub ბიბლიოთეკას (OneWire მონა მოწყობილობის ემულატორი) ორგუას მიერ (მიაქციეთ ყურადღება სხვა ჩანგლებია ირგვლივ), რათა შევქმნათ საერთო 1 მავთულის მოწყობილობები (მაგ. სენსორები) არდუინოს გამოყენებით.

ნაბიჯი 1: პროგრამული უზრუნველყოფა

ყველაზე მნიშვნელოვანი ის არის, რომ შევქმნათ მოწყობილობა, რომელსაც შეუძლია დაუბრუნოს ძირითადად ნებისმიერი სახის ღირებულება მარტივი წესით. რაც იმას ნიშნავს, რომ სტანდარტული პროგრამული უზრუნველყოფა შეიძლება გამოყენებულ იქნას ყველა მნიშვნელობის პირდაპირ წასაკითხად (არ არის საჭირო საუბარი ან ორობითი მანიპულირება). ამისათვის ჩვენ გვჭირდება ძალიან მარტივი ნაგულისხმევი 1 მავთულიანი მოწყობილობა, რომელსაც შეუძლია დაბრუნდეს მცურავი და ფართოდ არის მხარდაჭერილი. ერთადერთი არჩევანი, რაც მე ვიცი არის DS18B20 თერმომეტრი (DS2438 ბატარეის მონიტორი არის საინტერესო და სასარგებლო, მაგრამ საკმაოდ რთული და ამდენად ნელი სხვა ნაკლოვანებებს შორის). OneWire-Hub ბიბლიოთეკა შეიცავს მაგალითს სახელწოდებით DS18B20_asInterface, რომელიც ზუსტად იმას აკეთებს რაც ჩვენ გვჭირდება. ის ქმნის რამოდენიმე DS18B20, რომელთაგან თითოეული წარმოადგენს ერთ მცურავ მნიშვნელობას, რომლის დაბრუნებაც ჩვენ გვინდა ჩვენი სენსორიდან. შეზღუდვები აქ არის რეზოლუცია და მნიშვნელობები უნდა იყოს დიაპაზონში -55, 0… 125, 0. რისი მიღწევაც ადვილია - უარეს შემთხვევაში ხელახლა გამოხმაურება - და რეალურად უკეთესია, ვიდრე ის ღირებულებები, რომლებიც შეიძლება წარმოდგენილი იყოს მაგ. DS2438 მნიშვნელობები (1.5 დან 10 ვ). ალტერნატიულად, ფასეულობების უფრო დიდი დიაპაზონი შეიძლება დაინიშნოს გამოყენებით:

setTemperatureRaw (static_cast (მნიშვნელობა * 16.0f));

მაგრამ ამ ღირებულებების წაკითხვა და დამუშავება შეიძლება არ იყოს მხარდაჭერილი ყველა პროგრამული უზრუნველყოფის მიერ, რადგან ის სპეციფიკის გარეშეა.

რაც უნდა იცოდეთ არის ის, რომ თავდაპირველად მონების მაქსიმალური რაოდენობა შეზღუდულია 8 – ით, მაგრამ შეიძლება შეიცვალოს „OneWireHub_config.h“- ში HUB_SLAVE_LIMIT– ით 32 – მდე გაზრდით. ასევე თქვენ უნდა დარწმუნდეთ, რომ მიიღებთ ONEWIRE_TIME_MSG_HIGH_TIMEOUT საჭიროების შემთხვევაში. 1 მავთულის ქსელი (მაგ. X10), როგორც ეს განმარტებულია Arduino 1 მავთულის ეკრანის მე –2 საფეხურზე (144 სიმბოლო). და გამოიყენეთ IDE ვერსია> = 1.8.3, რომ შეადგინოთ და ატვირთოთ კოდი თქვენს არდუინოში.

აქ მოცემულია, მაგალითად, მოწყობილობის კოდი, რომელიც მე ახლახანს შევქმენი. როგორც ვვარაუდობ, თქვენ არ გამოიყენებთ სენსორების იმავე კომბინაციას, რასაც მე ვაკეთებ, მე არ გავაგრძელებ დეტალებს აქ, შეამოწმეთ კოდი და დაუსვით კითხვები, თუ დახმარება გჭირდებათ.

ნაბიჯი 2: აპარატურა

ტექნიკა
ტექნიკა

ძირითადად ყველაფერი, რისი დაკავშირებაც შესაძლებელია არდუინოსთან, შეიძლება გამოყენებულ იქნას როგორც თქვენი არჩევანის სენსორი. ერთადერთი შეზღუდვა ის არის, რომ სენსორის კითხვა უნდა იყოს რაც შეიძლება სწრაფად, რათა დარჩეს დიდი დრო 1 მავთულის კომუნიკაციისთვის (მიანიჭეთ ჩემი ინსტრუქციის მეორე ნაბიჯი Arduino 1-wire Display (144 Chars) თანმიმდევრობით) მაგალითის მისაღებად).

შესაძლო ტექნიკის მაგალითი შეიძლება იყოს ამინდის სადგური, მაგალითად:

https://shop.boxtec.ch/wetter-messer-p-41289.html

დამატებით ან თქვენს ნაცვლად, შეიძლება დაგჭირდეთ გამოიყენოთ Arduino როგორც სენსორი. თქვენ შეგიძლიათ წაიკითხოთ მეტი ამის შესახებ ჩემს ინსტრუქციებში Arduino– ს შესახებ ნაკლებად ცნობილი მახასიათებლების შესახებ - შესაძლო მნიშვნელობებია წყაროს ძაბვა და შიდა ტემპერატურა.

აქ არის მაგალითი იმ მოწყობილობის სურათისა, რომელიც მე ახლახანს ავაშენე. როგორც ვვარაუდობ, თქვენ არ გამოიყენებთ სენსორების იმავე კომბინაციას, რასაც მე ვაკეთებ, მე არ გავაგრძელებ დეტალებს აქ, შეამოწმეთ კოდი და დაუსვით კითხვები, თუ დახმარება გჭირდებათ.

ნაბიჯი 3: შეამოწმეთ მოწყობილობა

შეაერთეთ იგი თქვენს ქსელში და შეამოწმეთ თქვენი პროგრამული უზრუნველყოფა, რომ ყველა ROM პირადობის მოწმობა იყოს და ღირებულებები, რომლებიც ისინი ბრუნდება ტემპერატურის მიხედვით.

ნაბიჯი 4: დანართი: ATtiny85

დანართი: ATtiny85
დანართი: ATtiny85

ერთჯერადი მოწყობილობები (მეხსიერების შეზღუდვა) ასევე შეიძლება გაკეთდეს ATtiny85– ზე. ამას სჭირდება რამდენიმე ნაბიჯი, როდესაც ჩვენ ვაპროგრამებთ ATtiny85– ს Arduino Uno– ს ISP– ით Arduino IDE– ს დახმარებით:

  • ბმულები

    • 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
  1. გამოიყენეთ Arduino IDE> = 1.8.3
  2. დააინსტალირეთ ATtiny ვარიანტი IDE– ზე

    1. ფაილი> პარამეტრები> დაფების მენეჯერის დამატებითი მისამართები:
    2. ინსტრუმენტები> დაფა: ??? > დაფების მენეჯერი…
    3. მოძებნეთ: "პაწაწინა" და დააინსტალირეთ
  3. ატვირთეთ ინტერნეტ პროვაიდერის ესკიზი Uno– ში

    ფაილი> მაგალითები> ArduinoISP> ArduinoISP

  4. ჩადეთ ATtiny85 პროგრამირების (ნულოვანი ძალის) სოკეტში და შეაერთეთ იგი:

    1. Arduino Pin MOSI D11 to ATtiny Pin 5
    2. Arduino Pin MISO D12 to ATtiny Pin 6
    3. Arduino Pin SCK D13 to ATtiny Pin 7
    4. Arduino Pin გადატვირთეთ D10 ATtiny Pin 1 -ში
    5. Arduino Pin GND to ATtiny Pin 4
    6. Arduino Pin VCC to ATtiny Pin 8
    7. (> = 10uF ქუდი Arduino Uno RESET პინზე შეიძლება დაგჭირდეთ)
  5. აირჩიეთ ATtiny85 (იხ. სურათი):

    • დაფა: "ATtiny25/45/85"
    • ტაიმერი 1 საათი: "CPU"
    • B. O. D.: "B. O. D. გამორთულია"
    • LTO (მხოლოდ 1.6.11 +): "გამორთულია"
    • ჩიპი: "ATtiny85"
    • საათი: "8 MHz (შიდა)" (თავსებადია ATtiny85 და ATtiny84)
    • საათი: "16 MHz (PLL)" (ალტერნატიული პარამეტრი მხოლოდ ATtiny85– ისთვის)
    • პორტი: ???
  6. აირჩიეთ პროგრამისტი:

    ინსტრუმენტები> პროგრამისტი: "Arduino როგორც ISP" (არა "ArduinoISP"!)

  7. დააყენეთ დაუკრავენ პარამეტრები (საათი და ა.შ.):

    ინსტრუმენტები> ჩამტვირთავი ჩამტვირთავი

  8. ატვირთეთ ეს კოდი (პროგრამისტის შეცდომის LED უნდა იყოს გამორთული, სხვაგვარად გადატვირთეთ)
  9. ATtinyX5 Pin განლაგება (ATtiny85):

    1. პინი 1: PB5 (RST)
    2. პინი 2: PB3 (A3) - სურვილისამებრ დაკავშირებულია 220ohm– ით 1 <-TX– თან
    3. პინი 3: PB4 (A2) - დაკავშირებულია 1 მავთულის მონაცემებთან
    4. პინი 4: GND - დაკავშირებულია GND– თან
    5. პინი 5: PB0 (PWM) - დაკავშირებულია სენსორთან I2C SDA
    6. პინი 6: PB1 (PWM) - უკავშირდება LED- ს 4.7k GND- თან
    7. პინი 7: PB2 (A1) - დაკავშირებულია სენსორთან I2C SCL
    8. პინი 8: VCC - უკავშირდება 5 ვ

ATTiny85– თან მუშაობას ცოტა მეტი შრომა სჭირდება, რადგან თქვენ გჭირდებათ დამატებითი ბიბლიოთეკების მიღება I2C comm (adafruit/TinyWireM) და სერიული გამომუშავებისთვის (TinyDebugSerial). გარდა ამისა, რადგან მეხსიერება საკმაოდ შეზღუდულია, შეიძლება დაგჭირდეთ ბევრი იმუშაოთ #განსაზღვრეთ მაგ. სერიული გამართვის მოსაშორებლად. მაგალითში თქვენ შეგიძლიათ ნახოთ ეს ყველაფერი ერთად გადაყრილი.

ტესტირებისთვის პირველი ნაბიჯი არის იმის შემოწმება, ანათებს თუ არა LED სწორი სიხშირით, 0.5 ჰც. შემდეგ შეაერთეთ იგი 1 მავთულის ავტობუსთან და შეამოწმეთ ახალი მოწყობილობა.

გირჩევთ: