Differenze tra le versioni di "Gruppo Meteo/ToDo"
(67 versioni intermedie di 2 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
= Cose da Fare = | = 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 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ==== rmap per | + | * activate rmap site over apache: |
− | + | ||
− | + | add rmap.conf in /etc/httpd/conf.d | |
− | + | ||
− | + | Alias /media /var/www/html/media | |
− | http:// | + | 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 | ||
+ | <li><a href="http://graphite.rmapv.rmap.cc/dashboard/#rmap default">Dashboard di esempio</a></li> | ||
+ | |||
+ | |||
+ | === 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: | ||
+ | <nowiki> | ||
+ | <li><a href="http://base:5925">punti stazione su mappa e grafici</a></li> | ||
+ | </nowiki> | ||
+ | |||
+ | <nowiki> | ||
+ | <li><a href="http://rmapv.bisognodipace.org:5925">punti stazione su mappa e grafici</a></li> | ||
+ | </nowiki> | ||
+ | |||
+ | # 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 ==== | ==== Trasporto RF24 su raspberry ==== | ||
Riga 66: | Riga 260: | ||
https://github.com/jpbarraca/pynrf24 | https://github.com/jpbarraca/pynrf24 | ||
http://www.jonathongrigg.com/post/61252428623/python-rf24-library | 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 |
Versione attuale delle 14:09, 15 ott 2015
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
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