wallabag est une application opensource de lecture différée : elle vous permet de mettre de côté la version épurée d'un article pour la consulter plus tard où que vous soyez. Créée il y a 3 ans à base de fichiers PHP comme on faisait en 2005, nous avons décidé il y a maintenant un peu plus d'un an de migrer le projet à Symfony. Au cours de ce talk, nous présenterons donc le projet wallabag et tout son écosystème : son concept, son socle technique (API REST, tests unitaires, Rulerz, RabbitMQ, Capistrano), les difficultés rencontrées, la communauté et les projets qui tournent autour, la roadmap pour les semaines à venir.
PHP Composer : Pourquoi ? Comment ? Et plus ...Romain Cambien
Présentation de la gestion de dépendance grâce à Composer. Comment l'installer et le principales commandes à connaitre. Présentation et demonstration du projet Toran Proxy.
wallabag est une application opensource de lecture différée : elle vous permet de mettre de côté la version épurée d'un article pour la consulter plus tard où que vous soyez. Créée il y a 3 ans à base de fichiers PHP comme on faisait en 2005, nous avons décidé il y a maintenant un peu plus d'un an de migrer le projet à Symfony. Au cours de ce talk, nous présenterons donc le projet wallabag et tout son écosystème : son concept, son socle technique (API REST, tests unitaires, Rulerz, RabbitMQ, Capistrano), les difficultés rencontrées, la communauté et les projets qui tournent autour, la roadmap pour les semaines à venir.
PHP Composer : Pourquoi ? Comment ? Et plus ...Romain Cambien
Présentation de la gestion de dépendance grâce à Composer. Comment l'installer et le principales commandes à connaitre. Présentation et demonstration du projet Toran Proxy.
Découverte de l'environnement de la philosophie et du fonctionnement de Laravel. Pourquoi un tel succès ?
Présentation de différents composant Open Source qui permettent de débuter rapidement un projet Laravel.
Cette présentation fait partie d'une suite de présentations technologiques appelée "Symposium" chez Versusmind. Toutes les présentations sont disponibles sur http://versusmind.eu.
"What we've learnt from Ember.js developing our new product" by Guillaume Pot...TheFamily
Par Guillaume Potier, CTO at Wisembly (https://twitter.com/guillaumepotier)
Entreprendre n’est pas inné et 80% des erreurs peuvent être évitées.
Ne perds pas de temps, offre-toi Koudetat : http://bit.ly/koudetat-youtube
Inscrivez-vous au prochain meetup! — http://www.meetup.com/StartupWorkshop
Inscrivez-vous à la newsletter pour ne pas rater les prochains évènements ! — http://www.thefamily.co/events/
On adorerait votre feedback & suggestion ! — https://thefamily.typeform.com/to/KlGLnM?date=09/04/2015
Synchroniser ses applications plus rapidement avec du low-codegplanchat
Ou comment être plus efficace pour synchroniser ses applications, grâce à un ETL en PHP
Présentation par Grégory Planchat au Forum PHP, le 22 octobre 2021.
Depuis quelques années Git s'est imposé comme le système de gestion de sources de référence. Simple, rapide , souple, il convient à la fois aux workflows traditionnels et aux workflows distribués. Après une introductions aux principes fondateurs de Git le stagiaire aura l'occasion d'apprendre à créer son premier repository git et à le manipuler localement avant de le partager avec les autres. La formation insistera sur la gestions des branches et la résolution des conflits et sur les commandes permettant d'aborder ces problématiques sereinement. A l'issue de cette formation le stagiaire sera autonome pour utiliser Git aussi bien individuellement qu'au sein d'une équipe.
Intégration Continue PHP avec Jenkins CIHugo Hamon
Comment assurer le suivi qualite du code source d'une application web? Ce n'est pas une tache aisée ! C’est d’autant plus vrai que PHP est encore considéré aujourd'hui comme un langage peu professionnel. PHP est pourtant un langage dont l'outillage n'a rien a envier a l'ensemble de ses concurrents. L'objectif de cette conférence est de présenter les bonnes pratiques à adopter ainsi que les différents outils a mettre en oeuvre afin de contrôler la qualité d'un projet PHP au quotidien. Un focus particulier sera porté sur la plateforme d'intégration continue Jenkins, les tests unitaires ou bien encore la récupération et l'interprétation des métriques collectées.
Paris Test conf - Kevin Roulleau - E2E tests on mobile native app, a successf...kevinroulleau
Those are the slides I presented on November the 21st. I go through technical aspects about implementing end to end tests for the happn application, and personal development practices that helped me in my professional life.
Orchestrez vos projets Symfony sans fausses notesXavier Gorse
Retour d'expériences sur tout le processus d'ingénierie logicielle de projets Symfony que nous avons construits au fil du temps depuis nos premiers projets en 2006. Nous aborderons toutes les phases de l'industrialisation nous ayant permis d'accroître la qualité et la réactivité d’intervention sur les projets
Apache est le serveur Web le plus utilisé sur la planète. Né en 1995, Apache HTTPD est aujourd'hui massivement utilisé pour supporter des applications PHP.
Cependant, peu de développeurs connaissent vraiment cette machine aussi complexe que robuste qui supporte leur langage fétiche : PHP.
Il n'est pas rare de voir des codes PHP exécutant des actions qu'Apache sait gérer en une seule ligne, de manière beaucoup plus efficace.
Nous parlerons donc généralités, HTTP, Cache, Proxing et nous passerons en revue les différentes manière de coupler Apache à PHP (mod_php, CGI et FCGI, mais aussi mpm_peruser, mpm_itk, suexec, suphp).
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...Christophe Furmaniak
Que vous ayez choisi de développer votre application en tant qu'ensemble de petits services ou sur un modèle plus classique, vous avez certainement à gérer des dépendances à des services HTTP.
A moins de faire le choix de ne pas vous soucier de la disponibilité de vos dépendances (dans ce cas vous n’avez rien à faire ici), vous aurez à faire face à des problématiques telles que loadbalancing et gestion des erreurs.
En s’appuyant sur l’exemple d’une application distribuée très simple, nous parcourrons ensemble les différentes implémentations de solutions, les contraintes et bénéfices associés.
Synchroniser ses applications (plus) simplementgplanchat
Lors du PHP Tour 2017 Nantes, nous avions vu la présentation du composant akeneo/batch. Revenons sur 3 ans supplémentaires d'usage, de réflexions et de refactorisation qui ont abouti à la création d'un framework spécialisé.
Dans des environnement de plus en plus interconnectés, de plus en plus hétéroclites, nous voyons apparaitre l'usage des PWA, la généralisation des API et des tâches en files d'attentes asynchrones. Là où les solutions pour interroger des petits volumes de données dans des bases distantes commencent à atteindre une certaine maturité.
Où en sommes-nous sur les synchronisations en grand volume et aux formats de données hétéroclites ?
Réalisation d’applications Desktop Windows/Mac Os avec PHPAlexandre Morgaut
Lorsqu'on commence à maîtriser un langage puissant tel que PHP, on est tenté de l'utiliser pour tout type de programmation, par enthousiasme, mais aussi par souci d'efficacité.
Cependant, alors que nous savons tous comment utiliser PHP au travers d’un serveur Web ou en ligne de commande, nous avons beaucoup moins de pratique pour créer une application Desktop, monoposte ou client-serveur, qui plus est, en exploitant l’interface native du système.
En effet, comment fournir un logiciel clé en main avec son installateur ou directement un « .exe » pour Windows ou un « .app » pour Mac OS ? Comment éviter d’avoir à installer successivement Apache, PHP et MySQL, ou du moins ne pas entrer en conflit avec des instances potentiellement déjà présentes ?
Nous évoquerons les différentes réponses existantes, de la plus « Geek » à la plus « RAD » en passant par Flex, Java, GTK2 et d’autres solutions surprenantes.
(Presentation Forum Php Paris 2009)
Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016Christophe Furmaniak
L’introduction de docker en production se fait souvent petit à petit, en mode “nouveau format de packaging” plutôt qu’avec un orchestrateur docker.
Les orchestrateurs comme Kubernetes ou Mesos peuvent faire peur de part leur potentielle complexité à être mis en oeuvre et intégrés dans une infrastructure existante.
Nous découvrirons ensemble Rancher, un autre orchestrateur, plus facile à intégrer, mais tout aussi puissant.
Nous verrons comment l'utiliser sans révolutionner son infrastructure et comment bénéficier de son utilisation dans des cas d'usage comme le “rolling upgrade” d'un service.
Dans le cadre du projet Stream for Good
MIAGE Sorbonne -- Atelier de Veille technologique
Steeven Alliel, Abdel Benamara, David Ekchajzer, Philippe Fidalgo, Mathieu Ridet, Sophia Yalap
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
NodeJs, GruntJs, Bower, Karma, ... des buzzwords dont nous entendons parler, que nous voyons passer dans les blogs/articles. Mais à quoi servent-ils ?
Comment industrialiser nos développements Javascript ? Mettre en place des tests unitaires dans une application Web ? Générer de la documentation ? Des métriques qualités ? La couverture de code ? Comme avec Maven ? Nous verrons concrètement comment articuler tous ces outils autour d'une application école, pour démystifier tout ça.
Découverte de l'environnement de la philosophie et du fonctionnement de Laravel. Pourquoi un tel succès ?
Présentation de différents composant Open Source qui permettent de débuter rapidement un projet Laravel.
Cette présentation fait partie d'une suite de présentations technologiques appelée "Symposium" chez Versusmind. Toutes les présentations sont disponibles sur http://versusmind.eu.
"What we've learnt from Ember.js developing our new product" by Guillaume Pot...TheFamily
Par Guillaume Potier, CTO at Wisembly (https://twitter.com/guillaumepotier)
Entreprendre n’est pas inné et 80% des erreurs peuvent être évitées.
Ne perds pas de temps, offre-toi Koudetat : http://bit.ly/koudetat-youtube
Inscrivez-vous au prochain meetup! — http://www.meetup.com/StartupWorkshop
Inscrivez-vous à la newsletter pour ne pas rater les prochains évènements ! — http://www.thefamily.co/events/
On adorerait votre feedback & suggestion ! — https://thefamily.typeform.com/to/KlGLnM?date=09/04/2015
Synchroniser ses applications plus rapidement avec du low-codegplanchat
Ou comment être plus efficace pour synchroniser ses applications, grâce à un ETL en PHP
Présentation par Grégory Planchat au Forum PHP, le 22 octobre 2021.
Depuis quelques années Git s'est imposé comme le système de gestion de sources de référence. Simple, rapide , souple, il convient à la fois aux workflows traditionnels et aux workflows distribués. Après une introductions aux principes fondateurs de Git le stagiaire aura l'occasion d'apprendre à créer son premier repository git et à le manipuler localement avant de le partager avec les autres. La formation insistera sur la gestions des branches et la résolution des conflits et sur les commandes permettant d'aborder ces problématiques sereinement. A l'issue de cette formation le stagiaire sera autonome pour utiliser Git aussi bien individuellement qu'au sein d'une équipe.
Intégration Continue PHP avec Jenkins CIHugo Hamon
Comment assurer le suivi qualite du code source d'une application web? Ce n'est pas une tache aisée ! C’est d’autant plus vrai que PHP est encore considéré aujourd'hui comme un langage peu professionnel. PHP est pourtant un langage dont l'outillage n'a rien a envier a l'ensemble de ses concurrents. L'objectif de cette conférence est de présenter les bonnes pratiques à adopter ainsi que les différents outils a mettre en oeuvre afin de contrôler la qualité d'un projet PHP au quotidien. Un focus particulier sera porté sur la plateforme d'intégration continue Jenkins, les tests unitaires ou bien encore la récupération et l'interprétation des métriques collectées.
Paris Test conf - Kevin Roulleau - E2E tests on mobile native app, a successf...kevinroulleau
Those are the slides I presented on November the 21st. I go through technical aspects about implementing end to end tests for the happn application, and personal development practices that helped me in my professional life.
Orchestrez vos projets Symfony sans fausses notesXavier Gorse
Retour d'expériences sur tout le processus d'ingénierie logicielle de projets Symfony que nous avons construits au fil du temps depuis nos premiers projets en 2006. Nous aborderons toutes les phases de l'industrialisation nous ayant permis d'accroître la qualité et la réactivité d’intervention sur les projets
Apache est le serveur Web le plus utilisé sur la planète. Né en 1995, Apache HTTPD est aujourd'hui massivement utilisé pour supporter des applications PHP.
Cependant, peu de développeurs connaissent vraiment cette machine aussi complexe que robuste qui supporte leur langage fétiche : PHP.
Il n'est pas rare de voir des codes PHP exécutant des actions qu'Apache sait gérer en une seule ligne, de manière beaucoup plus efficace.
Nous parlerons donc généralités, HTTP, Cache, Proxing et nous passerons en revue les différentes manière de coupler Apache à PHP (mod_php, CGI et FCGI, mais aussi mpm_peruser, mpm_itk, suexec, suphp).
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...Christophe Furmaniak
Que vous ayez choisi de développer votre application en tant qu'ensemble de petits services ou sur un modèle plus classique, vous avez certainement à gérer des dépendances à des services HTTP.
A moins de faire le choix de ne pas vous soucier de la disponibilité de vos dépendances (dans ce cas vous n’avez rien à faire ici), vous aurez à faire face à des problématiques telles que loadbalancing et gestion des erreurs.
En s’appuyant sur l’exemple d’une application distribuée très simple, nous parcourrons ensemble les différentes implémentations de solutions, les contraintes et bénéfices associés.
Synchroniser ses applications (plus) simplementgplanchat
Lors du PHP Tour 2017 Nantes, nous avions vu la présentation du composant akeneo/batch. Revenons sur 3 ans supplémentaires d'usage, de réflexions et de refactorisation qui ont abouti à la création d'un framework spécialisé.
Dans des environnement de plus en plus interconnectés, de plus en plus hétéroclites, nous voyons apparaitre l'usage des PWA, la généralisation des API et des tâches en files d'attentes asynchrones. Là où les solutions pour interroger des petits volumes de données dans des bases distantes commencent à atteindre une certaine maturité.
Où en sommes-nous sur les synchronisations en grand volume et aux formats de données hétéroclites ?
Réalisation d’applications Desktop Windows/Mac Os avec PHPAlexandre Morgaut
Lorsqu'on commence à maîtriser un langage puissant tel que PHP, on est tenté de l'utiliser pour tout type de programmation, par enthousiasme, mais aussi par souci d'efficacité.
Cependant, alors que nous savons tous comment utiliser PHP au travers d’un serveur Web ou en ligne de commande, nous avons beaucoup moins de pratique pour créer une application Desktop, monoposte ou client-serveur, qui plus est, en exploitant l’interface native du système.
En effet, comment fournir un logiciel clé en main avec son installateur ou directement un « .exe » pour Windows ou un « .app » pour Mac OS ? Comment éviter d’avoir à installer successivement Apache, PHP et MySQL, ou du moins ne pas entrer en conflit avec des instances potentiellement déjà présentes ?
Nous évoquerons les différentes réponses existantes, de la plus « Geek » à la plus « RAD » en passant par Flex, Java, GTK2 et d’autres solutions surprenantes.
(Presentation Forum Php Paris 2009)
Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016Christophe Furmaniak
L’introduction de docker en production se fait souvent petit à petit, en mode “nouveau format de packaging” plutôt qu’avec un orchestrateur docker.
Les orchestrateurs comme Kubernetes ou Mesos peuvent faire peur de part leur potentielle complexité à être mis en oeuvre et intégrés dans une infrastructure existante.
Nous découvrirons ensemble Rancher, un autre orchestrateur, plus facile à intégrer, mais tout aussi puissant.
Nous verrons comment l'utiliser sans révolutionner son infrastructure et comment bénéficier de son utilisation dans des cas d'usage comme le “rolling upgrade” d'un service.
Dans le cadre du projet Stream for Good
MIAGE Sorbonne -- Atelier de Veille technologique
Steeven Alliel, Abdel Benamara, David Ekchajzer, Philippe Fidalgo, Mathieu Ridet, Sophia Yalap
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
NodeJs, GruntJs, Bower, Karma, ... des buzzwords dont nous entendons parler, que nous voyons passer dans les blogs/articles. Mais à quoi servent-ils ?
Comment industrialiser nos développements Javascript ? Mettre en place des tests unitaires dans une application Web ? Générer de la documentation ? Des métriques qualités ? La couverture de code ? Comme avec Maven ? Nous verrons concrètement comment articuler tous ces outils autour d'une application école, pour démystifier tout ça.
Symphonie pour PHP industrialisé en agilité majeureJonathan Bonzy
Présentation pour l'Agile Grenoble 2011
Avoir des millions d'amis, comparer des millions d'offres ou publier des millions de news sont autant d’exemples d’applications écrites en PHP. Ce langage de la “programmation pour les nuls”, qui permet tous les écarts, reste pourtant un choix privilégié pour les solutions web. Avec les bons outils et les bonnes pratiques, ce langage est modulable, testable et facilement livrable. Au travers d’une approche technique montrant par l’exemple quels instruments choisir, découvrez comment jouer la partition d’une symphonie pour PHP industrialisé en agilité majeure.
Au programme:
- Dégager un boilerplate d’un projet PHP ou comment ne pas tout jeter à l’arrivée
- Reprendre la main sur leur projet frontend et avoir une stratégie de refactoring par les tests
“Not only working software, but also well-crafted software” - Manifesto for Software Craftsmanship
Plus d'articles sur www.easyopenerp.com
Vous pouvez téléchargement gratuitement notre machine virtuelle pour vos tests à cette adresse : http://www.easyopenerp.com/machine-de-test-6-1-rc1-a-telecharger/
Cet article explique pas à pas comment installer OpenERP 6.1 rc1 sur une machine virtuelle VMWare ou un serveur physique. Différents aspects sont abordés : préparation du serveur, installation et configuration du client web, sécurisation du client web à l'aide d'un proxy Apache, sécurisation du serveur
préparation à la certification LPIC2 version 3.5 en français
Chapitre 8 : Topic 208 : Services Web
Configuration de Apache2 et Squid
Partie 1 : mise en place d'un serveur web
Introduction au serveur web Apache2
Présentation, installation, configuration
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...Nicolas Silberman
Retour d'experience du Groupe Express Roularta sur l'intégration de Puppet (mais finalement Chef) dans leur système d'information, permettant en quelques cliques et quelques minutes de mettre en place une ou plusieurs machines de développement parfaitement fonctionnelle et à jour, le tout hébergé sur le cloud Amazon.
Création du réseau d'entreprise (LAN, DMZ, WAN) en configurant des différentes serveurs : web(apach), fichier(FNS, FTP, SAMBA), Annuaire, proxy-cach, ...
2. L’idée
• L'idée est de contrôler un Smart Home, un robot (ou n'importe quoi),
en utilisant des commandes de bas niveau écrites avec des scripts
Shell commandés directement à partir d'une page HTML. En
n'utilisant pas de langages de niveau supérieur, par exemple, Python
rend le sorties très réactif et rapide à agir.
3. Raspberry Pi ??
• Le Raspberry Pi est un nano-ordinateur monocarte à processeur
ARM conçu par le créateur de jeux vidéo David Braben, dans le cadre
de sa fondation Raspberry Pi.
• Cet ordinateur, qui a la taille d'une carte de crédit, est destiné à
encourager l'apprentissage de la programmation informatique; il
permet l'exécution de plusieurs variantes du système
d'exploitation libre GNU/Linux et des logiciels compatibles. Il est
fourni nu (carte mère seule, sans boîtier, alimentation, clavier, souris
ni écran) dans l'objectif de diminuer les coûts et de permettre
l'utilisation de matériel de récupération.
4. Principales applications:
• PC / tablette / ordinateur portable à faible coût
• Applications IoT
• Centre média
• Robotique
• Domotique industrielle
• Serveur / serveur en nuage
• Serveur d'impression
• Surveillance de sécurité
• Caméra Web
• Jeux
• Point d'accès sans fil
• Sensibilité / surveillance environnementale (p. Ex. Station météo)
5.
6.
7. • Dans ce projet on va controller 2 servos moteurs et une LED.
• Ces sorties qu’on va controller se dévisent en 2 parties:
Ceux qui fonctionnent avec un signal Digital (0 ou 1 equivalent à 0 ou
5v)
Et ceux qui fonctionnent avec un signal pwm (depend du rapport
cyclique)
8. Etape 1: La nomenclature
• 1 Raspberry Pi model 3
• 2 Servo Moteurs (2x)
• 1 Alimentation pour le Raspberry Pi
• 1 LED et une resistance de 330 ohms
• 1 Plaque à essai
• 1 Webcam
9. Etape 2: La verification et l’installation des
bibliothèques
• Comme on dit au debut, on va utiliser des commandes de bas niveau
écrites avec des scripts Shell commandés directement à partir d'une
page HTML c.à.d on va t-etre capable de controller le Rpi à partir des
commandes exécutées dans le terminal.
• On commence par vérifier la bibliotheque qui nous permet de sortir
ou entrer un signal digital et dans notre cas il suffit de sortir un signal
digital pour controller la LED.
• gpio –v
10. Etape 2: La verification et l’installation des
bibliothèques
• Ensuite on va installer la bibliotheque qui va nous permettre de
controller les servos moteurs, on va utiliser la bibliotheque
ServoBlaster.
• Il s'agit d'un logiciel pour le RaspberryPi, qui fournit une interface
pour conduire plusieurs servos via les broches GPIO. Vous contrôlez
les positions d'asservissement en envoyant des commandes au
conducteur indiquant quelle largeur d'impulsion une sortie
d'asservissement particulière devrait utiliser. Le conducteur maintient
cette largeur d'impulsion jusqu'à ce que vous envoyiez une nouvelle
commande demandant une autre largeur.
11. Etape 2: La verification et l’installation des
bibliothèques
• sudo git clone https://github.com/richardghirst/PiBits
• cd PiBits/ServoBlaster/user
• sudo make servod
• sudo make install
• sudo chmod 755 servod
12. Etape 3: Preparer les modes des GPIO’s
(entrée ou sorties)
• Dans notre cas on a que des sorties:
• Pour les sorties digital:
• gpio -g mode 10 out
• Cette commande est utilisée pour configurer le GPIO 10 comme
output.
• Pour les sorties PWM:
• sudo ./servod --p1pins=5,7
• Cette commande est utilisée pour configurer le GPIO 5 et 7 comme
output PWM.
13. Etape 4: Tester les sorties
• Une fois que la broche a son mode défini, on peut assigner un état
logique à la sortie:
• Digital:
• gpio -g write 10 1
• gpio -g write 10 0
• PWM:
• echo P1-5=40% >/dev/servoblaster
• echo P1-7=60% >/dev/servoblaster
14. Etape 5: Installation du serveur Web
LIGHTTPD
• Nous allons installer LIGHTTPD qui est un WebServer très "léger" et
rapide (peut être utilisé à la place d'Apache par exemple). Comme
décrit sur sa page wiki lighttpd, «Lighttpd est un serveur Web
sécurisé, rapide, compatible et très flexible, optimisé pour les
environnements performants. Il présente une empreinte de mémoire
très faible par rapport à d'autres serveurs Web et prend en charge la
charge de l'ordinateur.
15. Etape 5: Installation du serveur Web
LIGHTTPD
• sudo apt-get -y install lighttpd
• sudo lighttpd-enable-mod cgi
• sudo lighttpd-enable-mod fastcgi
16. Etape 5: Installation d'un serveur de webcam
Raspberry Pi
• Wget https://github.com/ccrisan/motioneye/wiki/precompiled/ffmpeg_3.1.1-
1_armhf.deb
• sudo dpkg -i ffmpeg_3.1.1-1_armhf.deb
• sudo apt-get install curl libssl-dev libcurl4-openssl-dev libjpeg-dev libx264-142
libavcodec56 libavformat56 libmysqlclient18 libswscale3 libpq5
• Avec ces paquets installés, nous pouvons maintenant saisir la dernière version
du logiciel de mouvement et l'installer.
• wget https://github.com/Motion-Project/motion/releases/download/release-
4.0.1/pi_jessie_motion_4.0.1-1_armhf.deb
• sudo dpkg -i pi_jessie_motion_4.0.1-1_armhf.deb
17. Etape 5: Installation d'un serveur de webcam
Raspberry Pi
• Maintenant, vous devriez pouvoir vérifier le flux de Webcam à
l'adresse IP de notre Pi, par exemple, dans votre navigateur, passez à
l'adresse suivante: 192.168.1.121:8081
18. Etape 6: La création du page web et des
scripts
• Chaque fichier de script est essentiellement du texte brut. Lorsqu'un
fichier texte est tenté d'être exécuté, les shells les analyseront pour
des indices quant à savoir s'ils sont des scripts ou non, et comment
gérer tout correctement. Pour cette raison, il existe quelques lignes
directrices que vous devez connaître.
• Chaque script devrait commencer par "#! / Bin / bash" (The Hash-
Bang Hack}
• Chaque nouvelle ligne est une nouvelle commande
• Les lignes de commentaires commencent par un #
19. Etape 6: La création du page web et des
scripts
• Lorsqu'un shell analyse un fichier texte, le moyen le plus direct
d'identifier le fichier en tant que script est en faisant votre première
ligne: #! / Bin / bash (The Hash-Bang Hack). Si vous utilisez un autre
shell, suivez son chemin ici. Les lignes de commentaires commencent
par hashes (#), mais en ajoutant le bang (!) Et le chemin de shell après
qu'il s'agit d'une sorte de hack qui contournera cette règle de
commentaire et forcera le script à exécuter avec le shell auquel cette
ligne pointe.
20. Etape 6: La création du page web et des
scripts
• Par exemple, pour créer un script shell pour allumer la LED, nous
devons créer le fichier ci-dessous
• Sudo nano turnOn.cgi
• #! / Bin / bash
• gpio -g write 10 1
Une fois le script créé, nous devons lui donner l'autorisation d'être exécuté:
sudo chmod 755 forward.cgi
21. Etape 6: La création du page web et des
scripts
• Notez qu’on utilise .cgi comme extension de fichier. CGI signifie
"Common Gateway Interface". C'est un moyen standard pour les
serveurs Web d'interagir avec les programmes exécutables installés
sur un serveur qui génère dynamiquement des pages Web. Ces
programmes sont connus sous le nom de scripts CGI ou simplement
CGI; Ils sont généralement écrits dans un langage de script, mais
peuvent être écrits dans n'importe quel langage de programmation.
22. Etape 6: La création du page web et des
scripts
• En cours, la même idée doit être appliquée aux autres possibilités
,dans notre cas:
• allumer la LED
• fermer la LED
• tourner le servo1 à tel degré
• tourner le servo1 à on autre degré
• tourner le servo2 à tel degré
• tourner le servo2 à un autre degré
23. Etape 6: La création du page web et des
scripts
• Allumer la LED
• sudo nano turnOn.cgi
• #!/bin/bash
• gpio -g write 10 1
• Etteindre la LED
• sudo nano turnOff.cgi
• #!/bin/bash
• gpio -g write 10 0
24. Etape 6: La création du page web et des
scripts
• Tourner le servo1 à tel degré
• sudo nano openDoor.cgi
• #!/bin/bash
• echo P1-5=30% >/dev/servoblaster
• Tourner le servo1 à on autre degré
• sudo nano closeDoor.cgi
• #!/bin/bash
• echo P1-5=77% >/dev/servoblaster
• Tourner le servo2 à tel degré
• sudo nano openWindow.cgi
• #!/bin/bash
• echo P1-7=30% >/dev/servoblaster
• Tourner le servo2 à on autre degré
• sudo nano openWindow.cgi
• #!/bin/bash
• echo P1-7=77% >/dev/servoblaster
25. Etape 6: La création du page web et des
scripts
• C'est une bonne pratique que nous ayons un répertoire spécifique
pour les programmes utilisés et appeler le "bin". Ainsi, pour
sauvegarder les scripts que nous utiliserons dans le projet, nous
devons créer un répertoire comme cgi-bin contenant tous les scripts
exécutables (ou fichiers binaires). Par exemple, / var / www / cgi-bin.
• Une fois que les scripts sont créés, vous devez leur donner
l'autorisation d'être exécuté,
• Chmod 755 *.cgi
26. Etape 7: Création de la page HTML pour le
contrôle
• <button style="height: 50px; width: 100px" onclick="lighton>LIGHT
ON</button>
27. Etape 7: Création de la page HTML pour le
contrôle
• À ce stade, le serveur Web est en cours d'exécution et si une page
index.html est située à / var / www, nous pouvons l'accéder à partir de
n'importe quel navigateur, en tapant l'adresse IP Rpi.
• Dans le html de notre page on va ecrire des fonctions en javascripts
Lorsque le bouton est pressé, en raison de la commande "onclick = lighton
()", la fonction "lighton () s'appelle:
• Et une fois que la fonction lighton () est appelée, le script lighton.cgi est
exécuté et "voilá", la LED s'allume.
function lighton()
{
xmlhttp.open("GET","cgi-bin/lighton.cgi",true);
xmlhttp.send();
}
28. Etape 7: Création de la page HTML pour le
contrôle
• La même procédure doit être utilisée pour tous les boutons.
• Une fois le code est complet on savaugarde et on quitte.
29.
30. Conclusion
• Le schéma ci-dessus montre l'idée de base du projet. Le RPi est
configuré comme serveur Web et recevra des commandes à partir
d'une page HTML. Ces commandes modifient l'état des GPIO, ce qui
permet aux moteurs de commande RPi (degré de rotation) et allumer
/ éteindre les LED.
• Ce que nous avons fait ici, c'est contrôler les RPI GPIO sur Internet.
Nous pouvons contrôler n'importe quoi à partir de là!