Sadržaj:
Video: Arduino 1-žični generički klijentski/podređeni uređaj (senzor): 4 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:32
Molimo pročitajte Uvod i korak 2 mojih uputa o tome kako izgraditi Arduino jednožilni zaslon (144 znaka) kako biste dobili više informacija o situaciji i dostupnim knjižnicama. Kao što je tamo objašnjeno, koristit ćemo biblioteku OneWire-Hub (emulator OneWire slave uređaja) tvrtke orgua (obratite pažnju da u blizini postoje i druge vilice) kako bismo izgradili generičke jednožične uređaje (npr. Senzore) pomoću Arduina.
Korak 1: Softver
Najvažnije je napraviti uređaj koji na jednostavan način može vratiti bilo koju vrijednost. Što znači da se standardni softver može koristiti za izravno čitanje svih vrijednosti (nije potreban razgovor ili binarna manipulacija). Za to nam je potreban vrlo jednostavan zadani 1-žični uređaj koji može vratiti plovke i koji je široko podržan. Jedini izbor za koji znam je termometar DS18B20 (monitor baterije DS2438 je također zanimljiv i koristan, ali prilično složen i stoga spor među ostalim nedostacima). Knjižnica OneWire-Hub sadrži primjer nazvan DS18B20_asInterface koji radi upravo ono što nam treba. On stvara hrpu DS18B20 od kojih svaki predstavlja jednu vrijednost u plutajućem položaju koju želimo vratiti s naših senzora. Ograničenja ovdje su razlučivost i vrijednosti moraju biti u rasponu -55, 0 … 125, 0. To se lako može postići - u najgorem slučaju promjenom veličine - i zapravo je bolje od vrijednosti koje se mogu predstaviti npr. vrijednosti DS2438 (1,5 do 10 V). Alternativno, veći raspon vrijednosti može se postaviti pomoću:
setTemperatureRaw (static_cast (vrijednost * 16.0f));
ali čitanje i obradu ovih vrijednosti možda ne podržava sav softver jer nema specifikacija.
Ono što morate biti svjesni je da je u početku maksimalni broj podređenih uređaja ograničen na 8, ali se može promijeniti u "OneWireHub_config.h" povećanjem HUB_SLAVE_LIMIT do 32. Također morate biti sigurni da ćete usvojiti ONEWIRE_TIME_MSG_HIGH_TIMEOUT ako vam to zatreba 1-žična mreža (npr. X10), kako je objašnjeno u 2. koraku Arduino 1-žičnog zaslona (144 znaka). I za korištenje IDE verzije> = 1.8.3 za sastavljanje i prijenos koda na vaš Arduino.
Evo kao primjer koda uređaja koji sam nedavno izgradio. Budući da pretpostavljam da nećete koristiti istu kombinaciju senzora kao i ja, ovdje neću ulaziti u detalje, provjerite kôd i postavljajte pitanja ako vam je potrebna pomoć.
Korak 2: Hardver
U osnovi, sve što možete spojiti na Arduino može se koristiti kao vaš senzor po izboru. Jedino ograničenje je da bi očitavanje senzora trebalo biti što je moguće brže kako bi ostalo dosta vremena za 1-žičnu komunikaciju (dajte 2. korak mojih uputa o Arduino 1-žičnom zaslonu (144 znakova) dobiti primjer).
Primjer mogućeg hardvera mogla bi biti meteorološka stanica, npr.
https://shop.boxtec.ch/wetter-messer-p-41289.html
Dodatno ili umjesto vas, možda biste htjeli koristiti sam Arduino kao svoj senzor. Više o tome možete pročitati u mojim uputama o Arduino manje poznatim značajkama - moguće vrijednosti su napon izvora i unutarnja temperatura.
Evo kao primjer slike uređaja koji sam nedavno izgradio. Budući da pretpostavljam da nećete koristiti istu kombinaciju senzora kao i ja, ovdje neću ulaziti u detalje, provjerite kôd i postavljajte pitanja ako vam je potrebna pomoć.
Korak 3: Testirajte uređaj
Povežite ga s mrežom i provjerite u svom softveru jesu li prisutni svi ID -ovi ROM -a i vrijednosti koje se vraćaju kao temperatura.
Korak 4: Dodatak: ATtiny85
Pojedinačni uređaji (ograničenje memorije) također se mogu izvesti na ATtiny85. Za to je potrebno nekoliko koraka dok programiramo ATtiny85 koristeći Arduino Uno kao ISP -a uz pomoć Arduino IDE -a:
-
Veze
- 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
- koristite Arduino IDE> = 1.8.3
-
instalirajte ATtiny opciju u IDE
- Datoteka> Postavke> Dodatni URL -ovi upravitelja ploča:
- Alati> Ploča: ??? > Upravitelj odbora…
- potražite: "tiny" i instalirajte
-
prenesite skicu ISP -a u Uno
Datoteka> Primjeri> ArduinoISP> ArduinoISP
-
umetnite ATtiny85 u utičnicu za programiranje (nulte sile) i spojite je:
- Arduino pin MOSI D11 na ATtiny Pin 5
- Arduino pin MISO D12 na ATtiny Pin 6
- Arduino pin SCK D13 na ATtiny Pin 7
- Arduino pin reset D10 na ATtiny Pin 1
- Arduino pin GND na ATtiny Pin 4
- Arduino Pin VCC na ATtiny Pin 8
- (> = Možda će biti potrebna kapa od 10uF na pinu za resetiranje Arduino Uno)
-
odaberite ATtiny85 (pogledajte sliku):
- Ploča: "ATtiny25/45/85"
- Tajmer 1 Sat: "CPU"
- B. O. D.: "B. O. D. onemogućen"
- LTO (samo 1.6.11 +): "Onemogućeno"
- Čip: "ATtiny85"
- Sat: "8 MHz (interno)" (kompatibilno s ATtiny85 i ATtiny84)
- Sat: "16 MHz (PLL)" (alternativna postavka samo za ATtiny85)
- Luka: ???
-
odaberite programera:
Alati> Programer: "Arduino kao ISP" (NE "ArduinoISP"!)
-
postavite postavke osigurača (sat itd.):
Alati> Burn Bootloader
- prenesite ovaj kôd (LED lampica greške programera mora biti isključena, inače je resetirajte)
-
Raspored pinova ATtinyX5 (ATtiny85):
- Pin 1: PB5 (RST)
- Pin 2: PB3 (A3) - opcionalno spojen preko 220ohm na 1 <-TX
- Pin 3: PB4 (A2) - spojen na 1 -žične PODATKE
- Pin 4: GND - spojen na GND
- Pin 5: PB0 (PWM) - spojen na senzor I2C SDA
- Pin 6: PB1 (PWM) - spojen na LED sa 4,7k na GND
- Pin 7: PB2 (A1) - spojen na senzor I2C SCL
- Pin 8: VCC - spojen na 5V
Rad s ATTiny85 -om zahtijeva malo više rada jer trebate nabaviti dodatne knjižnice za I2C comm (adafruit/TinyWireM) i serijski izlaz (TinyDebugSerial). Osim toga, budući da je memorija prilično ograničena, možda biste htjeli puno raditi s #define, npr. za uklanjanje serijskog uklanjanja pogrešaka. U primjeru možete vidjeti sve to zajedno.
Za testiranje, prvi korak je provjeriti treperi li LED s ispravnom frekvencijom, 0,5Hz. Zatim ga spojite na sabirnicu 1wire i provjerite ima li novog uređaja.
Preporučeni:
Oba načina rada ESP8266 (pristupni i klijentski način rada): 3 koraka
Oba načina rada ESP8266 (pristupni i klijentski način rada): U prethodnom članku napravio sam Tutorial o tome kako postaviti način rada na ESP8266, koji je kao pristupna točka ili wifi stanica i kao wifi klijent. U ovom članku ću vam pokazati kako postaviti način rada ESP8266 na oba načina. Odnosno, u ovom načinu rada ESP8266 može
[Kućni IoT] ESP8266 MQTT klijentski uređaj: 7 koraka
[Kućni IoT] ESP8266 MQTT klijentski uređaj: Zanimljivo je da pomoću jeftinog MCU-a s omogućenim WiFi-om s MQTT protokolom upravljate uređajima kao što je automatski dovod vode za moju mačku. Tu je moj blog za detaljnije informacije (https://regishsu.blogspot.com/2019/07/home-iot-esp…Spe
IOT123 - D1M BLOKOVI - Generički sklop: 7 koraka
IOT123 - D1M BLOKOVI - Generički sklop: Prilikom izrade prototipova ili stvaranja sklopova za vaše projekte, nakon što su komponente lemljene na PCB, postoji ograničenje koliko se može ponovno koristiti u drugim krugovima zbog oštećenja od lemljenja. Tu dolaze D1M BLOKOVI. Oni su sustav kućišta/slaganja za
Izmijenite generički USB automobilski punjač za punjenje IPoda Nano treće generacije: 4 koraka
Izmijenite generički USB automobilski punjač za punjenje iPod -a Nano treće generacije: Imam iPod Nano treće generacije. Otkriva da je spojen, ali odbija puniti s generičkog automobilskog > USB adaptera za punjenje, ali nisam želio kupiti adapterski kabel ili još jedan punjač posebno za iPod, pa sam već izmijenio jedan
Pretvorite generički plastični gadget u nešto malo ljepše: 14 koraka (sa slikama)
Pretvorite generički plastični gadget u nešto malo ljepše: Motivacija: Tijekom ljeta ili surfam ili radim na projektima oko našeg malog vrta/farme. Zima je pred nama u Bostonu i spreman sam početi napadati dugačak popis projekata koje sam odgodio za 'zatvorene mjesece'. Međutim, imam