[Boite à question] Système d'alarme doméstique sans fil

Bonjour à toutes et à tous,

Il y a quelques mois j'ai terminé un projet d'alarme domestique sans fil utilisant une communication RF 433Mhz entre les détecteurs et la base.

J'ai une seconde commande et je souhaite faire évoluer mon projet notamment en migrant sur une une fréquence moins bruité : 2.4Ghz en utilisant le module suivant : nRF24L01+ 2.4Ghz RF module (https://hackspark.fr/fr/nrf24l01-2-4ghz-rf-module-improved-range.html)

L'idée serait de concevoir mes propres détecteurs (ouverture de porte, détecteur de présence PIR, détecteur de fumée, prise télécommandée, etc ... ) et ainsi un protocole de question réponse entre la base et les détecteurs dans le but de les mettre en sommeil quand l'alarme est désarmé. (ça évite d'avoir des détecteurs qui balance 50 trames dés qu'on va dans une pièce et qu'on lève le petit doigt). Les détecteurs seront basés sur un Attiny ( ITeaduino Tiny ) qui a un BUS SPI pour communiquer avec le NRF24L01.

J'ajouterai également un écran tactile, une carte SD ( pour loger l''activité de l'alarme ) et plusieurs sirène 110 db déportées.

Voila pour la base du projet :slight_smile:

Ce topic sera dédié aux multiples questions que je me pose sur mon projet.

Première question :

Je souhaiterais monter la base de l'alarme sur cette carte : https://hackspark.fr/fr/iteaduino-lite-arduino-compatible-32mhz-3-3-5v-8k-flash-1k-ram.html

Elle n'est pas chère, soit disant compatible arduino mais surtout on peut soudé ce que l'on veut sur les borniers.
Je voulais avoir un retour d’expérience sur cette arduino uno like. (car j'ai eu une mauvaise expérience de la UNO de chez iteastudio, notamment l'étage qui gère l'alimentation externe)

[Résolu] Seconde question :

La base de l'alarme ne pourra pas être placé dans le couloir d'entrée de l'appartement ou je souhaite l'installé. Il faudra donc un clavier déporté pour désarmé le système.

Je voudrais que ce clavier fonctionne sur le secteur et non via une pile/batterie.

L'idée serait d'avertir la base lorsqu'un individu retire le câble d'alimentation. J'ai donc pensé à une première solution : mettre un gros condensateur et générer une interruption sur front descendant en lisant la tension qui sort du régulateur de tension qui alimentera l'attiny. Le problème c'est que j'ai peur que le condensateur ne tienne pas la charge au moment de l'envoie de la trame par le module 2.4Ghz.
En lisant la datasheet du composant j'ai vu que l'on pouvait modifié la puissance d’émission du module, à voir si ça peut aider ...

Avez vous une idée pour pallier à ce soucis ?

Troisième question :

Dans mon projet initial d'alarme, j'ai développé une toute petite fonction dans le soft arduino qui permet de déterminer s'il y a perturbation sur la fréquence utilisé (dans mon cas 433Mhz).
Si j'ai bien compris le module NRF 2.4Ghz utilise un buffer pour stocker les trames de communication (via une FIFO). Et je n'arrive pas à voir si il est envisageable de créer une fonction qui détecterait une tentative de perturbation de la fréquence.
Est ce que le wifi ou les Xbee peuvent perturber le 2.4Ghz ?
La solution est elle dans cette histoire de canaux ?

D'autres questions viendront au fur et à mesure que le projet avancera :slight_smile:

Merci d'avance pour votre aide :wink:

Clément

derder9161:
..
L'idée serait d'avertir la base lorsqu'un individu retire le câble d'alimentation. J'ai donc pensé à une première solution : mettre un gros condensateur et générer une interruption sur front descendant en lisant la tension qui sort du régulateur de tension qui alimentera l'attiny. Le problème c'est que j'ai peur que le condensateur ne tienne pas la charge au moment de l'envoie de la trame par le module 2.4Ghz.
En lisant la datasheet du composant j'ai vu que l'on pouvait modifié la puissance d’émission du module, à voir si ça peut aider ...

Avez vous une idée pour pallier à ce soucis ?

Troisième question :

...
Est ce que le wifi ou les Xbee peuvent perturber le 2.4Ghz ?
La solution est elle dans cette histoire de canaux ?

bonjour

pour l'instant sur ces 2 points

  • sur section secteur : je mettrais une "goldcap * " et je rentrerais en emission prioritaire reconduite jusqu'à epuisement.

  • le 2.4 est une bande ISM hyper polluée ( WIFI, BT, Telco, deport TV, four micro-onde, etc , mais qui de facto permet un debit important.

en etant realiste : conditionner le ON/OFF/detect d'un systeme d'alarme uniquement par RF unibande est antinomique de sa fonction :grin: , mais bon si un "voleur" vient chez toi avec des moyens de contre-mesure adaptés ... c'est déjà qu'il saura quoi chercher :grin:

goldcap (ça tient en vie un 328 stand alone pendant 7/8 secondes)

  • sur section secteur : je mettrais une "goldcap * " et je rentrerais en emission prioritaire reconduite jusqu'à epuisement.

En effet ça parait intéressant. 10F (comme sur la photo) ce serait vraiment le top. En ce qui concerne le montage, je pense pouvoir me débrouiller pour la détection d'une chute de tension secteur.

Cependant je ne m'y connais pas en technologie des condensateur. Quel type de cap choisir ? quels matériaux ? Je me souviens Artouste que c'est toi qui m'a expliqué en MP comment choisir la tension de service d'un condensateur en utilisant le Vcrête et le coef de 2.5 .
Si au passage tu as un site/lien qui explique comment choisir son condensateur en fonction de son usage dans un circuit je suis preneur :slight_smile: !!!!!! Car pendant mes études on m'a expliqué beaucoup de chose sur les composants mais au final quand on voit tous les matériaux, je m'avoue perdu.

De plus mon fournisseur (RS particulier) ne connait pas "goldcap" mais j'ai bien compris qu'il ne s'agit que d'un condensateur de forte valeur. Cela peut il prendre un autre nom ? (je ne remets pas en toute le terme car chez conrad il y en a une collec)

  • le 2.4 est une bande ISM hyper polluée ( WIFI, BT, Telco, deport TV, four micro-onde, etc , mais qui de facto permet un debit important.

en etant realiste : conditionner le ON/OFF/detect d'un systeme d'alarme uniquement par RF unibande est antinomique de sa fonction smiley-mr-green ,

Fonction ON/OFF , détection du niveau de la batterie/pile aussi. Mais bon je comprends ;), rien qui ne vaille d'utiliser un tel module pour aussi peu de data.
Tu me conseillerais de rester sur du 433Mhz ?

mais bon si un "voleur" vient chez toi avec des moyens de contre-mesure adaptés ... c'est déjà qu'il saura quoi chercher smiley-mr-green

Rien à cacher, juste le plaisir de perfectionner au maximum un système pour le plaisir d'obtenir un projet de propre. Le but c'est aussi de se rapprocher au maximum des systèmes d'alarme perfectionner que l'on trouve sur le marché sans dépenser 1000 euros.

Merci d'avance pour vos réponses

derder9161:
...
De plus mon fournisseur (RS particulier) ne connait pas "goldcap" mais j'ai bien compris qu'il ne s'agit que d'un condensateur de forte valeur. Cela peut il prendre un autre nom ? (je ne remets pas en toute le terme car chez conrad il y en a une collec)

...
Tu me conseillerais de rester sur du 433Mhz ?

il y a plusieurs terminologie , essaie avec supercap (ça marche chez Farnell)
ce n'est pas un 10 F , mais un 1.0 F :grin:

non , je ne te conseille pas le 433, ni le 868 c'est le meme probleme , reste sur les nrf24l01+
c'etait plus une reflexion sur le vecteur RF pour de l'alarme

l y a plusieurs terminologie , essaie avec supercap (ça marche chez Farnell)
ce n'est pas un 10 F , mais un 1.0 F smiley-mr-green

J'ai trouvé mon bonheur sur RS =)
Cependant je suis intrigué par la "durée de vie" indiqué sur la fiche technique du composant :1000h

http://www.rs-particuliers.com/WebCatalog/Condensateur_electrique_a_double_couche__1_F__5_5_V_dc__Traversant__pas_de_20_mm-3396843.aspx

1000h de charge/décharge je suppose ?
Je n’espère pas 1000h chargé à 100% ... car au prix du composant autant mettre une pile :roll_eyes:

non , je ne te conseille pas le 433, ni le 868 c'est le meme probleme , reste sur les nrf24l01+
c'etait plus une reflexion sur le vecteur RF pour de l'alarme

Ok super, ça me rassure dans mon choix pour ce projet. Ca me permettra aussi une meilleure évolutivité du système le jour ou je souhaiterai ajouter d'autre chose. Et quand on compare les prix entre le 2.4Ghz et le 433Mhz, franchement c'est du kikiff. Et ça me permet de réduire la taille des détecteur car dans un module j'ai l'émission et la réception, qui plus est avec un buffer.

Merci pour ces précieux renseignements Artouste.

J'attends avec impatience les réponses à mes autres interrogations :slight_smile:

derder9161:
...
Cependant je suis intrigué par la "durée de vie" indiqué sur la fiche technique du composant :1000h

Es-tu sûr qu'il s'agisse d'une "durée de vie" ET si oui 8) dans quelles conditions ? 8)
= bien lire/comprendre/assimiler les DS .

ceci etant mettre un petit accu est aussi une bonne methode :grin:

After 1000 hours application of 5.5V. DC at +70°C, the capacitor shall meet the following limits.

Oups, j'ai joué au vilain petit canard. Et dire que je passe aussi mon temps à dire aux autres membres de lire les DS.

Je modifie mes dires grâce à cette superbe ligne dans la DS:

After 1000 hours application of 5.5V. DC at +70°C, the capacitor shall meet the following limits.

1000 heures de durée de vie à +70°C

ceci etant mettre un petit accu est aussi une bonne methode

Oui et c'est surement la méthode que je vais retenir car apparemment il me sera impossible d'avoir le secteur à proximité =/
Je me pencherai sur des calculs de consommation pour estimer le genre de pile/batterie à mettre.

Encore merci Artouste

Bonjour a tous,
un petit peu de lecture :
http://industrial.panasonic.com/jp/i/29880/TGC_E/TGC_E.pdf
en bref : page 17,
As for the characteristic change in the Gold Capacitor, the Arrhenius low (Double-speed
acceleration at 10°C) is applied generally as previously mentioned. The expected life becomes
double by lowering the temperature at 10?.

Jacques

Merci jacques pour cette documentation. Je cerne mieux maintenant comment situer la goldcap :slight_smile:

Pour le moment j'ai finis le schémas électrique :

  • de l'étage alimentation
  • mofset pour sirene 110db
  • Amplificateur pour speaker (permettra d'émettre un BIP d'avertissement pour le désarmement)
  • clavier matricé avec fonction d'interruption (très pratique pour réveiller l'arduino du mode sleep)
  • contacteur de protection ouverture boitier alarme

Petite modification sur le projet

Apres de longues recherches sur internet, j'abandonne l'idée de l'écran tactile. Cela m'imposerait d'utiliser 2 cartes arduino et de les faire communiquer entre elle. Il faudrait un code énorme pour gérer le tactile et le code de désactivation en plus de l'affichage. Donc adieu aussi la SD pour loger l'utilisation de l'alarme car le BUS SPI est réservé au module NRF 2.4Ghz.

Je vais donc me pencher sur un ancien écran LCD 20x4 : http://docs-europe.electrocomponents.com/webdocs/06dd/0900766b806dda1c.pdf

Le soucis c'est que je l'ai déjà testé avec liquid Crystal sans grande réussite. Même avec un banal hello world.

En me baladant sur le forum anglais, j'ai lu que certains membre ont déjà réussis à utiliser le même contrôleur KS0066U avec un LCD 16x2.
Il serait formidable de pouvoir l'utiliser en mode 4bit .

Avez vous eu vent que le contrôleur soit compatible avec la librairie liquid crystal ?

Quelqu'un peut il me donner son retour d'experience sur cette carte https://hackspark.fr/fr/iteaduino-lite-arduino-compatible-32mhz-3-3-5v-8k-flash-1k-ram.html ou son avis .

Encore merci d'avance

derder9161:
...

  • Amplificateur pour speaker (permettra d'émettre un BIP d'avertissement pour le désarmement)
    ...
  • Le soucis c'est que je l'ai déjà testé avec liquid Crystal sans grande réussite. Même avec un banal hello world.

bonjour

  • Si tu ne demande pas de la "HIFI" , mais simplement un signalement sonore , ce n'est peut etre pas utile de passer par un ampli , un simple mosfer drivant un HP fait souvent l'affaire 8) j'en ai parlé sur un autre topic recemment (faut juste que je retrouve)
    ICI

  • "sans grande reussite" ça veut dire quoi exactement ? 8)
    il semblerait qu'il faille initialiser à L le bit DL apres init pour gerer en 4 bits

  • Si tu ne demande pas de la "HIFI" , mais simplement un signalement sonore , ce n'est peut etre pas utile de passer par un ampli , un simple mosfer drivant un HP fait souvent l'affaire smiley-cool j'en ai parlé sur un autre topic recemment (faut juste que je retrouve)

HAHA non pas de HIFI :slight_smile:
J'ai fais un abus de langage, ce n'est pas un montage à ampli au sens AOP mais j'ai utilisé un transistor :wink: donc la même chose que toi.
Merci pour le lien

  • "sans grande reussite" ça veut dire quoi exactement ? smiley-cool
    il semblerait qu'il faille initialiser à L le bit DL apres init pour gerer en 4 bits

Oui j'ai vu cela dans la DS.
Alors pour être précis dans la description de mon PB.

Voici le brochage : (référence DS page 9 )

Vss -> GND
VDD -> 5V
Vo -> 3V3 -> POTAR
RW -> GND
const int RS=2;
const int E=3;
DO,D1,D2,D3 -> GND
const int D4=4;
const int D5=5;
const int D6=6;
const int D7=7;
Blacklight led -> en l'air (m'en fou du rétroéclairage)

Si j'en crois la DS (voir page 5) , je me suis trompé dans le câblage des 4 broches destinées au 4 bits.
Quand je regarde la commande au LCD DISPLAY CLEAR on peut clairement voir que D4 à D7 sont à L (0) et D0 à H (1).
Donc je me serais trompé ^^" (pas bien !!!)

Cependant quand je regarde la fonction SET FONCTION et notamment le bit DL qui doit être réglé, comme l'a souligné Artouste :P, à low je remarque que D5 doit être à H sur cette fonction. ............................................ :cold_sweat:

Alors qu'est ce que c'est ce délire O_O. Je suis complètement perdu.

PS : Je suis quand même hyper déçu de ne pas pouvoir faire joujou avec un écran LCD / tactile =( . Le rendu aurait été génial.

Merci d'avance :slight_smile:

Je viens de relire la DS 2 fois de suite :astonished:

Et j'ai remarqué que le LCD s'initialise seul au démarrage (quand V_alim >4.5V) avec N = 1 ce qui signifie "one line display".
Si je comprends bien, je dois donc avoir 1 ligne à l'affichage ?

Pourtant j'ai cela : voir photo

La solution doit être suspendu à mon nez !!!!!
Avez vous une idée ?

Merci

derder9161:
Je viens de relire la DS 2 fois de suite :astonished:

Et j'ai remarqué que le LCD s'initialise seul au démarrage (quand V_alim >4.5V) avec N = 1 ce qui signifie "one line display".
Si je comprends bien, je dois donc avoir 1 ligne à l'affichage ?

Pourtant j'ai cela : voir photo

La solution doit être suspendu à mon nez !!!!!
Avez vous une idée ?

Merci

bonjour
rapide 8)
ça donne avec de l'action sur le potentiometre de contraste ?
tous les points restent activés ou desactivés ?

rapide smiley-cool

Je vois ça !!! :slight_smile:

ça donne avec de l'action sur le potentiometre de contraste ?

Le POTAR de contraste éfface plus ou moins les deux lignes de l'écran.
Sur la photo il est tourné au max .

tous les points restent activés ou desactivés ?

Pas tous les points, seulement les lignes 1 et 3

Merci pour ton aide précieuse

derder9161:
...

tous les points restent activés ou desactivés ?

Pas tous les points, seulement les lignes 1 et 3

ça donne quoi avec l'afficheur deconnecté de tout , sauf alim et pot de contraste
il n'y a toujours que deux lignes qui apparaissent avec action sur le pot de contraste ?

derder9161:
Si j'en crois la DS (voir page 5) , je me suis trompé dans le câblage des 4 broches destinées au 4 bits.
Quand je regarde la commande au LCD DISPLAY CLEAR on peut clairement voir que D4 à D7 sont à L (0) et D0 à H (1).
Donc je me serais trompé ^^" (pas bien !!!)

Cependant quand je regarde la fonction SET FONCTION et notamment le bit DL qui doit être réglé, comme l'a souligné Artouste :P, à low je remarque que D5 doit être à H sur cette fonction. ............................................ :cold_sweat:

je ne vois pas ou tu te gratte la tete.
ca ressemble a un afficheur qui s'initalize pas. t'es sur qu'il est pas cramé?

j'ai utilisé du DISPLAYTECH 202B et 162F avec LiquidCrystal en mode 4 bits sans soucis. les 4 autre data pins peuvent etre en l'air. a moins que tu n'ai pas cablé/déclaré le lcd comme il faut, ca devrai marcher. regarde la sequence d'init et compare avec un autre datasheet -> ca doit etre compatible ...
le timming est legerement différent mais devrai etre absorbé par les delaymicrosecondes dans la librairie LiquidCrystal.

... j'ai épluché la librairie LiquidCrystal, j'avoue que je ne comprend pas pourquoi dans sa fonction begin en mode 4 bits:

  if (! (_displayfunction & LCD_8BITMODE)) {
    ...
    // finally, set to 4-bit interface
    write4bits(0x02); 
  } else {
  ...
  }

  // finally, set # lines, font size, etc.
  command(LCD_FUNCTIONSET | _displayfunction);

et je n'ai jamais eu de probleme, alors que ca devrai finir sur quelque chose genre:

    // finally, set to 4-bit interface
    write4bits(0x02); 
    write4bits(0x00); // NFxx plus precisement.

pour etre correct. la fonction "command(LCD_FUNCTIONSET | _displayfunction);" est bien envoyé et correctement envoyée, mais au moment ou on set l'interface en 4 bits, on oublie d'envoyé les 4 bits suivants pour un octet complet...??? .

EDIT:
je viens de faire quelques essai avec un ANALOG VISION 1601L. la librairie LiquidCrystal est plus que correcte et suit parfaitement le DS. on pourrait optimiser les delayMicroseconds, mais comme ca fluctue d'un fabricant a l'autre, autant rester large sur ce genre d'afficheur pour ce qu'on lui demande.

derder9161:
Quelqu'un peut il me donner son retour d'experience sur cette carte https://hackspark.fr/fr/iteaduino-lite-arduino-compatible-32mhz-3-3-5v-8k-flash-1k-ram.html ou son avis .

si tu veut utiliser cette carte, elle doit certainement tres bien marcher. mais en cas de soucis (et y'en a, un coup de google ...) on pourra pas t'aider. le controleur est un LGT8F88A, qui doit certainement tres bien marcher aussi, plus fourni en perif et plus rapide sur le papyrus asiatique, et donc pas exploité tel qu'il le devrai par l'ide arduino standard, et donc inutile sauf si tu met les mains dans le camboui. et du coup pour ce qui est de la compatibilité, soit sur que c'est pas du 100%, surtout coté des librairies.

"their website doesn’t have much English content"
"require modifications to the Arduino core files else some functions and libraries would not work correctly"

quand j'avais 20ans et que ca a faire, pour 8€, j'aurai certainement fait joujou avec, en commençant par éplucher les 300 pages de docs rien que pour l'asm du µC.
au pire, tu risque 8€+le port. t'as qu'a la commander, et dans 2 ans, quand t'aura compris enfin comment elle marche dans le détail, tu pourra nous expliquer les différences (parceque coté docs, meme en chinois, je suis pas sur que t'ai toutes les infos).

ça me fait penser a un article dans OpenSilcium:"ça boot, ça affiche un bureau, on peut vendre...".

ne te méprend pas sur mes propos:
ce que j'ai dis: cette carte est certainement tres bien pour le prix, voir plus performante, reste a savoir si elle est de bonne manufacture, et si elle sera produite sur une durée viable, si toutes les infos sont accessible, et si tu aura un support (communauté, fabricant, revendeur, ...) efficace. si sur un projet simple, ca peut aller, pour un projet avec particularités, il faudra un bagage technique un peut plus consequent.

ca fait pas mal de si, mais il y a des clients pour ca.

Réponse pour Artouste

ça donne quoi avec l'afficheur deconnecté de tout , sauf alim et pot de contraste
il n'y a toujours que deux lignes qui apparaissent avec action sur le pot de contraste ?

Je testerai ça !

Réponse pour jean-I

le controleur est un LGT8F88A

Oui et j'ai vérifié les spécifications techniques de ce micro, il est très similaire à celui de chez ATMEL ( CAN, timer, IT, SPI, etc ....)

plus rapide sur le papyrus asiatique

Je compte (si je l’achète) le faire tourner à 16Mhz pour éviter toute incompatibilité avec les lib

quand j'avais 20ans et que ca a faire, pour 8€, j'aurai certainement fait joujou avec, en commençant par éplucher les 300 pages de docs rien que pour l'asm du µC.

J'ai 21 ans, je suis passionné (mais avec un porte monnaie d'étudiant d'ou le prix qui m’intéresse) mais l'ASM c'est mort pour moi, j'en ai trop mangé :P.

au pire, tu risque 8€+le port. t'as qu'a la commander

Je pense que je vais tenter ma chance et le prendre.ça permettra de donner un retour d’expérience aux autres membres avec les libs qui seront utilisées. Et si vraiment je galère je continuerai avec une iteaduino uno.

ca ressemble a un afficheur qui s'initalize pas. t'es sur qu'il est pas cramé?

Heu .... je n’espère pas :slight_smile:

j'ai utilisé du DISPLAYTECH 202B et 162F avec LiquidCrystal en mode 4 bits sans soucis

J'ai vue beaucoup de monde faire marcher ce model avec Arduino mais jamais le mien.

Je vais vérifié de mon coté aussi les similitudes entre DS du LCD et .cpp et .h de liquid crystal.

Merci à tous les deux pour vos conseils.

t'a pas un autre afficheur, pour verifier si ton code fonctionne?

Malheureusement non :confused: mes seuls composants proviennent de mon cimetière de carte électronique sauf cet écran que j'ai acheté.
Je vous tiens au courant dés que je m'occupe de mon projet.