projets:poelepelletdomotique

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

projets:poelepelletdomotique [2016/10/15 08:34] – [Problème de remplissage de la sdcard] jonathan.alibertprojets:poelepelletdomotique [2017/12/21 19:13] (Version actuelle) – modification externe 127.0.0.1
Ligne 48: Ligne 48:
   * Pour plus d'infos sur la bibliothèque client MQTT utilisée se référer à ce lien : [[https://eclipse.org/paho/clients/c/]].   * Pour plus d'infos sur la bibliothèque client MQTT utilisée se référer à ce lien : [[https://eclipse.org/paho/clients/c/]].
   * Pour télécharger les sources, les compiler et installer la bibliothèque :   * Pour télécharger les sources, les compiler et installer la bibliothèque :
 +<sxh [Bash]>
   sudo aptitude install libssl-dev   sudo aptitude install libssl-dev
   git clone http://git.eclipse.org/gitroot/paho/org.eclipse.paho.mqtt.c.git   git clone http://git.eclipse.org/gitroot/paho/org.eclipse.paho.mqtt.c.git
Ligne 54: Ligne 54:
   make   make
   sudo make install   sudo make install
 +</sxh>
   * Ensuite, installe le serveur/broker MQTT Mosquitto, avec la commande ''sudo aptitude install mosquitto''. Tu peux installer ce serveur sur n'importe quel OS et n'importe quel RPI. Seule la configuration réseau changera par rapport à notre cas de figure.   * Ensuite, installe le serveur/broker MQTT Mosquitto, avec la commande ''sudo aptitude install mosquitto''. Tu peux installer ce serveur sur n'importe quel OS et n'importe quel RPI. Seule la configuration réseau changera par rapport à notre cas de figure.
   * Compile DS18B20Manager avec la commande ''g++ -lpthread -lpaho-mqtt3c  main.c -o DS18B20Manager''. //à faire : mettre à disposition le code source//   * Compile DS18B20Manager avec la commande ''g++ -lpthread -lpaho-mqtt3c  main.c -o DS18B20Manager''. //à faire : mettre à disposition le code source//
Ligne 61: Ligne 61:
   * La dernière phase de cette étape consiste à lancer DS18B20Manager au démarrage du RPI. On peut procéder en rajoutant ''nohup /home/pi/DS18B20Manager/DS18B20Manager > /dev/null 2>&1 &'' au fichier ''/etc/rc.local'' avant ''exit 0''. Une autre solution, bien plus élégante consiste à écrire un script init.   * La dernière phase de cette étape consiste à lancer DS18B20Manager au démarrage du RPI. On peut procéder en rajoutant ''nohup /home/pi/DS18B20Manager/DS18B20Manager > /dev/null 2>&1 &'' au fichier ''/etc/rc.local'' avant ''exit 0''. Une autre solution, bien plus élégante consiste à écrire un script init.
   * Entre les commandes suivantes :   * Entre les commandes suivantes :
- +<sxh [Bash]>
   sudo cp /home/pi/DS18B20Manager/DS18B20Managerd /etc/init.d/   sudo cp /home/pi/DS18B20Manager/DS18B20Managerd /etc/init.d/
   sudo chmod 0755 /etc/init.d/DS18B20Managerd   sudo chmod 0755 /etc/init.d/DS18B20Managerd
   sudo update-rc.d DS18B20Managerd defaults   sudo update-rc.d DS18B20Managerd defaults
 +</sxh>
 //à faire : fournir le script// //à faire : fournir le script//
 // documenter DS18B20Manager // // documenter DS18B20Manager //
Ligne 156: Ligne 156:
  
   * Pour cela nous allons récupérer les sources de Freeboard, et générer le projet comme suit :   * Pour cela nous allons récupérer les sources de Freeboard, et générer le projet comme suit :
 +<sxh bash; gutter: false>
   git clone https://github.com/Freeboard/freeboard.git   git clone https://github.com/Freeboard/freeboard.git
   cd freeboard   cd freeboard
Ligne 163: Ligne 163:
   sudo npm install -g grunt-cli   sudo npm install -g grunt-cli
   grunt   grunt
 +</sxh>
   * Ensuite, installe un plugin client MQTT pour Freeboard. Pour cela, procède ainsi :   * Ensuite, installe un plugin client MQTT pour Freeboard. Pour cela, procède ainsi :
 +<sxh bash; gutter: false>
   cd plugins/thirdparty/   cd plugins/thirdparty/
   wget https://raw.githubusercontent.com/alsm/freeboard-mqtt/master/paho.mqtt.plugin.js   wget https://raw.githubusercontent.com/alsm/freeboard-mqtt/master/paho.mqtt.plugin.js
 +</sxh>
   * Ce plugin nécessite une bibliothèque js, à récupérer et à placer de de la façon suivant :   * Ce plugin nécessite une bibliothèque js, à récupérer et à placer de de la façon suivant :
 +<sxh bash; gutter: false>
   cd ~/freeboard/lib/js/thirdparty/   cd ~/freeboard/lib/js/thirdparty/
   wget http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.javascript.git/plain/src/mqttws31.js   wget http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.javascript.git/plain/src/mqttws31.js
 +</sxh>
   * Modifie ''paho.mqtt.plugin.js'' de la manière suivante :   * Modifie ''paho.mqtt.plugin.js'' de la manière suivante :
 +<sxh javascript; gutter: true>
   (function()   (function()
   {   {
Ligne 188: Ligne 188:
   "/lib/js/thirdparty/mqttws31.js"   "/lib/js/thirdparty/mqttws31.js"
   ],   ],
-  +</sxh>  
 Modifie ''/lib/js/thirdparty/mqttws31.js'' en fonction de la racine du site en question, on verra juste après comment procéder. Modifie ''/lib/js/thirdparty/mqttws31.js'' en fonction de la racine du site en question, on verra juste après comment procéder.
  
Ligne 198: Ligne 198:
  
   * Maintenant nous allons installer un serveur web, j'ai choisi nginx car il est très performant sur RPI, libre à toi de tenter d'autres expériences, avec apache, par exemple. On installe donc nginx :   * Maintenant nous allons installer un serveur web, j'ai choisi nginx car il est très performant sur RPI, libre à toi de tenter d'autres expériences, avec apache, par exemple. On installe donc nginx :
 +<sxh bash; gutter: false>
   sudo aptitude install nginx   sudo aptitude install nginx
-  +</sxh>
 Ensuite, nous allons paramétrer le serveur nginx en modifiant ''/etc/nginx/site-enabled/default'' de cette façon : Ensuite, nous allons paramétrer le serveur nginx en modifiant ''/etc/nginx/site-enabled/default'' de cette façon :
  
Ligne 213: Ligne 213:
  
   * Il ne nous reste plus qu'à copier le répertoire ''~/freeboard'' dans ''/var/www'' et à redémarrer le RPI :   * Il ne nous reste plus qu'à copier le répertoire ''~/freeboard'' dans ''/var/www'' et à redémarrer le RPI :
 +<sxh bash; gutter: false>
   sudo cp -r ~/freeboard /var/www   sudo cp -r ~/freeboard /var/www
   sudo reboot   sudo reboot
 +</sxh>
   * Il va aussi falloir mettre à jour le broker MQTT afin qu'il supporte les websockets :   * Il va aussi falloir mettre à jour le broker MQTT afin qu'il supporte les websockets :
 +<sxh bash; gutter: false>
   wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key   wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
   sudo apt-key add mosquitto-repo.gpg.key   sudo apt-key add mosquitto-repo.gpg.key
Ligne 225: Ligne 225:
   sudo aptitude update   sudo aptitude update
   sudo aptitude upgrade mosquitto   sudo aptitude upgrade mosquitto
 +</sxh>
 Modifier le fichier de configuration de Mosquitto pour qu'il prenne en charge les websockets : Modifier le fichier de configuration de Mosquitto pour qu'il prenne en charge les websockets :
  
Ligne 233: Ligne 233:
      
 Redémarrez le serveur ou le RPI : Redémarrez le serveur ou le RPI :
 +<sxh bash; glutter: false>
   sudo service mosquitto stop   sudo service mosquitto stop
   sudo service mosquitto start   sudo service mosquitto start
 +</sxh>
   * Maintenant nous pouvons créer notre dashboard en utilisant directement le serveur MQTT ! Pratique, et beaucoup plus élégant que la précédente solution. Crée alors le freeboard comme tu le souhaites en utilisant le plugin MQTT pour les Datasources.   * Maintenant nous pouvons créer notre dashboard en utilisant directement le serveur MQTT ! Pratique, et beaucoup plus élégant que la précédente solution. Crée alors le freeboard comme tu le souhaites en utilisant le plugin MQTT pour les Datasources.
    
Ligne 251: Ligne 251:
  
   * Tout d'abord, récupérer le projet :   * Tout d'abord, récupérer le projet :
 +<sxh bash; gutter:false>
   git clone git@github.com:iobridge/thingspeak.git   git clone git@github.com:iobridge/thingspeak.git
 +</sxh>
   * Installer Ruby 2, Ruby Gems, rails 4 et un SGBD :   * Installer Ruby 2, Ruby Gems, rails 4 et un SGBD :
 +<sxh bash; gutter: false>
   sudo aptitude install ruby2.1 rubygems rails mysql-server mysql-client libmysqlclient-dev build-essential libxml2-dev libxslt-dev   sudo aptitude install ruby2.1 rubygems rails mysql-server mysql-client libmysqlclient-dev build-essential libxml2-dev libxslt-dev
   curl -sSL https://get.rvm.io | bash -s stable   curl -sSL https://get.rvm.io | bash -s stable
Ligne 261: Ligne 261:
   rvm install 2.1   rvm install 2.1
   source /home/pi/.rvm/scripts/rvm   source /home/pi/.rvm/scripts/rvm
 +</sxh>
   * Paramétre tout ce qui est relatif au serveur mysql :   * Paramétre tout ce qui est relatif au serveur mysql :
-  +<sxh bash; gutter: false>
   sudo gem install mysql   sudo gem install mysql
      
   cd ~/thingspeak   cd ~/thingspeak
   cp config/database.yml.example config/database.yml   cp config/database.yml.example config/database.yml
-  mysql -u root -p +  mysql -u root -p 
 +</sxh> 
 +<sxh sql; gutter: false>
   CREATE USER 'thing'@'localhost' IDENTIFIED BY 'speak';   CREATE USER 'thing'@'localhost' IDENTIFIED BY 'speak';
   GRANT ALL PRIVILEGES ON * . * TO 'thing'@'localhost';   GRANT ALL PRIVILEGES ON * . * TO 'thing'@'localhost';
   FLUSH PRIVILEGES;   FLUSH PRIVILEGES;
   exit   exit
 +</sxh>
 Modifie config/database.yml en fonction de l'utilisateur rajouté et de son mot de passe. Puis exécute ces commandes : Modifie config/database.yml en fonction de l'utilisateur rajouté et de son mot de passe. Puis exécute ces commandes :
 +<sxh bash; gutter: false>
   bundle install   bundle install
   sudo rake db:create   sudo rake db:create
   rake db:schema:load   rake db:schema:load
 +</sxh>
   * Lance le serveur :   * Lance le serveur :
 +<sxh bash; gutter: false>
   rails server   rails server
 +</sxh>
 ===== Dixième étape - Création d'un tableau de contrôle physique ===== ===== Dixième étape - Création d'un tableau de contrôle physique =====
  
  • projets/poelepelletdomotique.1476513260.txt.gz
  • Dernière modification : 2017/12/21 19:13
  • (modification externe)