STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi 802.11 module

Documents pareils
Version beta. Station Météo 12/11/2012. Réalisation d un Station Météo avec Webserver composée de capteurs Grove et d un module Wifi Flyport.

PIC EVAL Dev Board PIC18F97J60

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Sélection du contrôleur

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Configuration de TCPIPconfig.h

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Traitement de données

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Notice d installation des cartes 3360 et 3365

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Travaux pratiques Configuration d une carte réseau pour qu elle utilise DHCP dans Windows Vista

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)

Le routeur de la Freebox explications et configuration

DIFF AVANCÉE. Samy.

CENTRALE DE SURVEILLANCE EMBARQUEE MULTIMEDIA

Elle supporte entièrement la gestion de réseau sans fil sous Windows 98SE/ME/2000/XP.

Se connecter en WiFi à une Freebox

Digta W/LAN-Adapter. Mode d emploi. L'adaptateur Digta W/LAN. Contenu

SAGEM Wi-Fi 11g USB ADAPTER Guide de mise en route rapide

Activité : TP Durée : 6H00. Un PC d assemblage de marque NEC Un casque avec micro Une clé USB. Un CD de Windows XP professionnel

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Configurez votre Neufbox Evolution

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Etape 1 : Connexion de l antenne WiFi et mise en route

Micro-ordinateurs, informations, idées, trucs et astuces. Utiliser une caméra IP Trendnet IP-TV110. Auteur : François CHAUSSON

>> Lisez-moi d abord... Connecter le ZyXEL Prestige 650HW/HW-I

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Paramètres sans fil du SAGEM TM 1500WG SSID : SAGEM

et dépannage de PC Configuration Sophie Lange Guide de formation avec exercices pratiques Préparation à la certification A+

Trois types de connexions possibles :

INSTALLATION ET PRISE EN MAIN

DELEGATION ACADEMIQUE AU NUMERIQUE FORMATION ADMINISTRATEUR SCRIBE 2.3 ET CARTABLE EN LIGNE (CEL)

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

GenIP 30i : Passerelle intelligente dédiée aux applications industrielles les plus critiques

Programmation Réseau. ! UFR Informatique ! Jean-Baptiste.Yunes@univ-paris-diderot.fr

VoIP & Domotique. KITS DOMOTIQUES EnOcean

Notice succincte pour ordinateurs Windows - IPC-10 AC

Procédure pas à pas de découverte de l offre. Service Cloud Cloudwatt

Installation de serveurs DNS, WINS et DHCP sous Windows Server 2003

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Introduction au langage C

Modem routeur ADSL2/2+ WIFI avec switch 4 ports Guide d'installation rapide

TP 1. Prise en main du langage Python

Plan du cours. Historique du langage Nouveautés de Java 7

Sommaire 1. Aperçu du Produit

SAGEM Wi-Fi 11g USB ADAPTER Guide de mise en route rapide pour Mac OS X

Connexion à distance. Pour configurer les automates Beckhoff via un PC de programmation VERSION : 1.0 / PH

TP : Gestion d une image au format PGM

WIFI sécurisé en entreprise (sur un Active Directory 2008)

PocketNet SNMP/Modbus

Installation Guide Serveur d impression et de stockage multifonctions à 2 ports USB 2.0 haute vitesse Manuel de l utilisateur

Procédure d installation de la solution Central WiFI Manager CWM

Les possibilités de paramétrage réseau des logiciels de virtualisation sont les suivantes quant à la connexion réseau :

Guide de connexion Wi-Fi sur un hotspot ADP Télécom

Préparer, installer puis effectuer la mise en service d'un système. SUJET

TUTORIEL INSTALLATION D UNE WENBOX ETHERNET DE WENGO SUR UN MODEM ROUTEUR DG834 G DE NETGEAR

DATALOGGERS SEFRAM LOG1601 et LOG1620

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

USER GUIDE. Interface Web

Réalisation d un réseau de capteurs de température sans fil basé sur le protocole ZigBee


La BOX Documentation complémentaire

epowerswitch 8XM+ Fiche technique

Guide de l administrateur DOC-OEMCS8-GA-FR-29/09/05

Movie Cube. Manuel utilisateur pour la fonction sans fil WiFi

Foire aux questions sur Christie Brio

Gestion centralisée d un réseau de sites discrets. Nicolas JEAN

TER Licence 3 Electronique des Télécoms Transmission GSM

NovoSIP manuel de mise en service

BTS SIO option SISR Lycée Godefroy de Bouillon Clermont-Ferrand

Manuel d installation et d utilisation du logiciel GigaRunner

PLAN. Connexion Mac vers PC. mercredi 15 juillet 2009

Procédure d utilisation et de paramétrage (filtrage) avec IPFIRE

Programmer en JAVA. par Tama

LOGICIEL DC4D MONITOR

Logiciel de connexion sécurisée. M2Me_Secure. NOTICE D'UTILISATION Document référence :

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Surveillance de Température sans fil

Contrôle d accès UTIL TP N 1 découverte

Tutorial Terminal Server sous

L annuaire et le Service DNS

Partie II PRATIQUE DES CPL

GUIDE D UTILISATION ADSL ASSISTANCE

Projet de programmation (IK3) : TP n 1 Correction

OS Réseaux et Programmation Système - C5

Windows sur Kimsufi avec ESXi

Présentation et portée du cours : CCNA Exploration v4.0

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

KX ROUTER M2M SILVER 3G

Programmation C. Apprendre à développer des programmes simples dans le langage C

Carte Relais GSM (Manuel Utilisateur)

Configurer sa carte Wi-Fi sous BSD

Organigramme / Algorigramme Dossier élève 1 SI

Une carte pour vos projets

Guide d installation Caméras PANASONIC Série BL

PCs embarqués CX1020. Mise en œuvre rapide

Notions fondamentales du langage C# Version 1.0

Transcription:

François SCHNEIDER Lycée Victor-Hugo BESANÇON. STS SE FreeRTOS Programmation réseau WIFI Programmation réseau Socket Tcp FlyPort smart Wi-Fi 802.11 module Prérequis : langage C, connaissance réseau : Ip, service Tcp, Udp, client, serveur 1

Mise en situation : OpenPICUS est une plateforme open source, les ressources se trouvent : http://www.openpicus.com/site/downloads/downloads A installer Documentations à télécharger Cette carte intègre un microcontrôleur PIC24FJ256 et un module WIFI MRF24WB0MB. Le développement est basé sur le système d exploitation freertos. Il est possible d acheter cette carte chez Lextronic : http://www.lextronic.fr/r2943-openpicus.html Afin de faciliter le développement, les éléments suivants sont nécessaires : Le Module WLAN programmable "FlyPort" avec antenne intégrée. La Platine d'évaluation "USB NEST". Le micro-ordinateur est muni de Labview avec une interface WiFi et une interface USB en mode RS232. Pc avec logiciel FlyportClientTcpLm335 ou Labview L alimentation est prise sur le connecteur en avant. La sortie température est câblée sur AI1. Liaison WiFi Liaison USB LEDS : - Carte sous tension. - OUT5 : WIFI activée. - OUT4 : disponible. 2

Objectif : L objectif est d afficher sur un micro-ordinateur la température d un site distant capté à l aide d un capteur lm335. La température mesurée pourra varier de -10 à 40 C. La liaison sera en wifi. Configuration module Flyport : - Le module Flyport est configuré avec les paramètres standards à l aide du wizard. WIFI : IP : TCP : - modes de déploiement : Ad-HOC (point à point). - Sécurité : pas de cryptage. - Configuration par défaut. - Le module Flyport est configuré en serveur DHCP, il fournira ainsi l adresse au client, qui se connectera. - La transmission est effectuée sur le port 2000. - Le module Flyport est le serveur, le PC est un client. La liaison USB permet depuis le PC de programmer le module Flyport et d envoyer des informations d état. Schéma de principe et calcul : Le CAN est un convertisseur 10 bits Il a pour référence une tension de 2,048V. La résolution se calcule : r = V REF+ / 2 10 = 2 mv. L étendue de conversion du CAN varie de V ref- à V ref+ donc de 0 à 2,048V. Le capteur LM335 produit une tension de 10mV par Kelvin, soit V LM335 = T K x 10 mv/k. La température mesurée peut varier -10 à 40 C, soit de 263K à 313K. L étendue de variation de V LM335 est donc de 2,63V à 3,13V. V LM335 est toujours supérieure à l étendue de conversion du CAN, d où la présence du diviseur par 2. 3

CAN et Capteur LM335 L étendue de variation de V AI1 est donc de 1,315V à 1,565V. Une variation d un degré correspond à une variation de 5mV en V AI1. La résolution du CAN est de 2mV, ce qui correspond à une variation en température de 2/5 C = 0,4 C. Le montage permet donc de mesurer la température avec une précision de 0,4 C. La relation suivante lie le nombre en sortie du CAN à la température mesurée : N = ( (T K x 10mV/K) / 2) x 1024 / 2048 = T K x 5 / 2 N = (T c 273) x 5 / 2 Production du programme : Le projet créé sera le plus simple possible. Vous lancez Openpicus et créez un nouveau projet : Vous nommez votre projet et vous choisissez un dossier La configuration du projet est la suivante : Le projet a été créé dans le dossier défini\tcplm335. Nous trouvons dans ce dossier l ensemble du projet en langage C avec différentes librairies, dont «FreeRTOS». 4

Deux fichiers en langage C sont accessibles et modifiables avec le logiciel Openpicus. Remarque : dans ce TP nous modifierons uniquement le fichier TaskFlyport.c - TaskFlyport.c : contient la fonction FlyportTask(). - WF_events.c : contient les fonctions de gestion événementielle du WiFi. Le wizard nous permet de produire la configuration réseau de l OS freertos. Nous allons configurer les services afin de ne valider que les services, qui seront utiles : - Sélection des services, - Configuration Ip, - Configuration wifi, - Configuration des sockets, Configuration des ressources matérielles : Permet de sélectionner les composants nécessaires pour l application Les informations TCP sont transmises sur la sortie UART1 Permet d avoir un serveur DHCP : il fournira l adresse Ip à votre Pc. SSID : FlyportNet Mode de déploiement : point à point. Pas de sécurité WiFi activée. Vous pouvez regarder les différentes possibilités.? Définition des sockets Tcp. - GENERIC_TCP_Client : count = 0. - GENERIC_TCP_SERVUR : count = 1. - HTTP_SERVEUR : count = 0 - DEFAUT : count = 0. - FTP_COMMAND : count = 0. - FTP_DATA : count = 0. 5

Définition des sockets Udp. - On garde Socket n 1 Définition des UARTS. - On garde 1 seul UART La configuration réseau est terminée. La mémoire est réservée pour les différents sockets programmés. Vous compilez le programme avant de passer à la suite. Programmation de la carte «Flyport» : Vous sélectionnez le port com correspondant au «Flyport» Vous cochez cette case pour voir les données présentes sur la liaison série Vous lancer la programmation. A la fin le programme se lance. Flyport envoie sur le COM (USB) le résultat de son démarrage. La LED rouge allumée sur la carte Flyport indique que le WiFi est actif. 6

Test de la configuration wifi, Ip et Tcp. Connecter en WiFi le PC à la carte Flyport en mode point à point. Sous Windows 7 : C est fait. Le wifi fonctionne. On teste le protocole Ip. Vous pouvez vérifier les paramètres Ip de votre poste avec la commande Ipconfig depuis la ligne de commande. Vous pouvez pinguer la carte d adresse 192.167.1.115. Barre de tache à droite Les services installés sont actifs et fonctionnels, il faut maintenant écrire le programme, qui va permettre de renvoyer la valeur de la température mesurée sur le port 2000. Fichier taskflyport.c La fonction main() n est pas directement accessible et est réservée au système d exploitation RTEOS. Il n est pas conseillé de la modifier. La fonction «void FlyportTask()» du fichier «taskflyport.c» est une des taches du système d exploitation. Elle est réservée pour écrire notre application. A droite nous trouvons la version de base produite par l application Openpicus avec quelques commentaires ajoutés en rouge. #include "taskflyport.h" void FlyportTask() WFConnect(WF_DEFAULT); // Connexion au profil wifi. while (WFStatus!= CONNECTED); // Attente connexion effective. UARTWrite(1,"Flyport connected... hello world!\r\n"); // envoie message sur UART. while(1) // Boucle sans fin, le programme de traitement sera écrit ici. Vous trouvez l explication des différentes fonctions utilisées au lien : http://code.google.com/p/openpicus/downloads/detail?name=doc%20flyport%20programmer%27 s%20guide%20rel%201.2.pdf&can=2&q= 7

Fichier taskflyport.c création d un serveur, réponse à un client. Le client «FlyportClientTcpLm335.exe» est disponible en téléchargement. Il est assez simple mais peut présenter quelques erreurs de fonctionnement. La démarche est la suivante : - Connecter le Wifi avec windows. - Définir les paramètres de l hôte. - Etablir «Connexion». - Lancer commandes avec partie droite. - Fermer la connexion. Une commande aura toujours l écriture suivante : «commande=valeur», par exemple pour : - Lire la valeur température sur AI4 : Temp=? - Mettre la sortie OUT4 à 1 : OUT4=1 La partie en bas à droite permet d écrire des commandes de manière plus souple. Le programme du serveur Tcp est donné page suivante. Vous copiez ce programme dans un projet Openpicus et vérifiez que le dialogue est correct. En analysant le programme et le résultat obtenu, vous justifiez le rôle de chacune des lignes du programme. Le programme du serveur Tcp avec lecture de la température. La fonction «lire_temperature» est fournie : void Tcp_lire_temperature(BYTE TCPSocket) char AN0String[8]; unsigned int ADval; ADval = ADCVal(1); ADval = ADval * 2 / 5-273; uitoa(adval, (BYTE *)AN0String); mytcpwrite(tcpsocket, AN0String); TCPWrite(TCPSocket, "\r\n",2); Vous devez modifier le programme précédent pour que le serveur renvoie à chaque requête du serveur la valeur de la température mesurée. 8

#include "taskflyport.h" #define mytcpwrite(tcpsocket, cmde) TCPWrite(TCPSocket, cmde,strlen(cmde)) void FlyportTask() BOOL clconn = FALSE; char TCPPort[5]="2000"; BYTE TCPSocket = INVALID_SOCKET; char TCPBuff[31]; IOInit (o4,out); IOPut(o4,off); WFConnect(WF_DEFAULT); while (WFStatus!= CONNECTED); UARTWrite(1,"WIfi Flyport connected... hello world!\r\n"); UARTWrite(1,"Creation socket Tcp : "); UARTWrite(1,TCPPort); UARTWrite(1,".\r\n"); TCPSocket = TCPServerOpen(TCPPort); UARTWrite(1,"Serveur Socket Tcp ouvert sur port "); UARTWrite(1,TCPPort); UARTWrite(1,".\r\n"); while(1) if (TCPisConn(TCPSocket)) // Un client est-il connecte? if (clconn == FALSE) // On teste si le client vient de se connecter. clconn = TRUE; // on mémorise que la connexion est prise en compte IOPut(o4,on); // affiche led IO4 client connecte. mytcpwrite(tcpsocket, "Bonjour, bienvenue\r\n"); // renvoie hello au client UARTWrite(1,"Client connecte\r\n"); // pour test indique sur rs232. else if (TCPRxLen(TCPSocket) > 0) // y a t'il un message du client? TCPRead(TCPSocket, TCPBuff,TCPRxLen(TCPSocket)); UARTWrite(1, TCPBuff); // copie message reçu vers RS232 pour info. UARTWrite(1,"\r\n"); mytcpwrite(tcpsocket, TCPBuff); // repond au client mytcpwrite(tcpsocket, " \r\n"); else if (clconn == TRUE) // test fin de connexion client IOPut(o4,off); UARTWrite(1,"CLIENT deconnecte\r\n"); clconn = FALSE; 9

Le programme du serveur Tcp avec un interpréteur de commande simple. Voici les fonctions correspondant à l interpréteur de commande : void Tcp_lire_temperature(BYTE TCPSocket) char AN0String[8]; unsigned int ADval; ADval = ADCVal(1); ADval = ADval * 2 / 5-273; uitoa(adval, (BYTE*)AN0String); mytcpwrite(tcpsocket, AN0String); TCPWrite(TCPSocket, "\r\n",2); void Tcp_ecrire_out4(BYTE TCPSocket,char etat) if (etat == '1') IOPut(o4,on); else IOPut(o4,off); mytcpwrite(tcpsocket,"ecrire OUT4"); TCPWrite(TCPSocket, "\r\n",2); void commande(char *cmde,byte TCPSocket) char *ptr_egal; ptr_egal = memchr(cmde, '=', strlen(cmde)); // cherche si caractère egal existe? if (ptr_egal!= NULL) // si non nul on execute la commande *ptr_egal = 0; //TCPBuff contient la commande, ptr_egal+1 contient la commande. if (memcmp(cmde,"temp=?",strlen(cmde))==0) Tcp_lire_temperature(TCPSocket); else if(memcmp(cmde,"out4",strlen(cmde))==0) Tcp_ecrire_out4(TCPSocket,*(ptr_egal+1)); else mytcpwrite(tcpsocket, "Commande '"); mytcpwrite(tcpsocket, cmde); mytcpwrite(tcpsocket," -->"); mytcpwrite(tcpsocket,(ptr_egal+1)); mytcpwrite(tcpsocket, "' inconnue"); TCPWrite(TCPSocket, "\r\n",2); else mytcpwrite(tcpsocket,"commande inconnue\r\n"); Après avoir analysé ces fonctions vous devez les intégrer au programme et valider le fonctionnement. Ensuite vous devez modifier le programme tel que : - Supprimer l écho TCP sur la liaison RS232. - Les commandes non reconnues sont transmises vers la liaison RS232. 10