Cuprins:
Video: Arduino 1-fire Generic Client / Slave Device (Sensor): 4 Etape
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Vă rugăm să citiți Introducerea și Pasul 2 din instrucțiunile mele despre cum să construiți un afișaj Arduino cu 1 fir (144 de caractere) pentru a obține mai multe informații despre situație și biblioteci disponibile. După cum s-a explicat acolo, vom folosi biblioteca OneWire-Hub (emulatorul dispozitivului OneWire slave) de către orgua (acordați atenție că există alte furci în jur) pentru a construi dispozitive generice cu 1 fir (de exemplu, senzori) folosind un Arduino.
Pasul 1: Software
Cel mai important lucru este să creezi un dispozitiv care să poată reda practic orice fel de valoare într-un mod simplu. Adică, software-ul standard poate fi utilizat pentru a citi direct toate valorile (nu este necesară o conversație sau manipulare binară). Pentru aceasta avem nevoie de un dispozitiv implicit cu 1 fir foarte simplu, care poate returna flotante și este acceptat pe scară largă. Singura alegere pe care o cunosc este termometrul DS18B20 (monitorul de baterie DS2438 este interesant și util, dar destul de complex și, astfel, lent, printre alte dezavantaje). Biblioteca OneWire-Hub conține un exemplu numit DS18B20_asInterface care face exact ceea ce avem nevoie. Se creează o grămadă de DS18B20 din care fiecare reprezintă o valoare float pe care dorim să o returnăm de la senzorii noștri. Restricțiile de aici sunt rezoluția și valorile trebuie să fie în intervalul -55, 0 … 125, 0. Acest lucru poate fi ușor realizat - în cel mai rău caz să fie redimensionarea - și este de fapt mai bun decât valorile care pot fi reprezentate de ex. valorile DS2438 (1,5 până la 10V). Alternativ, o gamă mai mare de valori poate fi setată utilizând:
setTemperatureRaw (static_cast (valoare * 16.0f));
dar citirea și procesarea acestor valori ar putea să nu fie acceptate de toate software-urile, deoarece nu sunt în conformitate cu specificațiile.
Ce trebuie să știți este că inițial numărul maxim de sclavi este limitat la 8, dar poate fi schimbat în „OneWireHub_config.h” prin creșterea HUB_SLAVE_LIMIT până la 32. De asemenea, trebuie să vă asigurați că adoptați ONEWIRE_TIME_MSG_HIGH_TIMEOUT dacă este necesar de către Rețea cu 1 fir (de ex. X10), așa cum se explică în Pasul 2 din Afișajul Arduino cu 1 fir (144 caractere). Și să utilizați versiunea IDE> = 1.8.3 pentru a compila și încărca codul pe Arduino.
Aici, ca exemplu, codul dispozitivului pe care îl construiesc foarte recent. Deoarece presupun că nu utilizați aceeași combinație de senzori pe care o fac, nu voi merge mai departe în detalii aici, verificați codul și puneți întrebări dacă aveți nevoie de ajutor.
Pasul 2: Hardware
Practic orice puteți conecta la un Arduino poate fi folosit ca senzor la alegere. Singura restricție este că citirea senzorului ar trebui să fie cât mai rapidă pentru a avea mult timp rămas pentru ca comunicarea cu 1 fir să aibă loc (conferiți Pasul 2 din instructajul meu despre Arduino 1-wire Display (144 de caractere), în ordine pentru a obține un exemplu).
Un exemplu de hardware posibil ar putea fi o stație meteo cum ar fi:
https://shop.boxtec.ch/wetter-messer-p-41289.html
În plus sau în locul dvs., este posibil să doriți să utilizați Arduino în sine ca senzor. Puteți citi mai multe despre acest lucru în instrucțiunile mele despre caracteristicile mai puțin cunoscute ale Arduino - valorile posibile sunt tensiunea sursei și temperatura internă.
Aici, ca exemplu, o imagine a dispozitivului pe care o construiesc foarte recent. Deoarece presupun că nu utilizați aceeași combinație de senzori pe care o fac, nu voi merge mai departe în detalii aici, verificați codul și puneți întrebări dacă aveți nevoie de ajutor.
Pasul 3: Testați dispozitivul
Conectați-l la rețeaua dvs. și verificați software-ul pentru toate ID-urile ROM care trebuie să fie prezente și valorile pe care le returnează ca temperatură.
Pasul 4: Anexă: ATtiny85
Dispozitivele unice (limitarea memoriei) pot fi realizate și pe un ATtiny85. Acest lucru are nevoie de câțiva pași, deoarece programăm ATtiny85 folosind Arduino Uno ca ISP cu ajutorul ID-ului Arduino:
-
Link-uri
- 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
- utilizați Arduino IDE> = 1.8.3
-
instalați opțiunea ATtiny în IDE
- Fișier> Preferințe> Adrese URL suplimentare ale administratorului de plăci:
- Instrumente> Tablă: ??? > Manager de consilii …
- căutați: „minuscul” și instalați
-
încărcați schița ISP pe un Uno
Fișier> Exemple> ArduinoISP> ArduinoISP
-
introduceți ATtiny85 în mufa de programare (forță zero) și conectați-o:
- Pinul Arduino MOSI D11 la ATtiny Pin 5
- Pinul Arduino MISO D12 la ATtiny Pin 6
- Pinul Arduino SCK D13 la Pinul ATtiny 7
- Arduino Pin Reset D10 la ATtiny Pin 1
- Arduino Pin GND la ATtiny Pin 4
- Arduino Pin VCC la ATtiny Pin 8
- (> = 10uF capac pe pinul RESET Arduino Uno ar putea fi necesar)
-
selectați ATtiny85 (a se vedea imaginea):
- Placă: "ATtiny25 / 45/85"
- Temporizator 1 Ceas: „CPU”
- B. O. D.: „B. O. D. Dezactivat”
- LTO (numai 1.6.11 +): „Dezactivat”
- Cip: „ATtiny85”
- Ceas: "8 MHz (intern)" (compatibil ATtiny85 și ATtiny84)
- Ceas: "16 MHz (PLL)" (setare alternativă numai pentru ATtiny85)
- Port: ???
-
selectați Programator:
Instrumente> Programator: „Arduino ca ISP” (NU „ArduinoISP”!)
-
setați setările siguranței (ceasul etc.):
Instrumente> Burn Bootloader
- încărcați acest cod (LED-ul de eroare al programatorului trebuie să fie stins, altfel resetați-l)
-
Aspect ATtinyX5 Pin (ATtiny85):
- Pinul 1: PB5 (RST)
- Pinul 2: PB3 (A3) - conectat opțional prin 220ohm la 1 <-TX
- Pinul 3: PB4 (A2) - conectat la DATA cu 1 fir
- Pinul 4: GND - conectat la GND
- Pinul 5: PB0 (PWM) - conectat la senzorul I2C SDA
- Pinul 6: PB1 (PWM) - conectat la LED cu 4.7k la GND
- Pinul 7: PB2 (A1) - conectat la senzorul I2C SCL
- Pinul 8: VCC - conectat la 5V
Lucrul cu ATTiny85 are nevoie de un pic mai mult de lucru deoarece trebuie să obțineți biblioteci suplimentare pentru I2C comm (adafruit / TinyWireM) și ieșire serială (TinyDebugSerial). În plus, deoarece memoria este destul de limitată, s-ar putea să doriți să lucrați mult cu #define de ex. pentru a elimina depanarea în serie. În exemplu, puteți vedea toate acestea aruncate împreună.
Pentru testare, primul pas este să verificați dacă LED-ul clipește cu frecvența corectă, 0,5Hz. Apoi conectați-l la magistrala 1wire și verificați dacă noul dispozitiv.
Recomandat:
Diviértete Con ArduPack (Videojuego2D Godot3 + Arduino ESP32): 8 Etape
Diviértete Con ArduPack (Videojuego2D Godot3 + Arduino ESP32): Modelo Prototipo de un VideoJuego care le permite utilizatorului să se distreze folosind un control nu convențional și pentru cei mai entuziaști ai programării darle un punct de pornire cu facilitatea elementelor software libere în que fue desa
Sistem De Prevenção De Deslizamentos Com Sensor MPU-6050: 6 Etape
Sistema De Prevenção De Deslizamentos Com Sensor MPU-6050: O sensor MPU-6050 este un chip care are un accelerometru și un giroscópio tip MEMS. São 3 eixos para o acelerômetro e 3 eixos para o giroscópio, sendo ao todo 6 graus de liberdade (6DOF)
Divirtiéndose Con El Arduino Promini: 3 Etape
Divirtiéndose Con El Arduino Promini: Buenas hoy estamos jugando con un arduino promini para ser utilizado en una integraci ó n permanent, dar pentru a începe utilizarea sa, dezvăluim câteva lucruri b á comunicarlo
Mini Estación Meteorológica Con Arduino: 4 Etape
Mini Estación Meteorológica Con Arduino: Este es un tutorial para c ó mo face una mini estaci ó n meteorol ó gica with Arduino that sample temperature and presi ó n
Arduino Uno + SIM900 + DHT22 + Thingspeak [ENG / PL] MULTIPLE SENSOR DATA !: 3 Etape
Arduino Uno + SIM900 + DHT22 + Thingspeak [ENG / PL] MULTIPLE SENSOR DATA !: Salut, am văzut că există lipsă de informații despre cum să postăm date de senzor multiple pe Thingspeak de către Arduino Uno cu modulul SIM900. Așa că am făcut instructabil scurt conexiunea și configurarea Arduino UNO cu senzor SIM900 și DHT22. Date de la DHT22 (temper