Taula de continguts:
Vídeo: Dispositiu client / esclau (sensor) genèric 1 fil Arduino: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:11
Si us plau, llegiu la introducció i el pas 2 del meu instructiu sobre com construir una pantalla Arduino 1 cable (144 caràcters) per obtenir més informació sobre la situació i les biblioteques disponibles. Com s’explica allà, utilitzarem la biblioteca OneWire-Hub (emulador de dispositiu esclau OneWire) d’orgua (parar atenció hi ha altres forquilles al voltant) per construir dispositius genèrics d’un fil (per exemple, sensors) mitjançant un Arduino.
Pas 1: programari
El més important és crear un dispositiu que pugui retornar bàsicament qualsevol tipus de valor d’una manera senzilla. És a dir, que el programari estàndard es pot utilitzar per llegir tots els valors directament (no es necessita cap conversa ni manipulació binària). Per a això, necessitem un dispositiu d'1 fil per defecte molt senzill que pugui retornar flotants i que sigui àmpliament compatible. L'única opció que conec és el termòmetre DS18B20 (el monitor de bateria DS2438 també és interessant i útil, però força complex i, per tant, lent entre altres inconvenients). La biblioteca OneWire-Hub conté un exemple anomenat DS18B20_asInterface que fa exactament el que necessitem. Crea un munt de DS18B20 dels quals cadascun representa un valor flotant que volem retornar dels nostres sensors. Les restriccions aquí són la resolució i els valors han de situar-se en l’interval -55, 0 … 125, 0. Això es pot aconseguir fàcilment (en el pitjor dels casos, canviar l’escala) i, en realitat, és millor que els valors que es poden representar per exemple. els valors DS2438 (1,5 a 10V). Com a alternativa, es pot establir un rang més gran de valors mitjançant:
setTemperatureRaw (static_cast (valor * 16.0f));
però és possible que la lectura i el processament d'aquests valors no estiguin admesos per tots els programes, ja que no estan disponibles a les especificacions.
El que heu de tenir en compte és que inicialment el nombre màxim d'esclaus es limita a 8, però es pot canviar a "OneWireHub_config.h" augmentant HUB_SLAVE_LIMIT fins a 32. També heu d'assegurar-vos d'adoptar ONEWIRE_TIME_MSG_HIGH_TIMEOUT si el vostre Xarxa d’un cable (per exemple, x10), tal com s’explica al pas 2 de la pantalla 1 cable Arduino (144 caràcters). I per utilitzar la versió IDE> = 1.8.3 per compilar i penjar el codi al vostre Arduino.
Heus aquí com a exemple el codi del dispositiu que he creat fa molt poc. Com suposo que no feu servir la mateixa combinació de sensors que faig, no aprofundiré en els detalls aquí, comproveu el codi i pregunteu si necessiteu ajuda.
Pas 2: maquinari
Bàsicament, tot el que pugueu connectar a un Arduino es pot utilitzar com a sensor que trieu. L'única restricció és que la lectura del sensor ha de ser el més ràpida possible per tenir molt temps per a la comunicació amb 1 fil (confereixi el pas 2 del meu instructiu sobre la pantalla 1 fil Arduino (144 caràcters) per per obtenir un exemple).
Un exemple de possible maquinari podria ser una estació meteorològica com, per exemple:
https://shop.boxtec.ch/wetter-messer-p-41289.html
A més o en lloc de vosaltres, és possible que vulgueu utilitzar el propi Arduino com a sensor. Podeu obtenir més informació sobre això a les meves instruccions sobre les funcions menys conegudes d’Arduino: els possibles valors són la tensió de la font i la temperatura interna.
Aquí, com a exemple, una imatge del dispositiu que vaig construir fa molt poc. Com suposo que no utilitzeu la mateixa combinació de sensors que faig, no aprofundiré en els detalls aquí, comproveu el codi i pregunteu si necessiteu ajuda.
Pas 3: proveu el dispositiu
Connecteu-lo a la xarxa i comproveu que hi hagi tots els identificadors de ROM al vostre programari i els valors que retornen com a temperatura.
Pas 4: Apèndix: ATtiny85
Dispositius individuals (limitació de memòria) també es poden fer en un ATtiny85. Això necessita uns quants passos ja que programem l’ATtiny85 amb Arduino Uno com a proveïdor d’Internet amb l'ajut de l'IDE Arduino:
-
Enllaços
- 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
- utilitzeu Arduino IDE> = 1.8.3
-
instal·la l’opció ATtiny a IDE
- Fitxer> Preferències> URL addicionals del gestor de taulers:
- Eines> Tauler: ??? > Gestor de juntes …
- cerqueu: "tiny" i instal·leu
-
pengeu esbossos d’ISP a un Uno
Fitxer> Exemples> ArduinoISP> ArduinoISP
-
inseriu ATtiny85 al sòcol de programació (força zero) i connecteu-lo:
- Pin Arduino MOSI D11 a ATtiny Pin 5
- Pin Arduino MISO D12 a ATtiny Pin 6
- Pin Arduino SCK D13 a ATtiny Pin 7
- Restableix el pin Arduino D10 al pin 1 ATtiny
- Pin Arduino GND a ATtiny Pin 4
- Pin Arduino VCC a ATtiny Pin 8
- (> = Pot ser necessari un límit de 10uF al pin RESET d'Arduino Uno)
-
seleccioneu ATtiny85 (veure imatge):
- Tauler: "ATtiny25 / 45/85"
- Rellotge del temporitzador 1: "CPU"
- B. O. D.: "B. O. D. desactivat"
- LTO (només 1.6.11 +): "Desactivat"
- Xip: "ATtiny85"
- Rellotge: "8 MHz (intern)" (compatible amb ATtiny85 i ATtiny84)
- Rellotge: "16 MHz (PLL)" (configuració alternativa només per a ATtiny85)
- Port: ???
-
seleccioneu Programador:
Eines> Programador: "Arduino com a ISP" (NO "ArduinoISP"!)
-
definiu els paràmetres dels fusibles (rellotge, etc.):
Eines> Grava el carregador d'arrencada
- pengeu aquest codi (el LED d'error del programador ha d'estar apagat; en cas contrari, restableix-lo)
-
Disseny de pins ATtinyX5 (ATtiny85):
- Pin 1: PB5 (RST)
- Pin 2: PB3 (A3): opcionalment connectat mitjançant 220ohm a 1 <-TX
- Pin 3: PB4 (A2): connectat a DATA de 1 fil
- Pin 4: GND: connectat a GND
- Pin 5: PB0 (PWM): connectat al sensor I2C SDA
- Pin 6: PB1 (PWM): connectat a LED amb 4,7 k a GND
- Pin 7: PB2 (A1): connectat al sensor I2C SCL
- Pin 8: VCC: connectat a 5V
Treballar amb ATTiny85 necessita una mica més de feina, ja que necessiteu obtenir biblioteques addicionals per a comunicacions I2C (adafruit / TinyWireM) i sortida en sèrie (TinyDebugSerial). A més, com que la memòria és bastant limitada, és possible que vulgueu treballar molt amb #define, p. per eliminar la depuració en sèrie. A l'exemple podeu veure tot això junt.
Per provar el primer pas és comprovar si el LED parpelleja amb la freqüència correcta, 0,5 Hz. A continuació, connecteu-lo al bus 1wire i comproveu el dispositiu nou.
Recomanat:
Dispositiu ASS (dispositiu social antisocial): 7 passos
Dispositiu ASS (dispositiu social antisocial): digueu que sou la persona que li agrada estar a prop de la gent però que no li agrada que s’acosti massa. També ets agradable a la gent i et costa dir no a la gent. Per tant, no sabeu com dir-los que es retirin. Bé, entreu: el dispositiu ASS. S
[Home IoT] Dispositiu client ESP8266 MQTT: 7 passos
[Home IoT] Dispositiu client ESP8266 MQTT: és interessant que s’utilitzi una MCU barata habilitada per WiFi amb el protocol MQTT per controlar dispositius com l’alimentador automàtic d’aigua per al meu gat. Hi ha el meu bloc per obtenir informació més detallada (https://regishsu.blogspot.com/2019/07/home-iot-esp…Spe
Dispositiu d’irradiança solar (SID): un sensor solar basat en Arduino: 9 passos
Dispositiu d’irradiança solar (SID): un sensor solar basat en Arduino: el dispositiu d’irradiança solar (SID) mesura la brillantor del sol i està dissenyat específicament per utilitzar-lo a l’aula. Estan construïts amb Arduinos, cosa que permet crear-los per tothom, des d’estudiants de secundària fins a adults. Aquest instant
IOT123 - ESCLAU DE PROTOTIPACIÓ DE MAÓ I2C: 3 passos
IOT123 - ESCLAU DE PROTOTIPACIÓ DEL MAÓ I2C: Mentre es desenvolupava l'últim ASSIMILATE ACTOR (KY-019 RELAY), es va llançar una placa de desenvolupament genèrica per estalviar-me una mica de treball addicional al meu escriptori. Té els pinouts estàndards de l'I2C IOT123 BRICK, però permet connexions personalitzades al sensor des de l'ATT
HC-06 (mòdul esclau) Canvi de "NOM" sense ús "Monitor Serial Arduino" que "funciona fàcilment": manera perfecta: 3 passos
HC-06 (mòdul esclau) Canvi de "NOM" sense ús "Monitor Serial Arduino" … que "Funciona fàcilment": manera perfecta: després de " Llarg temps " provant de canviar el nom a HC-06 (mòdul esclau), utilitzant " monitor sèrie de l’Arduino, sense " Èxit ", he trobat una altra manera fàcil i ara estic compartint. Diverteix-te amics