camera.plugin.disabled.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. /*
  3. @name Camera
  4. @author Valentin CARRUESCO <idleman@idleman.fr>
  5. @link http://blog.idleman.fr
  6. @licence CC by nc sa
  7. @version 1.0.0
  8. @description Plugin permettant de prendres des photos avec la camera PI depuis l'interface web
  9. */
  10. function camera_plugin_menu(&$menuItems){
  11. global $_;
  12. $menuItems[] = array('sort'=>3,'content'=>'<a href="index.php?module=camera"><i class="fa fa-eye"></i> Camera</a>');
  13. }
  14. function camera_plugin_page($_){
  15. if(isset($_['module']) && $_['module']=='camera'){
  16. ?>
  17. <div class="row">
  18. <div class="span12">
  19. </div>
  20. </div>
  21. <div class="row">
  22. <div class="span12">
  23. <div class="span5">
  24. <h5>Photo PI</h5>
  25. <button class="btn" onclick="camera_refresh();">Prendre une photo</button><br/>
  26. <img class="img-polaroid img-rounded" id="cameraPI" src="action.php?action=camera_get_stream" ><br/>
  27. </div>
  28. <div class="span6">
  29. <p>
  30. Avant de pouvoir utiliser ce plugin, vous devez avoir branché la caméra RPI, puis vous devez executer les commandes suivantes dans le terminal du raspberry pi :
  31. <br/><code>
  32. sudo apt-get update && sudo apt-get upgrade
  33. </code><br/>
  34. Puis tapez<br/>
  35. <code>
  36. sudo raspi-config
  37. </code><br/>
  38. Puis allez dans "camera" et sélectionnez "enable", redemarrez et tapez<br/>
  39. <code>
  40. sudo usermod -a -G video www-data
  41. </code><br/>
  42. Puis<br/>
  43. <code>
  44. sudo echo 'SUBSYSTEM=="vchiq",GROUP="video",MODE="0660"' > /etc/udev/rules.d/10-vchiq-permissions.rules
  45. </code><br/>
  46. Et enfin<br/>
  47. <code>
  48. sudo chown -R www-data:www-data <?php echo __DIR__ ?>
  49. </code><br/>
  50. Redémarrez et c'est ok :)
  51. </p>
  52. </div>
  53. </div>
  54. </div>
  55. <?php
  56. }
  57. }
  58. function camera_action_camera(){
  59. global $_,$conf;
  60. switch($_['action']){
  61. case 'camera_refresh':
  62. system('raspistill -hf -w 400 -h 400 -o '.__DIR__.SLASH.'stream'.SLASH.'stream.jpg');
  63. break;
  64. case 'camera_get_stream':
  65. global $myUser;
  66. if($myUser->getId()==0) throw new Exception("Permissions insuffisantes");
  67. header("Content-Type: image/jpeg");
  68. ob_end_clean();
  69. $file = __DIR__.SLASH.'stream'.SLASH.'stream.jpg';
  70. if(!file_exists($file)) $file = __DIR__.SLASH.'stream'.SLASH.'default.jpg';
  71. echo file_get_contents($file);
  72. break;
  73. }
  74. }
  75. Plugin::addJs('/js/main.js');
  76. Plugin::addHook("action_post_case", "camera_action_camera");
  77. Plugin::addHook("menubar_pre_home", "camera_plugin_menu");
  78. Plugin::addHook("home", "camera_plugin_page")
  79. ?>