Filed under Projets

ESP8266

doit_wemos.png

Cela maintenant un moment que j'ai envie de m'amuser avec des cartes à base d'ESP8266.

J'ai été chez mon vendeur favoris, et j'y ai trouvé ces deux cartes qui ont la particularités de ressembler à des cartes arduino.

Ces deux cartes sont reconnues dans l'EDI Arduino après installation des bibliothèques nécessaires. Voir ici

Sur les cartes des ESP8266 différents à gauche ESP8266-13 et à droite ESP8266ex

Ce sont mes premières notes, on mettra cela en meilleur forme DQP.

Carte ESPDUINO - DOIT

EDI arduino

Bon allô docteur il y a un bug, je n'arrive pas a compiler blink !!!

alors voyons je fais un raz puis

j'utilise la version arduino-nightly

ensuite je récupère les sources sur https://github.com/esp8266/Arduino

j'installe (attention python 2 nécessaire).

Bon j'ai bien ESP8266-13 dans les cartes mais cela ne compile toujours pas je ne trouve pas un fichier....

la soluce... le fichier board.txt défini la variable espduino.build.variant=espduino oui mais voila Linux est case sensitif et le répertoire est nommé ESPduino.... dommage Eliane.

Un rapide renommage du répertoire incriminé et hop cela fonctionne :-)

Autres tests rapides

j'ai testé les exemples fournis, la commande des GPIO à travers le réseau WiFi est d'une facilité déconcertante.

Carte WeMos D1R2

EDI arduino

Même configuration que précédemment, et là aucun problème de compilation pour BLINK ;-)

Tagged ,

RaspberryPI - Kodi

Présentation du projet

J'ai un Raspberry PI B première génération sur lequel j'ai installé il y à longtemps ArchArm et XBMC le tout permettant de visionner sur ma télé les données de mon NAS.
Je vous l'accorde j'ai un télévision SAMSUNG avec SmartHUB mais voila je l'ai interdit sur le réseau, pour par exemple un micro qui fonctionne en permanence et que l'on ne peut pas arrêter, un butineur de très mauvaise qualité, bref SmartHUB je m'en passe.

Dernièrement le Raspberry PI a pris un petit coup de jeune :-) la version 2 B avec son nouveau SOC est vraiment intéressant à un prix humm.... 45€ avec un bloc alim 2A.

Pré-requis

  • un raspberry PI 2B
  • un bloc alimentation de 5V 2A
  • une carte microSD 8 Go
  • un câble Ethernet
  • un dongle USB WI-FI
  • un clavier sans fil
    clavier.png

Réalisation du projet

Préparation de la carte microSD

Je vais utiliser mon portable sous Arch pour préparer la carte microSD. Je pars du principe que vous avez les connaissance minimum pour correctement identifier votre carte microSD.

    fdisk -l

me permet de trouver ma carte

    Disque /dev/mmcblk0 : 7,4 GiB, 7948206080 octets, 15523840 secteurs
    Unités : secteur de 1 × 512 = 512 octets
    Taille de secteur (logique / physique) : 512 octets / 512 octets
    taille d'E/S (minimale / optimale) : 512 octets / 512 octets
    Type d'étiquette de disque : dos
    Identifiant de disque : 0x417ee54b

donc vous remplacerez /dev/mmcblk0 par l'identifiant de votre carte.

Ce que nous allons faire : * Création d'une partition primaire de 100M au format FAT * Création d'une partition prenant tout la place disponible restante au format Linux

Voila le déroulé des actions à effectuer :

    phil@asus~ $sudo fdisk /dev/mmcblk0

    Bienvenue dans fdisk (util-linux 2.26.1).
    Les modifications resteront en mémoire jusqu'à écriture.
    Soyez prudent avant d'utiliser la commande d'écriture.

Commande (m pour l'aide) : o

    Création d'une nouvelle étiquette pour disque de type DOS avec identifiant de disque 0xbfab1046.

Commande (m pour l'aide) : p

    Disque /dev/mmcblk0 : 7,4 GiB, 7948206080 octets, 15523840 secteurs
    Unités : secteur de 1 × 512 = 512 octets
    Taille de secteur (logique / physique) : 512 octets / 512 octets
    taille d'E/S (minimale / optimale) : 512 octets / 512 octets
    Type d'étiquette de disque : dos
    Identifiant de disque : 0xbfab1046

Commande (m pour l'aide) : n

    Type de partition
       p   primaire (0 primaire, 0 étendue, 4 libre)
       e   étendue (conteneur pour partitions logiques)

Sélectionnez (p par défaut) : p
Numéro de partition (1-4, 1 par défaut) : 1

    Premier secteur (2048-15523839, 2048 par défaut) : 

Dernier secteur, +secteurs ou +taille{K,M,G,T,P} (2048-15523839, 15523839 par défaut) : +100M

    Une nouvelle partition 1 de type « Linux » et de taille 100 MiB a été créée.

Commande (m pour l'aide) : t

    Partition 1 sélectionnée

Type de partition (taper L pour afficher tous les types) : c

    Type de partition « Linux » modifié en « W95 FAT32 (LBA) ».

Commande (m pour l'aide) : n

    Type de partition
       p   primaire (1 primaire, 0 étendue, 3 libre)
       e   étendue (conteneur pour partitions logiques)

Sélectionnez (p par défaut) : p
Numéro de partition (2-4, 2 par défaut) : 2

    Premier secteur (206848-15523839, 206848 par défaut) : 
    Dernier secteur, +secteurs ou +taille{K,M,G,T,P} (206848-15523839, 15523839 par défaut) : 

    Une nouvelle partition 2 de type « Linux » et de taille 7,3 GiB a été créée.

Commande (m pour l'aide) : w

~~~~{console}
La table de partitions a été altérée. Appel d'ioctl() pour relire la table de partitions. Synchronisation des disques.

Voila maintenant la carte est correctement partitionnée.

~~~~{console}
    fdisk -l

...

    Disque /dev/mmcblk0 : 7,4 GiB, 7948206080 octets, 15523840 secteurs
    Unités : secteur de 1 × 512 = 512 octets
    Taille de secteur (logique / physique) : 512 octets / 512 octets
    taille d'E/S (minimale / optimale) : 512 octets / 512 octets
    Type d'étiquette de disque : dos
    Identifiant de disque : 0xbfab1046

    Périphérique   Amorçage Début      Fin Secteurs Taille Id Type
    /dev/mmcblk0p1            2048   206847   204800   100M  c W95 FAT32 (LBA)
    /dev/mmcblk0p2          206848 15523839 15316992   7,3G 83 Linux

Les commandes suivantes s'effectuerons dans une console root

Formatage de la première partition en FAT

    mkfs.vfat /dev/mmcblk0p1

Création d'un répertoire

    mkdir boot

Montage de la partition

    mount /dev/mmcblk0p1 boot

Formatage de la deuxième partition en EXT4

    mkfs.ext4 /dev/mmcblk0p2

Création d'un répertoire

    mkdir root

Montage de la partition

    mount /dev/mmcblk0p2 root

Téléchargement du systeme d'exploitation

    wget http://archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz

On dé-tar et l'on pose cela sur root

    bsdtar -xpf ArchLinuxARM-rpi-2-latest.tar.gz -C root

On s'assure que toutes les données dans les tampons en mémoire sont inscrite sur le disque.

    sync

Déplacement des fichiers de démarrage sur la première partition:

    mv root/boot/* boot

Démontage des partitions

    umount boot root

Insérer la microSD dans le Raspberry Pi, connecter le câble Ethernet, et l'alimentation 5V.

A partir de là le Raspberry Pi boot, il vous faut trouver quelle IP a été donnée.

    sudo nmap -v -sn 192.168.1.0/24

et la réponse se trouve dans la liste

    Nmap scan report for 192.168.1.57
    Host is up (0.0069s latency).
    MAC Address: B8:27:EB:E9:BE:E8 (Raspberry Pi Foundation)

lancer une connexion ssh

    ssh root@192.168.1.57

le mot de passe est 'root'

Configuration de ArchARM

Mise à jour du système

    pacman -Syu

Dans mon cas la mise à jour a installé un nouveau kernel on reboot

    reboot

changement du mot de passe root

    passwd

fuseau horaire

    date
    Sat May  2 19:20:16 UTC 2015
    rm localtime
    ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime
    date
    Sat May  2 21:21:09 CEST 2015

Création d'un utilisateur kodi

    useradd -m -g users -G wheel,storage,audio,video -c kodi -s /bin/bash kodi

et on s'occupe aussi de son mot de passe

    passwd kodi

supprimer l'acces root via ssh

Bon dois je le faire ou pas, je suis sur mon reseau local, le firewall du routeur ne permet pas l'accès au port 22.

dans le fichier /etc/ssh/sshd_conf et remplacer

    #PermitRootLogin yes

par

    PermitRootLogin no

sudo

    pacman -S sudo

puis on configure l'accès

    export EDITOR=nano;
    visudo

on supprimera le commentaire

    ## Same thing without a password
    %wheel ALL=(ALL) NOPASSWD: ALL

quelques outils.

    pacman -S mc
    pacman -S gst-plugins-base gst-plugins-ugly gst-libav gst-plugins-good gst-plugins-bad ffmpeg
    pacman -S alsa-firmware alsa-utils alsa-oss 

Réseau

L'accès s'effectue en Wi-Fi sur mon réseau local. Je passe en IP fixe cela permet de gagner quelques secondes lors du boot.

Installation du Wifi

Pour gérer la connexion j'utilise netctl, j'ai besoin d'installer

    pacman -S dialog dhclient wpa_supplicant ifplugd ifenslave

création du fichier de configuration

    nano /etc/netctl/wifi-maison-static

puis on modifie comme suit

    Description='Connexion WiFi maison static'
    Interface=wlan0
    Connection=wireless

    Security=wpa
    ESSID='votre ESSID'
    Key='votre passphrase'

    IP=static
    Address='192.168.1.35/24'
    Gateway='192.168.1.1'
    DNS=('192.168.1.1')

    # Uncomment this if your ssid is hidden
    #Hidden=yes

On test la connexion

    netctl start wifi-maison-static

s'il n'y a pas de retour d'erreur, pour le démarrage au boot

    netctl enable wifi-maison-static

Installation de Kodi

    pacman -S kodi-rbp
    pacman -S polkit udisk upower lsb-release

Création du fichier /etc/systemd/system/xbmc.service qui va nous permettre de démarrer kodi lors du boot.

    [Unit]
    Description = Starts an instance of KODI
    After = remote-fs.target

    [Service]
    User = kodi
    Group = kodi
    Type = simple
    ExecStart = /usr/bin/kodi-standalone -l /run/lirc/lircd
    Restart = on-failure

    [Install]
    WantedBy = multi-user.target

puis

    systemctl enable kodi

Il ne reste plus qu'a paramétrer kodi pour l'accès au partage réseau, et modifier les preferences de fonctionnement.

Pilotage de kodi

un clavier

Le petit clavier est reconnu sans problème

    dmesg 

me donne

    [  643.719669] usb 1-1.3: new low-speed USB device number    6 using dwc_otg
    [  643.850496] usb 1-1.3: New USB device found, idVendor=0c40, idProduct=8000
    [  643.857578] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    [  643.868503] usb 1-1.3: Product: 2.4GHz receiver
    [  643.874965] usb 1-1.3: Manufacturer: ELMCU
    [  643.902874] input: ELMCU 2.4GHz receiver as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/0003:0C40:8000.0005/input/input4
    [  643.918396] hid-generic 0003:0C40:8000.0005: input,hidraw0: USB HID v1.11 Keyboard [ELMCU 2.4GHz receiver] on usb-bcm2708_usb-1.3/input0
    [  643.960169] input: ELMCU 2.4GHz receiver as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.1/0003:0C40:8000.0006/input/input5
    [  643.975794] hid-generic 0003:0C40:8000.0006: input,hidraw1: USB HID v1.11 Mouse [ELMCU 2.4GHz receiver] on usb-bcm2708_usb-1.3/input1

une partie des touches comme vol+, pause, sont bien reconnues le clavier est en qwerty

avec une tablette ou smartphone Android

Il existe deux applications pour piloter Kodi. Les deux sont disponibles dans le dépôt f-droid.org.

Tagged , , , ,

CNC

Présentation du projet

Création d'une CNC (computer numerical control) ou en français "commande numérique par calculateur".

Le but étant d'apprendre le fonctionnement de ce type de machine, et sa programmation.

Pré-requis

De la bonne volonté, de l’assiduité et de la persévérance pour porter ce projet.

matériaux

  • Achat de la structure en aluminium.
  • Récupération de moteurs sur une RepRap donnée par l'ISEN.
  • MDF pour le martyr.

logiciels

Réalisation du projet

Répartition des tâches

  • Démontage de la RepRap et récupération des pièces -> Fait (Phil)
  • Achat partie mécanique -> Fait (Phil)
  • Montage -> les bonnes volontés (en cours 22/12/2014)

Avancement

  • 10/2014 Commande du matériel chez Inventable.com
    Fait et reçu, et merci les frais de douane.

  • 22/12/2014 (Phil - Hervé)

    • Inventaire des pièces
    • Assemblage des galets de guidage.
    • Montage des flasques de support des moteurs.
    • Inspection des moteurs récupérés. 3 sur 4 présentent des problèmes de filetage.

alt text alt text

  • 23/12/2014 (Phil - Thomas)
    • Montage de l'axe Z.
    • Réparation des moteurs ( utilisation de tige filetée merci Thomas) on testera les moteurs à la reprise en janvier.

alt text

  • 06/01/2015 (Phil)

    • Achat des piéces electroniques principalement sur Ebay.
    • Carte compatible GRBL, des steppers (avec radiateur), un Arduino.
  • 17/01/2015 (Romain - Hervé - Phil)

    • Journée de taraudage des makerslides
    • montage de l'axe Z (montage moteur, assemblage ensemble flasques)
    • montage de l'axe X (montage moteur, assemblage makerslide / flasques)
    • montage du fond

alt text

alt text

  • 24/01/2015 (Romain - Hervé - Phil)
    • Fin de montage du châssis
    • Reprise de réglage sur les moteurs
    • Installation des courroies
    • montages des radiateurs sur les steppers
    • Chargement du firmware GRBL.

Et la bienvenue à Manon.

alt text alt text

Liens

inventable shapeoko2

Tagged ,

Serveur Toulonux - goaccess

Synopsis

Cela fait un moment que je souhaite ajouter une petite page de stats du site touloux.org.

Actions

Je ne souhaitais pas une grosse usine à gaz et alors que j'arpentais le net avec ma souris de pèlerin, je suis tombé sur goaccess.
Pas de base de données à prévoir, juste un exécutable et une simple page HTML en rapport.
Bon là quand même, Debian c'est stable mais la version dans le dépôt est la 0.5 qui date de .... juin 2012.

Installation

goaccess

La version dans les dépôts Debian est très vieille 0.5 et date de 2012.

    apt-get install goaccess

si vous souhaitez seulement la version Debian.

J'ai installé le dépôt fourni par goaccess

    echo "deb http://deb.goaccess.io $(lsb_release -cs) main" | tee -a /etc/apt/sources.list 
    wget -O - http://deb.goaccess.io/gnugpg.key | apt-key add - 
    apt-get update
    apt-get install goaccess

j'ai donc maintenant la version 0.8.3 :-)

Installation de GeoIP

Téléchargement de la base

    wget -N http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

on décompresse le fichier

    gunzip GeoLiteCity.dat.gz

création du répertoire /usr/local/share/GeoIP/

    mkdir -p /usr/local/share/GeoIP

Copier le fichier

    cp GeoLiteCity.dat /usr/local/share/GeoIP/

Création des fichiers configuration pour chaque site

création d'un répertoire pour centraliser les fichiers de configuration

    mkdir -p /etc/goaccess

je vais me baser sur le fichier /etc/goaccess.conf que je copie dans le répertoire /etc/goaccess

    cp /etc/goaccess.conf /etc/goaccess/

puis ensuite je vais éditer ce fichier avec nano

    nano /etc/goaccess/goaccess.conf

et le sauvegarder sous le nom de www.toulonux.org.conf par exemple.

Il faut y définir :

  • le format de la date
  • le format du fichier log dans notre cas NGinx,
  • le chemin d’accès à la base GeoIP,
  • mettre le parametre _--no-progress true___ pour éviter d'avoir un mel de cron lors de l’exécution de __goaccess.

La ligne de commande pour avoir une sortie html devient alors :

    goaccess --config-file=/etc/goaccess/www.toulonux.org.conf > /home/philippe/public_html/test.html

Création des taches

Je rajoute une tache cron, utiliser la commande suivante pour éditer

    crontab -e  

et ajouter la ligne

    2 0 * * * goaccess --config-file=/etc/goaccess/www.toulonux.org.conf > /home/philippe/public_html/site.html

tous les jours à 00h02 éxecution de goaccess avec le fichier de conf avec création d'une fichier vers /home/philippe/public_html/

Liens

Tagged , ,