Raspberry, Arduino e DVmega by IZ5YBI

di | 02/03/2015

In questo post voglio spiegare come leggere i dati seriali di Arduino da Raspberry e inviarli per mail tramite un comando remoto alla DVmega con il software di Jonathan. Capita che il nostro hotspot sia collegato ad una batteria che lo alimenta magari usandolo come ripetitore o dove non si ha la possibilità di collegarlo alla rete domestica, con questo esempio andremo a leggere il voltaggio della batteria con Arduino e ci faremo mandare un email da raspberry solo premendo il microfono della nostra radio…Questo è un esempio, le applicazioni sono infinite, l’unico limite è la fantasia…

Partiamo con installare IDE di Arduino:

sudo apt-get install arduino

Installiamo il modulo per leggere i dati seriali di Arduino:

sudo apt-get install python-serial

Adesso possiamo connettere Arduino al nostro Raspberry e andiamo a scrivere il nostro sketch per leggere il livello della batteria.

Apriamo IDE di arduino, lo troviamo sotto Eletronics e scriviamo il programma

In questo caso ho collegato una batteria da 12v e ho settato sullo sketch il voltaggio massimo della batteria a 13.33v questo valore va regolato di poco più o meno per rendere la lettura del sensore uguale a quella del tester o multimetro 🙂

ATTENZIONE: la porta analogica di arduino legge valori di tensione da 0 a 5 volt quindi bisogna usare un partitore di tensione. In questo caso ho usato una resistenza da R1 77kΩ e una da R2 46kΩ L’importante è tenere conto del voltaggio massimo della batteria.

OK fatto questo andiamo a scrivere un programmino che legga i dati della porta seriale, bisogna sapere la porta seriale che usa arduino per comunicare con raspberry, nel mio caso è /dev/ttyACM0 , la troviamo scritta in basso a destra sull’IDE di arduino.

Apriamo Leafpad:

import serial
ser = serial.Serial(‘/dev/ttyACM0’,9600)
for count in range(1, 5):
message = ser.readline()
message = ser.readline()
print message

salviamolo su desktop col nome serialdata.py

(NdR il suffisso “py” sta per Python, linguaggio presente sul raspberry di default)

A questo punto bisogna configurare raspberry per mandare le mail, vi rimando al post di ik5xmk intitolato “Il nostro RasPi ci avvisa se il software dstarrepeater non è operativo” con un dominio @gmail.com

Ora bisogna far si che raspberry legga i dati seriali e le invii al nostro indirizzo di posta, scrivendo questo altro programmino sempre con Leafpad

#!/bin/bash
cd /home/pi/Desktop
python serialdata.py | mail -s “livello batteria” tuamail@tuoindirizzo.com

salvatelo sul desktop come levelbat.sh

(NdR abilitare i permessi di esecuzione + x al file sopraindicato)

Bene ora apriamo D-Star Config, andiamo su control1 e abilitiamolo, su RPT1 scriviamo RPTRCTDL e su RPT2 il callsign del nodo con G rispettando gli 8 spazi

Poi andate su control2 e inserite su un comand libero LEVELBAT, e accanto il comando che va a leggere il nostro ultimo programmino

sudo bash /home/pi/Desktop/levelbat.sh

Salvate e riavviate d-star repeater e ircddbgateway. Adesso inviamo il comando dalla nostra radio, per fare questo bisogna modificare il campo UR e RPT1 che andranno messi così:

UR:LEVELBAT
RPT1:RPTRCTDL
RPT2:callsign del nodo in gateway

Il gioco è fatto, premete il microfono e dopo qualche secondo dovrebbe arrivare l’email. Saluti e buone prove!!!!
Federico IZ5YBI