Innholdsfortegnelse:
Video: Arduino 1-wire Generic Client/Slave Device (Sensor): 4 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
Vennligst les introduksjonen og trinn 2 i instruksjonene mine om hvordan du bygger en Arduino 1-leders skjerm (144 tegn) for å få mer informasjon om situasjonen og tilgjengelige biblioteker. Som forklart der vil vi bruke OneWire-Hub-biblioteket (OneWire-slaveenhetsemulator) av orgua (vær oppmerksom på at det er andre gafler rundt) for å bygge generiske 1-tråds enheter (f.eks. Sensorer) ved hjelp av en Arduino.
Trinn 1: Programvare
Det viktigste er å lage en enhet som i utgangspunktet kan returnere noen form for verdi på en enkel måte. Det betyr at standard programvare kan brukes til å lese alle verdiene direkte (ingen samtale eller binær manipulasjon nødvendig). For det trenger vi en veldig enkel standard 1-tråds enhet som kan returnere flyter og støttes bredt. Det eneste valget jeg vet om er DS18B20 -termometeret (DS2438 batterimonitor er også interessant og nyttig, men ganske komplekst og dermed tregt blant andre ulemper). OneWire-Hub-biblioteket inneholder et eksempel kalt DS18B20_asInterface som gjør akkurat det vi trenger. Det skaper en haug med DS18B20, som hver representerer en flyteverdi vi vil returnere fra sensorene våre. Restriksjonene her er oppløsningen og verdiene må ligge i området -55, 0… 125, 0. Det kan lett oppnås - i verste fall skalere - og er faktisk bedre enn verdiene som kan representeres av f.eks. DS2438 -verdiene (1,5 til 10V). Alternativt kan et større verdiområde settes ved å bruke:
setTemperatureRaw (static_cast (verdi * 16,0f));
men å lese og behandle disse verdiene støttes kanskje ikke av all programvare ettersom den er tom for spesifikasjoner.
Det du må være klar over er at det maksimale antallet slaver i utgangspunktet er begrenset til 8, men kan endres i "OneWireHub_config.h" ved å øke HUB_SLAVE_LIMIT til 32. Du må også sørge for å adoptere ONEWIRE_TIME_MSG_HIGH_TIMEOUT om nødvendig av din 1-tråds nettverk (f.eks. X10), som forklart i trinn 2 i Arduino 1-leders skjerm (144 tegn). Og for å bruke IDE -versjonen> = 1.8.3 til å kompilere og laste opp koden til Arduino.
Her som et eksempel koden til enheten jeg bygger veldig nylig. Siden jeg antar at du ikke skal bruke den samme kombinasjonen av sensorer som jeg gjør, vil jeg ikke gå nærmere inn på detaljer her, sjekk koden og still spørsmål hvis du trenger hjelp.
Trinn 2: Maskinvare
I utgangspunktet kan alt du kan koble til en Arduino brukes som valgfri sensor. Den eneste begrensningen er at lesingen av sensoren skal være så rask som mulig for å ha god tid igjen til 1-leder kommunikasjonen kan finne sted (overfør trinn 2 i min instruks om Arduino 1-wire display (144 tegn) for for å få et eksempel).
Et eksempel på mulig maskinvare kan være en værstasjon som f.eks.:
https://shop.boxtec.ch/wetter-messer-p-41289.html
I tillegg eller i stedet for deg vil du kanskje bruke selve Arduino som din sensor. Du kan lese mer om det i min instruks om Arduino Mindre kjente funksjoner - mulige verdier er kildespenningen og den interne temperaturen.
Her som et eksempel et bilde av enheten jeg bygger veldig nylig. Siden jeg antar at du ikke skal bruke den samme kombinasjonen av sensorer som jeg gjør, vil jeg ikke gå nærmere inn på detaljer her, sjekk koden og still spørsmål hvis du trenger hjelp.
Trinn 3: Test enheten
Koble den til nettverket ditt og sjekk programvaren din for at alle ROM -ID -er skal finnes og verdiene de returnerer som temperatur.
Trinn 4: Vedlegg: ATtiny85
Enkelte enheter (minnebegrensning) kan også gjøres på en ATtiny85. Dette trenger noen få trinn mens vi programmerer ATtiny85 ved å bruke Arduino Uno som Internett -leverandør ved hjelp av Arduino IDE:
-
Lenker
- 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
- bruk Arduino IDE> = 1.8.3
-
installer ATtiny -alternativet til IDE
- Fil> Preferanser> Ytterligere nettadresser for Boards Manager:
- Verktøy> Brett: ??? > Styreleder …
- søk etter: "liten" og installer
-
last opp ISP -skisse til en Uno
Fil> Eksempler> ArduinoISP> ArduinoISP
-
sett inn ATtiny85 i programmeringsstikkontakten (null kraft) og koble den til:
- Arduino Pin MOSI D11 til ATtiny Pin 5
- Arduino Pin MISO D12 til ATtiny Pin 6
- Arduino Pin SCK D13 til ATtiny Pin 7
- Arduino Pin Tilbakestill D10 til ATtiny Pin 1
- Arduino Pin GND til ATtiny Pin 4
- Arduino Pin VCC til ATtiny Pin 8
- (> = 10uF lokket på Arduino Uno RESET pin kan være nødvendig)
-
velg ATtiny85 (se bilde):
- Brett: "ATtiny25/45/85"
- Timer 1 Clock: "CPU"
- B. O. D.: "B. O. D. deaktivert"
- LTO (bare 1.6.11 +): "Deaktivert"
- Chip: "ATtiny85"
- Klokke: "8 MHz (intern)" (kompatibel med ATtiny85 og ATtiny84)
- Klokke: "16 MHz (PLL)" (alternativ innstilling bare for ATtiny85)
- Havn: ???
-
velg programmerer:
Verktøy> Programmerer: "Arduino som ISP" (IKKE "ArduinoISP"!)
-
angi sikringsinnstillinger (klokke, etc.):
Verktøy> Brenn oppstartslaster
- last opp denne koden (programmeringsfeil -LED må være slått av, ellers tilbakestill den)
-
ATtinyX5 Pin -layout (ATtiny85):
- Pin 1: PB5 (RST)
- Pin 2: PB3 (A3) - valgfritt tilkoblet via 220ohm til 1 <-TX
- Pin 3: PB4 (A2) - koblet til 1 -leder DATA
- Pin 4: GND - koblet til GND
- Pin 5: PB0 (PWM) - koblet til sensor I2C SDA
- Pin 6: PB1 (PWM) - koblet til LED med 4,7k til GND
- Pin 7: PB2 (A1) - koblet til sensor I2C SCL
- Pin 8: VCC - koblet til 5V
Å jobbe med ATTiny85 trenger litt mer arbeid, siden du trenger flere biblioteker for I2C comm (adafruit/TinyWireM) og seriell utgang (TinyDebugSerial). I tillegg ettersom minnet er ganske begrenset, vil du kanskje jobbe mye med #define f.eks. for å fjerne seriell feilsøking. I eksemplet kan du se alt dette kastet sammen.
For testing er det første trinnet å kontrollere om LED -en blinker med riktig frekvens, 0,5 Hz. Koble den deretter til 1wire -bussen og se etter den nye enheten.
Anbefalt:
ESP32 Camera Picture Logging Client: 5 trinn
ESP32 Camera Picture Logging Client: ESP32 Camera Picture Logging Client-prosjektet er konsentrert om å bruke ESP32 mikrokontroller for å ta bilder og sende det til sentral server via Internett ved hjelp av ESP32-modulens WiFi-funksjon. Hovedkortet ble designet med to hovedmål i tankene:
Slave Trigger Flash Mark II: 6 trinn (med bilder)
Slave Trigger Flash Mark II: I denne instruksjonsfilen vil jeg forklare hvordan du lager en ekte (optisk) slaveutløser med et minimum av komponenter. Det er mange komplekse design du kan finne på internett, dette designet er veldig enkelt og fungerer godt i sterkt og svakt lys
HC - 06 (Slave Module) Endre "NAME" Uten bruk "Monitor Serial Arduino" som "Fungerer enkelt": Feilfri måte!: 3 trinn
HC - 06 (Slave Module) Endre "NAME" Uten bruk "Monitor Serial Arduino" … som "Fungerer enkelt": Feilfri måte!: Etter " Lang tid " prøver å endre navn på HC - 06 (slave -modul), ved hjelp av " seriell skjerm av Arduino, uten " Suksess ", jeg fant en annen enkel måte og jeg deler nå! Ha det gøy venner
Generic Switch Hijacker: 3 trinn
Generic Switch Hijacker: Denne artikkelen beskriver hvordan du bygger en solid state -mikrokontroller -enhet som styrer fysiske brytere. Det er veldig billig å lage (4 $ eller så), forutsatt at du har en mikrokontrollerprogrammerer. Selve kretsen er av triviell kompleksitet. Denne p
Compaq EVO T20 Thin Client Som MP3 -spiller (kan kontrolleres via nettverket): 9 trinn
Compaq EVO T20 Thin Client Som en MP3 -spiller (kan kontrolleres via nettverket): På jobb trenger vi bakgrunnsmusikk i venteområdet, og etter en stund blir 5CD -er på en CD -spiller litt forgjengelig, og den eneste lokale radiostasjonen vi kan motta er bare irriterende. Så det jeg laget med en lav spesifikasjon (laveste NTe Evo T20 Th