Go Down

Topic: Comment connecter plusieurs Arduino par RF avec FS1000A ? (Read 776 times) previous topic - next topic

Epikhure

Bonjour,

Depuis très longtemps attiré par ces petites cartes...
Je programme un peu, mais ne connais pas grand chose pour le moment en électronique.
Ca fait des semaines que je me balade à fouiller les tutos et autres pour me renseigner sur le sujet.
Donc à première vue, ça m'a l'air accessible à mon niveau.
Par contre, je n'ai pas encore trouvé grand chose concernant mon sujet, à savoir communiquer entre plusieurs Arduino en RF.

Le but de mon projet :

Relever les conditions climatiques (température/hygrométrie/CO-CO2) à divers endroits d'une serre d'environs 12m/6m.
Stocker les données dans une base de données de site web.
Traiter les infos sur une page web.

Pour info :

Pas de Bluetooth, distances trop importantes.
Pas de Wifi, pas envie de saturer d'ondes Wifi cet espace, et aussi raison de coûts...

Configuration :

Plusieurs cartes "Esclave" qui relèvent les informations
  • Format : Nano
  • Capteur température/hygrométrie : DHT22
  • Capteur qualité d'air (pas encore penché sur le sujet)
  • Emetteur/récepteur RF : FS1000A
  • Alimentation autonome (pas encore penché sur le sujet)


Une carte "Maître" qui réceptionne les informations
  • Format : Nano ou UNO (suivant les dispos)
  • Emetteur/récepteur RF : FS1000A
  • Alimentation : USB relié à un PC


Pas mal, de questions, restent en suspend avant que je me lance vraiment, mais surtout que je passe à la caisse...  :smiley-razz:

Pour la "mise en réseau", est il possible d'indiquer un ID unique à chaque carte "Esclave" pour qu'ensuite identifier de qui vient l'info au traitement?
Ou il y a une autre solution?

Dans le souci de ne pas saturer la carte "Maître", appliquer un délai entre chaque carte "Esclave" lors de la transmission est possible?

La bibliothèque VirtualWire est capable de faire ça?

Enfin bref, je sais que transmettre des données entre 2 cartes par FS1000A est possible, mais comment procéder (est-ce possible?) entre une carte "Maître" et plusieurs cartes "Esclave"?

Merci!

Artouste

Bonjour
Je déconseille très fortement l'utilisation de ces ensembles 434 MHz plus que bas de gamme

Sur le forum , il y a un membre qui a réalisé la gestion d'une serre par radio à base de nrf24l01

C'est ce topic  (oui le titre n'est pas très explicite   :smiley-mr-green: )

Je vais lui passer un petit MP pour l'informer de ton topic.

Epikhure

Bonjour,

Excellente source, effectivement avec ce titre de poste je ne l'avais pas vu mais pourtant riche en information...
Pourtant avide d'informations Arduino j'ai lu tout et n'importe quoi par curiosité sur les possibilités de ces cartes...  :P

Ce qu'il a réalisé, la finalité du projet (grossièrement suivis son poste sur fjpower) est juste incroyable...


Les NRF24L01 semblent plus adapté ou (et) complet ou (et) fiable pour vraiment communiquer entre plusieurs cartes et non "juste" transmettre une simple chaîne de caractère (ex: la gestion des erreurs).

Je suis tombé sur ce tuto qui fait une présentation sommaire des possibilité, juste avant de voir qu'il était évoqué (tu l'avais évoqué) dans son topic  :D

Ayant une "faible" portée (pas 100m mais 20m max sans aucun obstacles) je m'oriente vers les modules à antennes intégré.

Concernant l'alimentation du module une régulation 3v3 entre l'Arduino et le module est plus que recommandé, obligatoire?

Dans le poste, à plusieurs reprises la bibliothèque est mise en question, je n'ai pas porté attention sur laquelle il a conclu travailler...
Mirf est toujours d'actualité (celle dispo date de 2012)?


Merci!

Lacuzon

Bonjour,

merci pour les commentaires !
 

Juste un mot, j'ai opté pour la bibliothèque nrf24.h. Je l'ai trouvée plus accessible que la bibliothèque MIRF mais c'est une simple question de goût. J'ai une approche assez rudimentaire, L'émetteur émet, le récepteur reçoit, il n'y a pas de dialogue entre les deux.

Concernant le choix des modules nrf24L01+ c'est sur les conseils d'artouste que j'ai choisi cette solution qui me donne entière satisfaction.

J'ajoute qu'en utilisant un module RTC DS3231 on peut émettre de manière régulière tous les quarts d'heure, toutes les heures, une fois par jour, etc. c'est bien pratique. Pour beaucoup d'applications, un envoi toutes les heures est bien suffisant.

Je ne me suis pas penché sur l'optimisation énergétique, mes systèmes disposant d'une prise électrique dans le voisinage, sinon, en autonome, il faudrait que je travaille sérieusement la conso.

Cordialement

Epikhure

Bonjour,

Merci pour ton intervention et la précision concernant la librairie.

Pour ce qui est des horloge c'est une excellente solution au soucis énergie/autonomie je pense.
Il me semble que tu en avait fait mention dans ton poste puisque j'ai le souvenir d'avoir fait une ou deux recherche sur le sujet.
Je me pencherais sur le sujet au moment venu, je garde cette info au chaud...

Je débute en Arduino donc je vais procéder pas à pas :

Mesure DHT22 sur carte seule
Échangé des données entre plusieurs Arduino avec NRF24L01
Énergie autonome avec des RTC DS3231


Nano/DHT22/NRF24L01/régulateur de tention 3v3 commandés, j'attends avec impatience de commencer...

Artouste

Bonjour,

Merci pour ton intervention et la précision concernant la librairie.
Bonjour
dans la mesure où Lacuzon a bien ouvert le chemin  devant lui, cela devrait t'eviter "pas mal de tâtonnements"  8)

HyperCed

Hello,

je teste cette carte FS1000A pour de l'émission et en effet, c'est pas le top. J'ai mis un fil d'environ 17cm pour faire antenne mais c'est pas beaucoup mieux.

J'arrive à capter à quelques mètres (genre 4-5), mais pas plus. Il me faudrait plutôt 20m.

J'ai alimenté en 5V, mais peut être faut-il mettre +.
Mais j'avais peut que ça consomme en continue même quand le PIN data est en LOW.

Vous avez des astuces pour augmenter la portée ou il faut carrément changer de carte ?

Merci!

al1fch

Bonjour

Augmenter la portée ?

Le vendeur Elecrow indique içi qu'il est possible d'alimenter l'émetteur en 12V , la puissance émise sera plus élevée et il sera peut être posible d'atteindre les 20m de portées espérés


HyperCed

Oui, le problème, c'est que j'ai des piles 18650 pour alimenter tout ça. Et à pleine charge, elles peuvent faire 4.2V.
J'ai un régulateur 5V de type HT7350 derrière.

Donc soit j'ai 2 piles et ça me fait au max du 8.4V, soit je mets 3 piles, mais là, j'attendrai 12.6 V, ce qui semble être trop pour ce module, et aussi pour mon régulateur qui accepte du 12V max d'après la datasheet.

Vous pensez qu'il peut y avoir une tolérance de 0.6V sur ces modules ? Ou alors ça va tout griller ?
Il vaut mieux que je reste en 8.4 V max non ?

L'autre souci, c'est que j'ai un timer de type TPL5110 qui gère l'allumage du circuit toutes les 2H et celui ci doit être alimenté au max en 5.5V. Il se trouve donc derrière le régulateur 5V. Mais si je mets mon émetteur radio, j'ai peut que ça consomme un peu plus car il sera alimenté en permanence... A moins que ça ne consomme que très peu s'il n'y a pas de signal DATA HIGH. C'est peut être le cas, car il me semble qu'il y a un transistor (en mode saturé) qui laisse passer le courant quand c'est sur high et qui bloque en low.

Aujourd'hui, j'utilise le protocole Oregon scientific pour transférer des données. Mais celui-ci est en 9600 bauds, et j'ai lu quelque part qu'on pouvait augmenter la portée du courant en utilisant une valeur de bauds inférieure.
Alors, peut être que je vais essayer de faire un test avec 2 autres Arduino et un protocole que je vais faire moi... J'ai vu qu'on pouvait envoyer des messages ASCII (des chaines) avec une lib (HCWireless).

J'ai trouvé pas mal d'informations sur ce site : https://forum.hobbycomponents.com/viewtopic.php?t=1324

Est-ce que vous pensez que je peux faire un test avec 3 piles 18650 et éventuellement un voltage max à 12.6V ?
Ou alors, je teste sur du 8.4V - 7.4V ?
Ou alors, je travaille sur le protocole ?

Je vais aussi faire un test avec un autre récepteur, un rflink 433MHz avec un module Aurel. Mais je ne l'ai pas encore reçu.
Aujourd'hui, j'ai un truc pas très connu, un Telldus tellstick Duo branché en USB. Je ne sais pas si la portée est bien sur ce type de matériel. Il me semblait que oui car il capte plutôt bien mes sondes de température actuelles ainsi que mes prises chacon dans la maison, mais à voir si le rflink fait pas mieux.

Après tout ça, si ça marche pas, j'essaierai un autre émetteur, il parait que les FS1000A sont pas top...

Artouste

...
Après tout ça, si ça marche pas, j'essaierai un autre émetteur, il parait que les FS1000A sont pas top...
Bonjour
Ce genre d'emetteur généralement vendu en couple avec un récepteur à superréaction est tout juste bon à faire des essais sur un "petit" coin de table avec arduino ... et encore !
Pour ce genre  de truc , mon conseil est  : "ouverture de la boite aux lettres" , verification du contenu de l'envoi pour s'assurer de la bonne reception et mise directe dans la poubelle la plus proche !   :smiley-mr-green:

Explique mieux , ce que tu veux faire communiquer  , aujourd'hui , il existe pas mal d'options en DIY , fiables et accessibles simplement "apatrochere" ! :smiley-mr-green:

HyperCed

Ok, j'explique.
J'ai une sonde sur piles dans un skimmer de piscine.
Je veux qu'il envoie des données récoltées toutes les 2 heures vers un serveur dans la maison.

Il y a 15m de distance environ.

Les données sont petites en taille : en gros, 2 nombres entre 0 et 1023 (PH et ORP - mesure brute de l'entrée analogique arduino), et un nombre entre -99 et 99 avec un chiffre derrière la virgule.

J'utilise pour le moment le protocole Oregon Scientific car celui-ci est reconnu nativement par mon matos actuel (Telldus Tellstick Duo). Mais bon, si c'est plus simple, je peux éventuellement changer de protocole et utiliser un raspberry ou un arduino de l'autre coté en réception.

https://forum.arduino.cc/index.php?topic=625206.msg4277041#msg4277041

Ah oui, j'oubliais, évidemment, il y a un peu de béton autour du skimmer, et un peu de béton sur la maison aussi. Mais les autres sondes Oregon (originales) passent sans trop de soucis.

Go Up