Gruppo Meteo/ToDo

Da raspibo.
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Cose da Fare

Modifiche all'immagine disco

immagine del 20141215

  • modificare:
NM_CONTROLLED=no

in

/etc/sysconfig/network-scripts/ifcfg-eth0

immagine del 20141031

  • ricreare la dashboard di default di graphite su base
  • commentare rmapweb in /etc/monit.d/rmap
  • modificare virtual host

add

graphite.base

in /etc/hosts add

ServerAlias graphite.base
     WSGIDaemonProcess graphite.base user=rmap group=rmap processes=2 threads=10
     WSGIProcessGroup graphite.base

in /etc/httpd/conf.d/graphite-web.conf


  • activate rmap site over apache:

add rmap.conf in /etc/httpd/conf.d

Alias /media /var/www/html/media
Alias /download /var/www/html/download
Alias /repo /var/www/html/repo
Alias /showroom /var/www/html/showroom
Alias /arkiweb  /var/www/html/arkiweb

Alias /static/admin /usr/lib/python2.7/site-packages/django/contrib/admin/static/admin
<Directory "/usr/lib/python2.7/site-packages/django/contrib/admin/static/admin">
	   Require all granted
</Directory>

Alias /static   /usr/share/rmap/static
<Directory /usr/share/rmap/static>
	   Require all granted
</Directory>

WSGIScriptAlias / /usr/bin/rmap.wsgi
#WSGIImportScript /usr/bin/rmap.wsgi process-group=%{GLOBAL} application-group=%{GLOBAL}
#WSGIPythonPath /path/to/mysite.com

WSGIDaemonProcess rmap user=rmap group=rmap processes=1 threads=10
WSGIProcessGroup rmap
WSGISocketPrefix /run/rmap/rmapwsgi

#WSGIDaemonProcess rmap processes=5 threads=5
#WSGIDaemonProcess rmap
#WSGIProcessGroup rmap

<Directory /usr/bin>
<Files rmap.wsgi>
Require all granted
</Files>
</Directory>

<Location /auth>
   Order Deny,Allow
   Deny from all
   Allow from 127.0.0.1
</Location>

create the file /etc/tmpfiles.d/rmap.conf with inside:

d /run/rmap   710 root rmap

delete default index:

rm /var/www/html/index.html
  • create the following file:
/etc/polkit-1/rules.d/50-org.freedesktop.NetworkManager.rules
polkit.addRule(function(action, subject) {
 if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 && subject.isInGroup("rmap")) {
   return polkit.Result.YES;
 }
});

e verificare con

nmcli general permissions
  • aggiungere le righe
Defaults:rmap !requiretty
rmap ALL= NOPASSWD: /sbin/rabbitmqctl

al file /etc/sudoers.d/rmap per permettere l'esecuzione di rabbitmqctl

  • eliminare shovel rmap upload
  • da root:
service monit stop
yum upgrade --skip-broken -y

da utente rmap

rm /rmap/rmap/rmap.sqlite3
rmapctrl --syncdb
fornendo rmap rmap come user e password di amministrazione
reboot

ricreare il link al log:

ln -sf /rmap/log /var/log/rmap

modificare il menu principale in /var/www/html/index.html

  • <a href="http://graphite.rmapv.rmap.cc/dashboard/#rmap default">Dashboard di esempio</a>
  • immagine del 20140922

    in /etc/monit.d/rmap aggiungere:

     check process amqp2mqttd with pidfile /var/run/rmap/amqp2mqttd.lock
       start program = "/usr/bin/amqp2mqttd restart"
       stop program  = "/usr/bin/amqp2mqttd stop"
    

    in /etc/yum.repos.d/rmap.repo

     sostituire rmapv.bisognodipace.org con rmap.cc
    


    in /etc/rc.d/rc.local

    #!/bin/bash
    #needed for i2c ds1307 RTC
    modprobe rtc-ds1307
    sleep 3
    # iterate over every i2c bus as we're supporting Raspberry Pi rev. 1 and 2
    # (different I2C busses on GPIO header!)
    for bus in $(ls -d /sys/bus/i2c/devices/i2c-*);
     do
       echo ds1307 0x68 >> $bus/new_device;
       if [ -e /dev/rtc0 ];
       then
         echo "RTC found on bus `cat $bus/name`";
         break; # RTC found, bail out of the loop
       else
         echo 0x68 >> $bus/delete_device
       fi
    done
    hwclock -s
    

    poi:

    chmod +x /etc/rc.d/rc.local
    

    immagine precedente

    Con l'immagine downlodabile bisogna fare un po' di pulizia e aggiornare un po di roba quindi su raspberry:

    #aggiorniamo il repo svn
    ssh rmap@base
    cd svn/r-map-code/trunk
    svn up
    exit
    
    #facciamo pulizia delle cose installate senza pacchetto
    ssh root@base
    rm -r /var/www/html/borinud
    rm /usr/local/bin/*
    rm -r /usr/local/lib/python2.7/site-packages/borinud
    
    #editiamo:
    /var/www/html/index.html
    #e facciamo diventare cosi' queste due righe:
    

    <li><a href="http://base:5925">punti stazione su mappa e grafici</a></li>

    <li><a href="http://rmapv.bisognodipace.org:5925">punti stazione su mappa e grafici</a></li>

    # aggiungiamo il repo rmap
    cd /etc/yum.repos.d/
    wget http://rmapv.bisognodipace.org/repo/rmap/rmap.repo
    


    # e installiamo/aggiorniamo quello che c'è da aggiornare:
    yum clean all
    yum groupinstall -y rmap
    yum upgrade --skip-broken -y
    
    # combio privilegi a db graphite
    chown -R rmap:rmap /var/lib/graphite-web
    #poi si potrà entrare su graphite con user root password cambiami
    
    # ottimizzazione scritture carbon cache
    #modificare in
    /etc/carbon/carbon.conf
    MAX_UPDATES_PER_SECOND=5
    
    #modificare in
    /etc/carbon/storage-schemas.conf
    
    [carbon]
    pattern = ^carbon\.
    retentions = 60:7d
    
    [rmap_10sec_for_10day]
    #pattern = .*
    pattern = ^rmap\.
    retentions = 10s:10d
    
    [report_60sec_for_60day]
    #pattern = .*
    pattern = ^report\.
    retentions = 60s:30d
    
    [default_1min_13months]
    pattern = .*
    retentions = 1m:395d
    


    #aggiornare il file repo di rmap
    cd /etc/yum.repos.d
    wget http://rmapv.bisognodipace.org/repo/rmap/rmap.repo -O rmap.repo
    
    #aggiorniamo
    yum clean all
    yum upgrade --skip-broken
    
    # ripuliamo tutti ifile in /rmap
    


    Trasporto RF24 su raspberry

    Questa la proposta di lavoro per uno studente: obiettivo: far comunicare un raspberry e un arduino tramite due moduli RF nRF24 a 2 GHz

    La libreria arduino è questa (a livello network) https://github.com/pat1/RF24Network

    Bisognerebbe selezionare/compilare/testare la libreria e scrivere un howto/report riferimento principale questo: https://github.com/TMRh20/RF24Network/tree/master/RPi

    In aggiunta si potrebbe verificare anche l'utilizzo delle API python e l'inserimento del "trasporto" RF nel modulo python http://sourceforge.net/p/r-map/code/HEAD/tree/trunk/python/jsonrpc.py per eseguire json-rpc http://en.wikipedia.org/wiki/JSON-RPC da raspberry a arduino su trasporto RF

    L'integrazione con R-MAP avviene in quanto il firmware rmap su arduino già risponde a json-rpc con alcune procedure tra cui il rilevamento di sensori. Dall'altra parte utilizza raspberry sia per interrogare sensori che pubblicarli sul broker MQTT dove vengono raccolti tutti i dati della sensoristica. Il lavoro dello studente permetterebbe di eliminare un modulo (arduino mega2560) di traduzione da trasporto ethernet a trasporto RF

    altri link: https://github.com/jonathongrigg/rf24 https://github.com/royi1000/RF24-rpi-py https://github.com/jpbarraca/pynrf24 http://www.jonathongrigg.com/post/61252428623/python-rf24-library

    OBSOLETA TODO LIST prototipo hardware

    • Alimentare scheda ENC28J60 e modulo RTC a 5V
    • Aggiungere una seconda fila di pin per il modulo rtc per evitare che si pieghi
    • Alimentare bus I2C a 3.3 V (http://www.element14.com/community/thread/19665/l/is-level-shifting-really-needed-for-i2c)
    • Aggiungere un condensatore da 100nF per il modulo radio e verificare se possibile aggiungerne uno da 470 uF il piu' vicino possibile
    • Proteggere i sensori con un diodo ESD http://www.acronet.cc/item/esd-suppressor-5-5v-sot-363-smd/ - valutare anche questi per le dimansioni del case http://it.farnell.com/texas-instruments/tpd3e001drlr/ic-esd-protection-array-3ch-5sot/dp/1603422
    • Spostare il modulo RTC al di fuori dell'ingombro della scheda di rete
    • Aggiungere un jumper o pulsante per portare a massa il pin 8 e forzare la modalita' configurazione, verificare se vale la pena di poter collegare pulsanti saldati ad una carcassa
    • Eliminare il piu' possibile le saldature sulla faccia superiore della scheda
    • Verificare se tutti i moduli possono essere saldati direttamente sulla scheda senza connettori aggiuntivi
    • Valutare se portare l'ingresso dell'alimentazione a fianco del modulo enc e/o saldare sui pin del connettore rj45 i fili da portare al dc/dc
    • Se possibile prevedere fori per il fissaggio del modulo display
    • Aggiungere alcuni pin in uscita per evetuali utilizzatori
    • Predisporre piazzole per convertitore DC/DC di altro fornitore/formato
    • Agiungere alimentazione 5V per modulo rele' e display