INHOUDSOPGAWE:
Video: Arduino 1-draads generiese kliënt/slawe-toestel (sensor): 4 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Lees die inleiding en stap 2 van my instruksies oor hoe om 'n Arduino 1-draads skerm (144 tekens) te bou om meer inligting te kry oor die situasie en beskikbare biblioteke. Soos daar uiteengesit, gebruik ons die OneWire-Hub-biblioteek (OneWire-slaafapparaat-emulator) deur orgua (let op dat daar ander vurke is) om generiese 1-draads toestelle (bv. Sensors) met 'n Arduino te bou.
Stap 1: sagteware
Die belangrikste ding is om 'n toestel te maak wat op 'n eenvoudige manier enige waarde kan teruggee. Dit beteken dat standaard sagteware gebruik kan word om al die waardes direk te lees (geen gesprek of binêre manipulasie nodig nie). Daarvoor benodig ons 'n baie eenvoudige standaard 1-draads toestel wat dryf kan terugbring en wyd ondersteun word. Die enigste keuse waarvan ek weet, is die DS18B20 -termometer (die DS2438 -batterymonitor is ook interessant en nuttig, maar redelik kompleks en dus stadig onder ander nadele). Die OneWire-Hub-biblioteek bevat 'n voorbeeld genaamd DS18B20_asInterface wat presies doen wat ons nodig het. Dit skep 'n klomp DS18B20 waarvan elkeen een dryfwaarde verteenwoordig wat ons van ons sensor (s) wil teruggee. Die beperkings hier is die resolusie en die waardes moet in die reeks -55, 0… 125, 0. Dit kan maklik bereik word - in die ergste geval hergroei - en is eintlik beter as die waardes wat voorgestel kan word deur bv. die DS2438 waardes (1,5 tot 10V). Alternatiewelik kan 'n groter reeks waardes gestel word deur die volgende te gebruik:
setTemperatureRaw (static_cast (waarde * 16,0f));
maar die lees en verwerking van hierdie waardes word moontlik nie deur alle sagteware ondersteun nie, aangesien dit nie die spesifikasies het nie.
U moet daarvan bewus wees dat die maksimum aantal slawe aanvanklik tot 8 beperk is, maar in "OneWireHub_config.h" verander kan word deur HUB_SLAVE_LIMIT tot 32 te verhoog. 1-draads netwerk (bv. X10), soos verduidelik in stap 2 van Arduino 1-draads skerm (144 tekens). En om die IDE -weergawe> = 1.8.3 te gebruik om die kode op te stel en op te laai na u Arduino.
Hier is 'n voorbeeld van die kode van die toestel wat ek onlangs gebou het. Aangesien ek aanneem dat u nie dieselfde kombinasie van sensors as ek gebruik nie, gaan ek nie hier meer in op die besonderhede nie, kyk na die kode en stel vrae as u hulp nodig het.
Stap 2: Hardeware
Alles wat u aan 'n Arduino kan koppel, kan in wese gebruik word as u sensor van keuse. Die enigste beperking is dat die lees van die sensor so vinnig as moontlik moet wees sodat daar genoeg tyd oor is vir die kommunikasie met een draad (gee stap 2 van my instruksies oor Arduino 1-draads skerm (144 tekens) om om 'n voorbeeld te kry).
'N Voorbeeld van moontlike hardeware kan 'n weerstasie wees, byvoorbeeld:
https://shop.boxtec.ch/wetter-messer-p-41289.html
Boonop wil u die Arduino self as u sensor in plaas daarvan gebruik. U kan meer hieroor lees in my instruksies oor die minder bekende kenmerke van Arduino - moontlike waardes is die bronspanning en die interne temperatuur.
Hier is 'n voorbeeld van die toestel wat ek onlangs gebou het. Aangesien ek aanneem dat u nie dieselfde kombinasie van sensors as ek gebruik nie, gaan ek nie hier meer in op die besonderhede nie, kyk na die kode en stel vrae as u hulp nodig het.
Stap 3: Toets die toestel
Koppel dit aan u netwerk en kyk na u sagteware dat alle ROM -ID's teenwoordig is en die waardes wat hulle as temperatuur teruggee.
Stap 4: Bylaag: ATtiny85
Enkele toestelle (geheue beperking) kan ook op 'n ATtiny85 gedoen word. Dit benodig 'n paar stappe terwyl ons die ATtiny85 programmeer met behulp van Arduino Uno as ISP met behulp van die Arduino IDE:
-
Skakels
- 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
- gebruik Arduino IDE> = 1.8.3
-
installeer ATtiny -opsie na IDE
- Lêer> Voorkeure> Bykomende bestuurders -URL's:
- Gereedskap> Bord: ??? > Bestuurders …
- soek na: "klein" en installeer
-
laai ISP -skets op na 'n Uno
Lêer> Voorbeelde> ArduinoISP> ArduinoISP
-
steek ATtiny85 in die programmeringsaansluiting (nulkrag) en verbind dit:
- Arduino Pin MOSI D11 tot ATtiny Pin 5
- Arduino Pin MISO D12 tot ATtiny Pin 6
- Arduino Pin SCK D13 tot ATtiny Pin 7
- Herstel van Arduino -pen D10 na AT -pin 1
- Arduino Pin GND tot ATtiny Pin 4
- Arduino Pin VCC tot ATtiny Pin 8
- (> = 10 uF -dop op Arduino Uno RESET -pen kan nodig wees)
-
kies ATtiny85 (sien prent):
- Bord: "ATtiny25/45/85"
- Timer 1 klok: "CPU"
- BOD: "BOD gestrem"
- LTO (slegs 1.6.11 +): "Uitgeskakel"
- Skyfie: "ATtiny85"
- Klok: "8 MHz (intern)" (versoenbaar met ATtiny85 en ATtiny84)
- Klok: "16 MHz (PLL)" (alternatiewe instelling slegs vir ATtiny85)
- Hawe: ???
-
kies programmeerder:
Gereedskap> Programmeerder: "Arduino as ISP" (NIE "ArduinoISP" nie!)
-
stel lontinstellings (klok, ens.) in:
Gereedskap> Brand bootloader
- Laai hierdie kode op (programmeerderfout -LED moet af wees, anders moet u dit herstel)
-
ATtinyX5 -penuitleg (ATtiny85):
- Speld 1: PB5 (RST)
- Pin 2: PB3 (A3) - opsioneel via 220ohm verbind met 1 <-TX
- Speld 3: PB4 (A2) - gekoppel aan 1 -draads DATA
- Speld 4: GND - gekoppel aan GND
- Speld 5: PB0 (PWM) - gekoppel aan sensor I2C SDA
- Speld 6: PB1 (PWM) - gekoppel aan LED met 4,7k na GND
- Speld 7: PB2 (A1) - gekoppel aan sensor I2C SCL
- Speld 8: VCC - gekoppel aan 5V
Om met ATTiny85 te werk, benodig 'n bietjie meer werk, aangesien u ekstra biblioteke moet kry vir I2C comm (adafruit/TinyWireM) en seriële uitvoer (TinyDebugSerial). Aangesien die geheue redelik beperk is, sal u baie met #define wil werk, bv. om seriële ontfouting te verwyder. In die voorbeeld kan u dit alles sien saamgooi.
Vir die toets is die eerste stap om te kyk of die LED met die korrekte frekwensie, 0,5Hz, flits. Koppel dit dan aan die 1wire -bus en kyk of die nuwe toestel is.
Aanbeveel:
DIY Walkie-Talkie met generiese 433MHz RF-modules: 4 stappe
DIY Walkie-Talkie met generiese 433MHz RF-modules: In hierdie projek sal ek jou wys hoe om generiese 433MHz RF-modules van Ebay te gebruik om 'n funksionele Walkie-Talkie te skep. Dit beteken dat ons verskillende RF-modules sal vergelyk, 'n bietjie leer oor 'n klas d-versterker en uiteindelik die Walkie-Talkie bou
Generiese kamers in tou met suikerblokkie: 11 stappe
Generiese kamers in tou met suikerblokkie: Hallo hallo en welkom by my tutoriaal oor die bou van Wumpusjag in tou met suikerblokkie! My gunsteling kleinneef het gekies om 'n speletjie met Twine te maak vir haar senior projek, 'n
IOT123 - D1M BLOCKS - Generiese samestelling: 7 stappe
IOT123 - D1M BLOCKS - Generiese samestelling: as prototipes of stroombane vir u projekte geskep word, is daar 'n beperking op hoe herbruikbaar dit in ander stroombane is as die komponente aan 'n PCB gesoldeer is, as gevolg van skade aan soldeer. Dit is waar D1M BLOCKS inkom. Dit is 'n omhulsel/stapelstelsel vir
Generiese Switch Hijacker: 3 stappe
Generiese skakelaarskaper: Hierdie artikel beskryf hoe u 'n mikro -beheerder -toestel in vaste toestand bou wat fisiese skakelaars beheer. Dit is baie goedkoop om te maak (ongeveer $ 4), as u 'n mikrobeheerderprogrammeerder het. Die kring self is van triviale kompleksiteit. Hierdie p
Verander 'n generiese USB -laaier om 'n derde generasie iPod Nano te laai: 4 stappe
Verander 'n generiese USB -laaier om 'n derde generasie iPod Nano te laai: ek het 'n derde generasie iPod Nano. Dit bespeur dat dit gekoppel is, maar weier om op te laai vanaf 'n algemene USB- laadadapter, maar ek wou nie 'n adapterkabel of nog 'n laaier spesifiek vir die iPod koop nie, so ek het die een wat ek al aangepas het, aangepas