Compteur de visiteurs

Accueil/Compteur de visiteurs
Compteur de visiteurs 2016-12-20T11:37:56+00:00
Noël arrive bientôt, alors voici ma contribution pour vous mettre de bonne humeur. C’est un compteur de visiteurs qui fait sonner une cloche. Littéralement. Ça vous fera sourire à chaque fois que quelqu’un viendra sur votre blog.Ce compteur est composé d’un Arduino, d’une cloche, d’un servomoteur et de quelques lignes de codes en C, python et php. La plupart des parties sont open source et devrait être simple à obtenir.

Le matériel

FVWDG6WFA2KM2C3.MEDIUM
  • Une carte Arduino. J’ai une Arduino Diecimila d’Adafruit. Entre-temps, il y a eu de nombreux clones tels que la Bare Bones Board de Modern Devices utile notamment pour utilisation sur plaque d’essai sans soudure
  • Un servomoteur, n’importe lequel. J’en utilise un vieux que j’ai utilisé dans mes anciens hobbies
  • Une cloche, de préférable petite et légère pour pouvoir la secouer avec le servomoteur
  • Deux trombones, un grand et robuste pour tenir la cloche et un autre petit pour secouer et faire sonner la cloche
  • Des fils/câbles électriques pour connecter le servomoteur à l’Arduino
  • Un site internet, en fait ça n’est pas forcément un site ou un blog mais tout ce qui peux être compté peut fonctionner
  • Un PC ou un MAC pour connecter l’Arduino avec le blog ou le site

Vous aurez aussi besoins d’un fer à souder car les fils ne peuvent pas être directement raccordé sur l’Arduino.

 

Le montage

La cloche est tenue par un solide trombone. Le petit trombone est utilisé pour former une sorte de bras qui est attaché au servomoteur. Notez que vous pouvez plier le trombone qui tiens la cloche de sorte qu’un petit mouvement génère un « ding »

Le cirquit

Un servomoteur a 3 fils :

  • Jaune / orange ou blanc : signal
  • Rouge : VCC
  • Noir / marron : GND

Voila comment les brancher à l’arduino :

  • Le rouge est raccordés au + d’une alimentation externe 6V
  • Le noir, au – de cette même alimentation et aussi au GND de l’Arduino
  • Le câble orange est raccordé au pin digital 2, ce sera le signal permettant d’actionner le servomoteur

Vous pourriez avoir à souder un petit connecteur au fils s’ils ne rentrent pas directement dans l’Arduino ou la prise du servomoteur

La programmation

Bon, je pense que vous avez déjà téléchargé et installé la dernière version de l’IDE Arduino venant « d’arduino.cc». Pour piloter plus simplement le servomoteur, vous avez une librairie à cet effet qui est intégré à l’IDE d’origine.

  • Reliez votre Arduino au PC par le câble USB
  • Ouvrez l’IDE Arduino et créez un nouveau « sketch ». Un « sketch » c’est le programme qui va permettre de communiquer avec l’Arduino
  • Téléchargez le programme en pièce jointe et coller le dans le nouveau « sketch ». Appuyez sur le bouton « Save »
  • Appuyez sur le bouton « verify ». Il compile votre programme dans un fichier hexadécimal qui peut être transféré dans votre Arduino
  • Appuyez sur le bouton « upload » pour transférer le « sketch » sur l’Arduino

Testons le programme

Maintenant, votre compteur de visiteur est prêt pour quelques actions. Regardons s’il fonctionne correctement :

  • Appuyez sur le bouton « serial monitor »
  • Sélectionner la zone de saisie de texte, après le bouton « send »
  • Entrez une valeur comprise entre 1 et 255 et envoyez la
  • Maintenant, le bras du servomoteur devrait bouger d’avant en arrière

Ouf. C’était la partie la plus dur. Maintenant vous pouvez envoyer un bit à l’Arduino et le servomoteur vous obéira. La partie suivante permettra de trouver quelque chose pour déclencher la cloche.

Nous avons déjà finis.

La partie web

Pour fair notre compteur de visiteur ( et surtout pour le relier à votre site ), nous avons besoins de deux petits scripts. L’un pour créer et activer le compteur et le garder en fonctionnement, l’autre pour compter le nombre de visiteur et l’envoyer à l’Arduino.
Si le langage PHP et Python ne vous sont pas familier, vous pouvez assez simplement porter le programme sur vos langages favoris
Voici un court script PHP qui lit les valeurs d’un fichiers (hitcounter.txt), les augmentent et les réécrit dans ce même fichier.
C’est tout !! Juste ça !! Enregistrez ce fichier avec le nom suivant: counter.php sur votre serveur par exemple ( fonctionne aussi sur votre ordinateur avec serveur PHP ( MAMP/LAMP/WAMP ) puis accéder ensuite à ce fichier à l’adresse http://localhost/counter.php ou http://www.votredomaine.com/counter.php
$count_my_page = "le_nom_de_votre_fichier.txt"; 
$hits = file($count_my_page); 
$hit = trim($hits
[0]); $hit++; $fp = fopen($count_my_page , "w"); fputs($fp , "$hit"); fclose($fp); echo $hit;

Le code qui suit permet d’établir la communication entre l’Arduino et votre serveur.
Il permet ainsi d’envoyer à l’Arduino l’état du compteur (valeurs ou nombre de visites)
J’ai utilisé le Python mais d’autres langages pourraient fonctionner.
Ce script ouvre une connection HTTP et lis le fichier hitcounter.txt. Si la valeurs à changé depuis la dernière lecture, alors la différence est calculée et envoyée à l’Arduino.
Cela s’execute toutes les dix secondes mais vous pouvez stopper le script avec le raccourcis ctrl+c.

Adapter la valeur myUrl à l’url de votre fichier counter.php et la valeur de la connection série avec la votre.

 import time
 import urllibimport
 serial arduinoser = serial.Serial('/dev/tty.usbserial-A4001JAh', 9600) #votre port serie
 myUrl = 'http://tinkerlog.com/hitcounter.txt' #votre fichier .txt
 last_counter = urllib.urlopen(myUrl).read()
 while (True):
    counter = urllib.urlopen(myUrl).read()
    delta = int(counter) - int(last_counter)
    print "counter: %s, delta: %s" % (counter, delta)
    arduinoser.write(chr(ord(chr(delta))))
    last_counter = counter
    time.sleep(10)

Note important: ce tuto est une traduction.
Lien original : http://www.instructables.com/id/Arduino-XMAS-hitcounter/step5/Make-it-a-hitcounter/