Table des matières:
Vidéo: Périphérique client/esclave générique Arduino 1 fil (capteur) : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Veuillez lire l'introduction et l'étape 2 de mon instructable sur la façon de construire un écran Arduino 1-wire (144 caractères) afin d'obtenir plus d'informations sur la situation et les bibliothèques disponibles. Comme expliqué ici, nous utiliserons la bibliothèque OneWire-Hub (émulateur de périphérique esclave OneWire) d'orgua (faites attention, il existe d'autres fourches) afin de créer des périphériques génériques à 1 fil (par exemple des capteurs) à l'aide d'un Arduino.
Étape 1: Logiciel
La chose la plus importante est de créer un appareil qui peut renvoyer pratiquement n'importe quel type de valeur d'une manière simple. Cela signifie qu'un logiciel standard peut être utilisé pour lire toutes les valeurs directement (aucune conversation ni manipulation binaire nécessaire). Pour cela, nous avons besoin d'un périphérique à 1 fil par défaut très simple qui peut renvoyer des flottants et qui est largement pris en charge. Le seul choix que je connaisse est le thermomètre DS18B20 (le moniteur de batterie DS2438 est intéressant et utile aussi mais assez complexe et donc lent entre autres inconvénients). La bibliothèque OneWire-Hub contient un exemple appelé DS18B20_asInterface qui fait exactement ce dont nous avons besoin. Il crée un tas de DS18B20 dont chacun représente une valeur flottante que nous voulons renvoyer de nos capteurs. Les restrictions ici sont la résolution et les valeurs doivent être comprises dans la plage -55, 0 … 125, 0. Cela peut être facilement réalisé - dans le pire des cas, redimensionner - et est en fait meilleur que les valeurs qui peuvent être représentées par ex. les valeurs DS2438 (1,5 à 10V). Alternativement, une plus grande plage de valeurs peut être définie en utilisant:
setTemperatureRaw(static_cast(value * 16.0f));
mais la lecture et le traitement de ces valeurs peuvent ne pas être pris en charge par tous les logiciels car ils sont hors spécifications.
Ce que vous devez savoir, c'est qu'initialement le nombre maximal d'esclaves est limité à 8 mais peut être modifié dans "OneWireHub_config.h" en augmentant HUB_SLAVE_LIMIT jusqu'à 32. Vous devez également vous assurer d'adopter ONEWIRE_TIME_MSG_HIGH_TIMEOUT si votre Réseau à 1 fil (par exemple x10), comme expliqué à l'étape 2 de l'affichage à 1 fil Arduino (144 caractères). Et d'utiliser la version IDE >= 1.8.3 pour compiler et télécharger le code sur votre Arduino.
Voici à titre d'exemple le code de l'appareil que j'ai construit très récemment. Comme je suppose que vous ne devez pas utiliser la même combinaison de capteurs que moi, je n'entrerai pas plus dans les détails ici, vérifiez le code et posez des questions si vous avez besoin d'aide.
Étape 2: Matériel
Fondamentalement, tout ce que vous pouvez connecter à un Arduino peut être utilisé comme capteur de votre choix. La seule restriction est que la lecture du capteur doit être aussi rapide que possible afin d'avoir suffisamment de temps pour que la communication à 1 fil ait lieu (conférer l'étape 2 de mon instructable sur l'affichage à 1 fil Arduino (144 caractères) afin pour avoir un exemple).
Un exemple de matériel possible pourrait être une station météo comme par exemple:
https://shop.boxtec.ch/wetter-messer-p-41289.html
En plus ou à la place de vous, vous voudrez peut-être simplement utiliser l'Arduino lui-même comme capteur. Vous pouvez en savoir plus à ce sujet dans mon instructable sur les fonctionnalités moins connues d'Arduino - les valeurs possibles sont la tension source et la température interne.
Voici à titre d'exemple une image de l'appareil que j'ai construit très récemment. Comme je suppose que vous ne devez pas utiliser la même combinaison de capteurs que moi, je n'entrerai pas plus dans les détails ici, vérifiez le code et posez des questions si vous avez besoin d'aide.
Étape 3: Testez l'appareil
Connectez-le à votre réseau et vérifiez dans votre logiciel que tous les ID de ROM sont présents et les valeurs qu'ils renvoient en tant que température.
Étape 4: Annexe: ATtiny85
Des appareils simples (limitation de mémoire) peuvent également être effectués sur un ATtiny85. Cela nécessite quelques étapes car nous programmons l'ATtiny85 en utilisant Arduino Uno comme FAI avec l'aide de l'IDE Arduino:
-
Liens
- 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
- utiliser Arduino IDE> = 1.8.3
-
installer l'option ATtiny sur IDE
- Fichier > Préférences > URL supplémentaires du gestionnaire de cartes:
- Outils > Tableau: ??? > Gestionnaire de tableaux…
- recherchez: "petit" et installez
-
télécharger un croquis ISP sur un Uno
Fichier > Exemples > ArduinoISP > ArduinoISP
-
insérez ATtiny85 dans la prise de programmation (force zéro) et câblez-la:
- Broche Arduino MOSI D11 à Broche ATtiny 5
- Arduino Pin MISO D12 à ATtiny Pin 6
- Broche Arduino SCK D13 à Broche ATtiny 7
- Arduino Pin Réinitialiser D10 à ATtiny Pin 1
- Arduino Pin GND à ATtiny Pin 4
- Arduino Pin VCC vers ATtiny Pin 8
- (> = 10uF cap sur la broche Arduino Uno RESET peut être nécessaire)
-
sélectionnez ATtiny85 (voir photo):
- Carte: "ATtiny25/45/85"
- Minuterie 1 Horloge: "CPU"
- B. O. D.: "B. O. D. désactivé"
- LTO (1.6.11 + uniquement): "Désactivé"
- Puce: "ATtiny85"
- Horloge: "8 MHz (interne)" (compatible ATtiny85 et ATtiny84)
- Horloge: « 16 MHz (PLL) » (réglage alternatif pour ATtiny85 uniquement)
- Port: ???
-
sélectionnez Programmeur:
Outils > Programmeur: "Arduino as ISP" (PAS "ArduinoISP" !)
-
régler les paramètres des fusibles (horloge, etc.):
Outils > Graver le chargeur de démarrage
- téléchargez ce code (le voyant d'erreur du programmeur doit être éteint, sinon réinitialisez-le)
-
Disposition des broches ATtinyX5 (ATtiny85):
- Broche 1: PB5 (RST)
- Pin 2: PB3 (A3) - connecté en option via 220ohm à 1<-TX
- Broche 3: PB4 (A2) - connecté à 1-wire DATA
- Broche 4: GND - connecté à GND
- Pin 5: PB0 (PWM) - connecté au capteur I2C SDA
- Broche 6: PB1 (PWM) - connecté à la LED avec 4,7 k à GND
- Broche 7: PB2 (A1) - connecté au capteur I2C SCL
- Broche 8: VCC - connecté à 5V
Travailler avec ATTiny85 nécessite un peu plus de travail car vous devez obtenir des bibliothèques supplémentaires pour la communication I2C (adafruit/TinyWireM) et la sortie série (TinyDebugSerial). De plus, comme la mémoire est assez limitée, vous voudrez peut-être beaucoup travailler avec #define, par exemple. pour supprimer le débogage série. Dans l'exemple, vous pouvez voir tout cela réuni.
Pour tester, la première étape consiste à vérifier si la LED clignote avec la bonne fréquence, 0,5 Hz. Ensuite, connectez-le au bus 1wire et recherchez le nouveau périphérique.
Conseillé:
Générateur et capteur de fil périphérique bricolage : 8 étapes
Générateur et capteur de fil périphérique de bricolage : la technologie de guidage de fil est largement utilisée dans l'industrie, en particulier dans les entrepôts où la manipulation est automatisée. Les robots suivent une boucle de fil enfouie dans le sol. Un courant alternatif d'intensité et de fréquence relativement faible entre 5Kz et 40
IOT123 - MOYEU DE CAPTEUR D'ASSIMILATION : COQUE GÉNÉRIQUE ICOS10 (FIL DE RACCORDEMENT) Assemblage : 4 étapes
IOT123 - ASSIMILATE SENSOR HUB : ICOS10 GENERIC SHELL (HOOKUP WIRE) Assemblage : MISE À JOUR Nous vous recommandons d'utiliser le circuit IDC (pas HOOKUP) pour plus de fiabilité. Cet ensemble HOOKUP convient aux opérations non critiques si vous avez le temps de vérifier le circuit. J'ai trouvé des fils (couche supérieure des panneaux : rouge/jaune) pas assez longs
IOT123 - ESCLAVE DE PROTOTYPAGE DE BRIQUES I2C : 3 étapes
IOT123 - ESCLAVE DE PROTOTYPAGE DE BRIQUES I2C : lors du développement du dernier ACTEUR ASSIMILÉ (RELAIS KY-019), une carte de développement générique a été créée pour m'économiser du travail supplémentaire sur mon bureau. Il a les brochages standard du I2C IOT123 BRICK, mais permet des connexions personnalisées au capteur de l'ATT
Flash de déclenchement esclave : 4 étapes (avec photos)
Slave Trigger Flash : dans cette instructable, je vais expliquer comment faire un vrai flas de déclenchement esclave (optique) avec un minimum de composants. Il existe de nombreux modèles complexes que vous pouvez trouver sur Internet, ce design est très simple et fonctionne bien environnement lumineux et faiblement éclairé
HC-06 (module esclave) Changer " NAME " sans utiliser " Monitor Serial Arduino " qui " fonctionne facilement " : Manière sans défaut ! : 3 étapes
HC-06 (module esclave) Modification de " NAME " sans utilisation " Monitor Serial Arduino "… qui " Fonctionne facilement " : Manière sans défaut ! : Après " Longtemps " essayer de changer de nom sur HC - 06 (module esclave), en utilisant " moniteur série de l'Arduino, sans " Succès ", j'ai trouvé un autre moyen facile et je partage maintenant ! Amusez-vous bien les copains