Visualizzazione e trasmissione della temperatura su ripetitore

di | 02/03/2015

La procedura relativa all’invio in frequenza del messaggio della temperatura richiede sia installata nel sistema, oltre al web server apache e al php (anche nella versione cgi con il comando sudo apt-get install php5-cgi libapache2-mod-php5) anche la libreria CURL:

sudo apt-get install curl libcurl3 libcurl3-dev php5-curl

Controllare che nel file php.ini presente nel vs. sistema linux sia decommentata la riga

;extension=php_curl.dll

togliendo quindi il “;”

Potete facilmente verificare che la libreria curl sia presente nel sistema , basta creare un file tipo info.php (sudo touch info.php) all’interno di /var/www editarlo (sudo nano info.php) ed inserire al suo interno queste istruzioni:

<?php
echo phpinfo();
?>

Adesso, se digitate
http://xx.xx.xx.xx/info.php vedrete una pagina riassuntiva le caratteristiche del php installato, e nella relativa sezione, se presente, la libreria curl (ricordo che al posto di xx va messo l’ip del raspberry).

La pagina che ci interessa si chiama cattura.php e va messa sempre sotto /var/www

L’obiettivo è “catturare” dal sito http://www.cfr.toscana.it/ le informazioni che ci interessano e una volta estrapolate inviarle al programma “texttransmit” che si occuperà di inviarle lato rf.

La pagina è abbastanza commentata  nelle varie linee del codice, i punti ove intervenire sono:

$ch = curl_init(“http://www.cfr.toscana.it/”);

ovvero l’indirizzo web ove andare a prendere le informazioni, specificare dove andare a posizionarsi per i dati che ci interessano:

$ricerca = “Firenze”;

ed infine adattare l’output al proprio sistema radio:

$comando = “texttransmit ir5ubo_b –text ‘”. $msg . “‘”;

Il tutto è stato pensato per trovare informazioni del tipo (sempre da cfr.toscana.it)

Firenze 28.2 °C – 1.3 m/s da N 40 %

dove andremo a prendere solo il nome della città ed il valore della temperatura, ovviamente la procedura può essere adattata a pagine diverse, con formati diversi, in tal caso occorre agire nel codice per posizionarsi e leggere solo ciò che ci interessa.

Infine, inserire nel cron (sudo crontab –e) la periodicità con la quale vogliamo eseguire le letture (ed inviarle in radio), che nel ns. caso è stato messo ogni 15 minuti:

*/15 * * * * /home/pi/temp_fi.sh >/dev/null 2>&1

Per praticità è stato creato un file temp_fi.sh (con i diritti di esecuzione, sudo chmod 777 temp_fi.sh) che viene eseguito appunto ogni 15 minuti, e che si occupa di lanciare da riga di comando la pagina php in esame:

#!/bin/sh
sudo /usr/bin/php /var/www/cattura.php

ik5xmk@gmail.com

temperatura_dstar