Ciao a tutti ragazzi!
un po' di tempo fa vi avevo chiesto se esistevano e quali fossero dei metodi per far comunicare due ''prodotti generici'' in Wireless, senza fili.
La mia intenzione era di stabilire un collegamento tra il mio iPhone e il computer.
Bene, proprio oggi,ci sono riuscito!
Ecco il video :
i passaggi che ho fatto sono stati, sostanzialmente:
-Scrivermi un server in Python. (non conosco python, ma in un modo o nell'altro ci sono riuscito :) )
(quello che io chiamo server è il file chatserver.py che nel video apro dal terminale, a scanso di equivoci, nel caso io non usi proprio la terminologia corretta).
Il server lo faccio lavorare sulla porta 80. Ho letto che nei Macbook è la porta predisposta a questo tipo di applicazioni, ed infatti funziona tutto correttamente
-mi sono scrittol'app da caricare sull'iPhone, che si connette al server (utilizzando l'indirizzo ip del mio computer e il numero della porta), ed è in grado di inviare,ricevere dati al/dal server.
Perfetto, funziona tutto come volevo, la connessione si stabilisce correttamente e riesco a scambiare comandi tra il cellulare e il computer, che ora non fanno ''niente'' ma che potrebbero eventualmente andare a gestire altre cose (luci ecc ecc).
Seppur in via abbastanza elementare e procedendo un po' a tentativi, non conoscendo bene tutte le teorie della comunicazione, protocollo tcp ecc ecc, sono riuscito a fare quello che volevo.
Ora però, questo era solo il primo passo.
Il mio scopo è infatti quello di costruirmi una scheda elettronica che faccia esattamente lo stesso che fa il computer, RICEVERE I COMANDI dal server.
In questo avrei davvero bisogno del vostro aiuto!
Come si potrebbe fare una cosa del genere ?
Innanzitutto, non so dove dovrebbe essere caricato il server. Ok, inizialmente potrei farlo partire da computer, però in un secondo momento vorrei caricarlo su un qualcosa che rimanga sempre attivo, mentre l computer lo spengo, disattivo le connessioni eccetere eccetera..
La schedina dovrebbe quindi essere in grado di :
-connettersi al server, stabilendo una connessione senza errori
-ricevere dati
-comportarsi di conseguenza
se per gli ultimi due punti non dovrei avere particolari difficoltà(forse qualcuna nel ricevere i dati), quello che più mi preme e COME realizzare una schedina che si connetta al mio server.
Vi ringrazio anticipatamente per le risposte e per l'aiuto sempre indispensabile che mi date!
PS: Non tralasciate le cose banali convinti che io le sappia, perché non è così ;) soprattutto su questi argomenti che mi piacciono si, ma mi ci sto avvicinando solo ora !
RaffoTech.
Alias Pierluigi ;)
Domotic App - Scheda elettronica
Moderatori:
carloc,
g.schgor,
BrunoValente,
IsidoroKZ
0
voti
Il sistema operativo ha delle porte predefinite, sono se non erro fino a 1024 il numero di porte riservate. La numero 80 è quella per la connessione web, ma tu puoi creare un software specifico che lavori con una porta specifica, per esempio la numero 5000.
Suppongo che la tua scheda debba incorporare un modulo RF, e con un micro gestire il trattamento di segnali e comunicazione seriale in ricezione.
Un progetto molto ambizioso ;)
Suppongo che la tua scheda debba incorporare un modulo RF, e con un micro gestire il trattamento di segnali e comunicazione seriale in ricezione.
Un progetto molto ambizioso ;)
0
voti
Sicuramente un po' ambizioso si credo;)
ma ci riuscirò!
Per ora non essendo esperto in python e linguaggi server preferisco restare sull'80, che è la predefinita!
Già che ci sono,una curiosità : quando scrivo il file .py e lo avvio da terminale con il comando sudo python il server si avvia.
come faccio a bloccarlo però? chiudendo il terminale non si chiude, infatti ripetendo il comando sudo mi dice ''address already in use'' riferendosi alla porta 80 credo.
Devo sempre riavviare.
Mi sarebbe utile soprattuto perché ora come ora se devo modificare il file del server e provarlo devo sempre riavviare
ma ci riuscirò!
Per ora non essendo esperto in python e linguaggi server preferisco restare sull'80, che è la predefinita!
Già che ci sono,una curiosità : quando scrivo il file .py e lo avvio da terminale con il comando sudo python il server si avvia.
come faccio a bloccarlo però? chiudendo il terminale non si chiude, infatti ripetendo il comando sudo mi dice ''address already in use'' riferendosi alla porta 80 credo.
Devo sempre riavviare.
Mi sarebbe utile soprattuto perché ora come ora se devo modificare il file del server e provarlo devo sempre riavviare
Visita il mio sito : http://www.raffotech.altervista.org
0
voti
Ti consiglio di non usare la numero 80, per i motivi che ti ho scritto prima ed anche per ragioni di sicurezza.
Per terminare un processo usa kill o killall. Per il PID usa top o ps.
Linux non serve riniziarlo nemmeno con una fork bomb :)
Per terminare un processo usa kill o killall. Per il PID usa top o ps.
Linux non serve riniziarlo nemmeno con una fork bomb :)
0
voti
gohan ha scritto:Il sistema operativo ha delle porte predefinite, sono se non erro fino a 1024 il numero di porte riservate. La numero 80 è quella per la connessione web, ma tu puoi creare un software specifico che lavori con una porta specifica, per esempio la numero 5000.
Ma nn mi hai detto nessun motivo prima ;)
Si anch'io avevo pensato a problemi di sicurezza..però in fin dei conti è per prova, e se utilizzare l' 80 rende il tutto un po' più semplice...della sicurezza chi se ne frega :)
Comunque, anche solo a titolo informativo, che problemi potrebbero esserci?
con nessuna delle istruzioni funziona, rimane sempre dentro il server, non ne vuol sapere di uscire!
Tra l'atro ho notato una cosa ''curiosa'' : nel video avevo tolto questa funzione per non avere troppi output, ma prima stampavo ad ogni connessione al server una lista dei client connessi, ed a volte vedevo ''qualcuno o qualcosa'' che era connesso , dopodichè usciva...dopo un po' lo ritrovavo e poi usciva di nuovo.
Boh..cosa potrebbe essere ? non che mi dia fastidio o problemi, però così, per capire:)
Visita il mio sito : http://www.raffotech.altervista.org
0
voti
Succede che ogni programma di rete usa una porta, e nel tuo caso la potrebbe usare il browser web per esempio. Usare un'altra porta è tanto semplice come impostarla nel server e nel client, poi il mio è un consiglio..
kill non è una istruzione, è un programma per uccidere i processi in esecuzione dalla shell. Vedi man kill.
kill non è una istruzione, è un programma per uccidere i processi in esecuzione dalla shell. Vedi man kill.
0
voti
Ah ok, quindi il fatto che l'80 sia la porta ''standard'' per questo tipo di connessioni non mi dà nessun vantaggio nell'utilizzo ?
Basta cambiare la sola porta nel server e nel client ?
Se è così allora stasera provo a vedere se va.
Se riuscissi a risolvere anche questo problema del terminale sarebbe ottimo, almeno faccio le prove molto piu velocemente senza dover riavviare !
provo a scrivere man kill nella shell e vedre che succede.
Comunque mi chiedevo, potrebb essere che la porta 80 non sia ''bloccata'' dai firewall mentre altre porte potrebbero esserlo?
In caso che porta mi consiglieresti di utilizzare ?
Basta cambiare la sola porta nel server e nel client ?
Se è così allora stasera provo a vedere se va.
Se riuscissi a risolvere anche questo problema del terminale sarebbe ottimo, almeno faccio le prove molto piu velocemente senza dover riavviare !
provo a scrivere man kill nella shell e vedre che succede.
Comunque mi chiedevo, potrebb essere che la porta 80 non sia ''bloccata'' dai firewall mentre altre porte potrebbero esserlo?
In caso che porta mi consiglieresti di utilizzare ?
Visita il mio sito : http://www.raffotech.altervista.org
0
voti
Se la porta 80 fosse chiusa non potresti scrivere qui. La porta la puoi impostare nel server e nel client. Se non l'hai chiusa con iptables, la usi tranquillamente. Cerca all'interno del file system, con find, il file di elenco delle porte in uso, se non ricordo male si chiama ports. Per la spiegazione sulla tua curiosità, puoi dare una occhiata con netstat, e con nmap.. Vedi sempre il manuale per le istruzioni di uso.
0
voti
Appena torno dagli allenamenti , cerco un po' e ti dico!
Per terminare il prcesso di python allora come faccio ? sto impazzendo
, nn riesco
Per terminare il prcesso di python allora come faccio ? sto impazzendo
Visita il mio sito : http://www.raffotech.altervista.org
0
voti
Esegui top.
Dall' output risali al PID, ed il processo lo puoi uccidere tanto durante l'esecuzione di top schiacciando k e digitando il PID, e poi enter.
Sennò sudo kill <PID>
Se vuoi vedere l'albero dei processi usa pstree (se ricordo bene il nome) eventualmente aiutati con il TAB.
Che esperienza hai con Linux?
EDIT: hai pensato di gestire la scheda tramite il PC aiutandoti con la comunicazione PC e telefono cosi come stai facendo? Se mi è sfuggito perdonami. In ogni caso se ti interessa scrivere il codice in C sia per la comunicazione socket e comunicazione seriale dimmelo..
EDIT2: Rileggendo vedo che usi un sistema operativo Apple,
. Se ti interessa posso cercare qualche link utile..
Dall' output risali al PID, ed il processo lo puoi uccidere tanto durante l'esecuzione di top schiacciando k e digitando il PID, e poi enter.
Sennò sudo kill <PID>
Se vuoi vedere l'albero dei processi usa pstree (se ricordo bene il nome) eventualmente aiutati con il TAB.
Che esperienza hai con Linux?
EDIT: hai pensato di gestire la scheda tramite il PC aiutandoti con la comunicazione PC e telefono cosi come stai facendo? Se mi è sfuggito perdonami. In ogni caso se ti interessa scrivere il codice in C sia per la comunicazione socket e comunicazione seriale dimmelo..
EDIT2: Rileggendo vedo che usi un sistema operativo Apple,
. Se ti interessa posso cercare qualche link utile..Chi c’è in linea
Visitano il forum: Nessuno e 50 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)

