Sadržaj:
Video: Arduino 1-žični opći klijentski/podređeni uređaj (senzor): 4 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:04
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 bibliotekama. Kao što je tamo objašnjeno, koristit ćemo biblioteku OneWire-Hub (emulator OneWire slave uređaja) od strane orgua (obratite pažnju da postoje i druge viljuške) 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 u osnovi može vratiti bilo koju vrijednost na jednostavan način. Što znači da se standardni softver može koristiti za direktno č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). Biblioteka 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 obliku koju želimo vratiti sa naših senzora. Ograničenja ovdje su rezolucija 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. DS2438 vrijednosti (1,5 do 10V). Alternativno, veći raspon vrijednosti može se postaviti korištenjem:
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 jednožilnog zaslona (144 znaka). I za korištenje IDE verzije> = 1.8.3 za kompajliranje i postavljanje 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 ja, neću ovdje dalje 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 dovoljno vremena za obavljanje 1-žične komunikacije (dajte 2. korak mojih uputa o Arduino jednožilnom zaslonu (144 znakova) po redu da biste dobili 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 karakteristikama - 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 ja, neću ovdje dalje 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) mogu se raditi i na ATtiny85. Ovo treba nekoliko koraka dok programiramo ATtiny85 koristeći Arduino Uno kao ISP -a uz pomoć Arduino IDE -a:
-
Linkovi
- 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> URL -ovi dodatnih upravitelja odbora:
- Alati> Ploča: ??? > Upravitelj odbora…
- potražite: "tiny" i instalirajte
-
otpremite skicu ISP -a u Uno
Datoteka> Primjeri> ArduinoISP> ArduinoISP
-
umetnite ATtiny85 u utičnicu za programiranje (nulte sile) i povežite 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 resetirajte 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 Arduino Uno RESET pin -u)
-
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 sa 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
- otpremite 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 priključeno preko 220ohm na 1 <-TX
- Pin 3: PB4 (A2) - spojen na 1 -žične DATA
- 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 biblioteke 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 grešaka. U primjeru možete vidjeti sve ovo zajedno.
Za testiranje, prvi korak je provjeriti treperi li LED sa ispravnom frekvencijom, 0,5Hz. Zatim ga spojite na sabirnicu 1wire i provjerite ima li novog uređaja.
Preporučuje se:
ASS uređaj (antisocijalni društveni uređaj): 7 koraka
ASS uređaj (antisocijalni društveni uređaj): Recimo da ste osoba koja voli biti u blizini ljudi, ali ne voli da im se približavaju. Takođe volite ljude i teško vam je reći ljudima ne. Tako da ne znate kako im reći da odustanu. Pa, unesite - ASS uređaj! Y
Oba načina rada ESP8266 (pristupni i klijentski način rada): 3 koraka
Oba načina ESP8266 (pristupni i klijentski način rada): U prethodnom članku napravio sam vodič 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 da postavite način rada ESP8266 na oba načina. Odnosno, u ovom načinu rada ESP8266 može
[Home 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 poput automatskog dovoda vode za moju mačku. Postoji moj blog za detaljnije informacije (https://regishsu.blogspot.com/2019/07/home-iot-esp…Spe
IOT123 - D1M BLOKOVI - Opći sklop: 7 koraka
IOT123 - D1M BLOKOVI - Generički sklop: Prilikom izrade prototipa 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 sistem kućišta/slaganja za
Opći otmičar prekidača: 3 koraka
Generički otmičar prekidača: Ovaj članak opisuje kako izgraditi čvrsti mikrokontrolerski uređaj koji kontrolira fizičke prekidače. Izrada je vrlo jeftina (oko 4 USD), pod pretpostavkom da imate programer za mikrokontroler. Sam krug je trivijalne složenosti. Ovaj p