SmartCity 🚦

Projet dans le cadre du cours INFOM453 Laboratoire en informatique ambiante et mobile sur le sujet des Smart cities.

Serveur/Scala Maquette/Phidgets
Quentin Justin
JĂ©rĂ©my       NoĂ©
NoĂ©       Quentin

Phase 1 : Design

3 tâches

  • Passer des zones routières en zones piĂ©tonnes et inversement : Nous entendons par lĂ  la possibilitĂ© de rendre une partie de la ville ou la ville, dans son intĂ©gralitĂ©, piĂ©tonne. Cette mesure pourrait ĂŞtre de courte durĂ©e ou prolongĂ©e Ă  long terme. Afin de rĂ©aliser cette première tâche, aucun capteur n’est rĂ©ellement nĂ©cessaire, seuls des feux ainsi que des Ă©crans d’affichage seraient nĂ©cessaires. Ces derniers permettraient de dĂ©vier les vĂ©hicules pour les faire contourner les zones devenues piĂ©tonnes et ainsi bloquer l’accès Ă  celles-ci.

  • Prioriser certains vĂ©hicules (bus) : Cette deuxième tâche a pour but de privatiser certaines voies aux transports en commun afin que ceux-ci respectent le plus possible leurs horaires annoncĂ©s. Actuellement la plupart de ces voies sont rĂ©servĂ©es en permanence ce qui n’est pas solution adĂ©quate. En effet, les transports en commun circulent Ă  des frĂ©quences diffĂ©rentes en fonction des pĂ©riodes de la journĂ©e et de l’annĂ©e (ex. : vacances scolaires), il n’est donc pas nĂ©cessaire de constamment privatiser ces bandes. Ces dernières pourraient donc ĂŞtre partagĂ©es avec les usagers quotidiens afin de ne pas surcharger le rĂ©seau lorsque cela n’est pas nĂ©cessaire. Nous aurons dĂ©sormais besoin de capteurs, notamment des capteurs de prĂ©sence de vĂ©hicules afin de vĂ©rifier si le rĂ©seau est surchargĂ© ou non. Des pĂ©riphĂ©riques d’affichage seront Ă©galement utiles afin de signaler aux usagers s’ils peuvent ou non circuler sur les bandes de bus.

  • Adapter la circulation en fonction d’évĂ©nements / de l’environnement : Cette troisième et dernière tâche est la plus complexe, en effet, elle permet d’adapter le trafic en fonction de plusieurs critères tels que des Ă©vĂ©nements (prĂ©vus : concerts, Ă©vĂ©nements sportifs, etc. et non prĂ©vus : accidents de la route, etc.), la mĂ©tĂ©o, le taux de pollution, etc. Plusieurs capteurs seront dès lors nĂ©cessaires, notamment des capteurs de tempĂ©rature au sol, des capteurs de pollution, des capteurs de prĂ©sence. De plus, afin d’être au courant des Ă©vĂ©nements imprĂ©vus tels qu’un accident de la route, une interface utilisateur serait nĂ©cessaire (application mobile ou web). En plus de ces trois tâches principales, il va de soi que notre système gĂ©rera l’intĂ©gralitĂ© des feux de signalisation du système. Ceci afin d’assurer un fonctionnement “classique” de ces feux (ex. : piĂ©tons souhaitant traverser).

Maquette

Dessin abstrait de la maquette disponible ici (7/3/2017)

Arduino - Maquette

Emplacement de chaque LED géré par l'arduino. Le numéro du port associé y est précisé ici (05/04/2017).

Phase 2 : Phidgets & Arduino

Arduino

Le dossier libraries contient toutes les librairies utiles pour faire tourner le code sur l'arduino. Copiez simplement le contenu de ce dossier dans le dossier librairies de votre installation arduino.

Utilisation des ports sur l'arduino :

  • Digital
    • Zone NO : 1
    • Zone NE : 2
    • Zone N : 1, 2 et 3
    • Zone SO : 5
    • Zone SE : 6
    • Zone S : 4, 5 et 6
    • Zone Bus : 7
    • DĂ©viation Est : 0
  • Analogue
    • Temperature et himiditĂ© : A0
      • DĂ©viation Ouest : A6
  • Autre
    • LCD : 11 (SDA) et 12 (SCL)

Phidgets

Port Sensor Input Output
0   MainCarDetector West đźš— / MainTrafficLight đź”´
1   MainCarDetector East đźš™ / MainTrafficLight âś…
2 SecondaryCarDetector South đźš— / AuxiliaryTrafficLight đź”´
3 SecondaryCarDetector North đźš™ / AuxiliaryTrafficLight âś…
4 IndorLightSensor 💡 / PedestrianTrafficLight 🔶
5 / / PublicLight1 đź”…
6 / / PublicLight2 🔅 / 🔆
7 / / PublicLight3 🔆

Phase 3 : Scala

Pour pouvoir compiler le projet, il faut installer la librairie Phidgets dans votre repository local Maven :

  • TĂ©lĂ©charger la documentation ici
  • DĂ©zipper le ficier .zip tĂ©lĂ©charger et ouvrir un terminal dans le dossier rĂ©sultant de dĂ©zippage.
  • Lancer la commande jar cf ../phidget-javadoc.jar .
  • TĂ©lĂ©charger la librairie Java de Phidgets ici
  • Lancer la commande mvn install:install-file -Dfile=phidget21.jar -DgroupId=com.phidgets -DartifactId=phidget -Dversion=2.1 -Dpackaging=jar -Djavadoc=phidget-javadoc.jar dans le dossier oĂą se trouvent les .jar de la librairie et de la JavaDoc de celle-ci.
  • S'assurer que la dĂ©pendance suivante se trouve dans le pom.xml (ce qui est normalement dĂ©jĂ  le cas) :
<dependency>
    <groupId>com.phidgets</groupId>
    <artifactId>phidget</artifactId>
    <version>2.1</version>
    <scope>compile</scope>
</dependency>