| 1 | = Communication sans fil = |
| 2 | |
| 3 | == Documents de référence == |
| 4 | |
| 5 | * [http://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24L01 Documents Nordic nRF24L01] |
| 6 | * [http://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24L01P Documents Nordic nRF24L01Plus] |
| 7 | |
| 8 | == Travail demandé == |
| 9 | |
| 10 | Le but de la séance est de lire la valeur de la lumière sur une échelle de 1 à 100 sur un Arduino et de l'afficher sur l'écran de l'autre Arduino. Il y a donc au moins 2 noeuds, un émetteur et un récepteur. |
| 11 | Pour être plus simple, tous les noeuds seront identiques. |
| 12 | |
| 13 | === Le matériel === |
| 14 | |
| 15 | * Vous allez commencer par faire un schéma du noeud.[[BR]] |
| 16 | Les composants nécessaires à un noeud sont : |
| 17 | * un Arduino nano |
| 18 | * un couple photorésistance, résistance |
| 19 | * un écran OLED I2C 128x64 **ssd1306** |
| 20 | * un module **nRF24L01** |
| 21 | |
| 22 | [[Image(htdocs:jpg/nano.jpg, height=200px)]] |
| 23 | [[Image(htdocs:jpg/oled.jpg, height=200px)]] |
| 24 | |
| 25 | [[Image(htdocs:jpg/pinoutNRF24L01.jpg, height=200px)]] |
| 26 | [[Image(htdocs:jpg/photoresistance.jpg, height=100px)]] |
| 27 | [[Image(htdocs:jpg/resistance.jpg, height=100px)]] |
| 28 | |
| 29 | |
| 30 | === L'usage des bibliothèques Arduino === |
| 31 | |
| 32 | * Ce qu'il y a de bien dans l'écosystème Arduino, c'est que la volonté de faire simple. |
| 33 | En l'occurrence, nous avons deux nouveaux objets, l'écran et le module RF24. |
| 34 | Pour les utiliser, nous allons devoir faire appel à des fonctions, mais nous n'allons pas avoir |
| 35 | à les écrire. En effet, pour presque tous les "périphériques" existants il existe un et même |
| 36 | souvent plusieurs bibliothèques de fonctions écrites par des "amateurs" souvent très doués. |
| 37 | En plus, les sources sont ouvertes, et il est donc possible d'adapter ces codes pour des |
| 38 | besoins spécifiques. |
| 39 | |
| 40 | * Les bibliothèques sont trouvées, en général, en tapant sur un moteur de recherche, la requête |
| 41 | "nom-du-module Arduino". Les projets sont souvent sur github. Pour faire court, |
| 42 | * Vous téléchargez la bibliothèque (un .zip) |
| 43 | * Vous dézippez l'archive |
| 44 | * Vous renommer l'archive avec le nom que vous voulez en retirant les '-' (tiret)[[BR]] |
| 45 | En général, on choisit le nom du module, mais c'est comme vous voulez. |
| 46 | * Vous copiez le répertoire dans le répertoire Library (ici il est dans votre répertoire sketchbook) |
| 47 | * Vous lancer l'IDE Arduino et dans le menu '''file/exemples''' vous avez un exemple (souvent plusieurs) |
| 48 | de la nouvelle bibliothèque. |
| 49 | * Vous en choisissez un, vous le chargez, vous le compilez, vous l'uploadez, vous le testez :-) |
| 50 | |
| 51 | === Utilisation de l'écran === |
| 52 | |
| 53 | * La bibliothèque de l'écran se trouve en tapant la requête `ssd1306 Arduino`[[BR]] |
| 54 | Vous exécutez la procédure précédemment décrite. Vous devrez prendre également la bibliothèque GFX |
| 55 | qui est la bibliothèque graphique. Cette bibliothèque fonctionne pour plusieurs |
| 56 | types modèles. Vous allez choisir le bon exemple : 128x64 I2C. |
| 57 | |
| 58 | En outre, vous allez devoir faire une petite modification dans le code. |
| 59 | |
| 60 | La ligne au début de '''setup()''' `display.begin(SSD1306_SWITCHCAPVCC, 0x3D);`[[BR]] |
| 61 | doit être remplacée par : `display.begin(SSD1306_SWITCHCAPVCC, 0x3C);`[[BR]] |
| 62 | Il s'agit de l'adresse de l'écran sur le bus I2C. |
| 63 | |
| 64 | * Vous allez utiliser l'écran pour afficher la valeur de la photorésistance après une mise à |
| 65 | l'échelle entre 0 et 100. |
| 66 | |
| 67 | === Utilisation du module nRF24L01 === |
| 68 | |
| 69 | * La bibliothèque du module se trouve en tapant la requête `TMRh20 RF24`[[BR]] |