Se sei già registrato           oppure    

Orario: 02/05/2024 08:21:10  

 

Energia Alternativa ed Energia Fai Da Te > PPTEA

VISUALIZZA L'ALBUM

Pagine: (4)   1   2   [3]   4    (Ultimo Msg)


Bluetooth per PPTEA, modulo HC-05
FinePagina

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1886

Stato:



Inviato il: 28/03/2014 22:47:24

Piccola modifica al codice, lo Z800 mette uno spazio in più nella segnalazione di SMS ricevuto +CMTI: "SM", 5 anzichè +CMTI: "SM",5
quindi non riuscivo a recuperare il messaggio perchè "mancavo" la cifra dell'indice. Adesso prendo i 5 caratteri della stringa a partire dal carattere 11, e con questo modello funziona. Elettro riesci a fare prove col tuo telefono?



PRAGMA NO_NUM_LINE
PRAGMA EXTENDED2K_EEPROM
PRAGMA ADVANCED
PWMIO1=&H0
CONSTANT HCWT=500
CONSTANT PHWT=750
DEFINE HC_POW=OUTBIT(14)
DEFINE HC_MODE=OUTBIT(15)
SETIO=&H20000
SERIALSPEED=SPEED_9600

:INIT_SEQ
CALL INIT_HC05
CALL INIT_PHONE
:MAIN_LOOP
PHONE_EVENT=""
TS=TIMER
:OTHER_DUTIES
IF (TIMER-TS)>5 THEN CALL PHONE_EVENT
IF COMMS_COUNT>&HA0 THEN CALL COMMRST
IF PHONE_EVENT="" THEN :OTHER_DUTIES ELSE :CHECK_EVT
:CHECK_EVT
FOR PHEVT_POS=1 TO LEN(PHONE_EVENT)-4
EVENT=MID(PHONE_EVENT,PHEVT_POS,4)
IF EVENT<>"CLIP" THEN :SMS
NUMBR=MID(PHONE_EVENT,PHEVT_POS+10,10)
PRINT "RINGS FROM NR:" & NUMBR
PHEVT_POS=&HFF
:SMS
IF EVENT<>"CMTI" THEN :UNKNOWN
SMS_INDEX=MID(PHONE_EVENT,PHEVT_POS+11,5)
CALL COMM_PHONE("AT+CMGR=" & SMS_INDEX,PHWT)
SMS_FROM=MID(COMM_PHONE,41,10)
SMS_TEXT=MID(COMM_PHONE,71,255)
CALL COMM_PHONE("AT+CMGD=" & SMS_INDEX,PHWT)
PRINT "SMS FROM NR:" & SMS_FROM & " TEXT: "& SMS_TEXT
PHEVT_POS=&HFF
:UNKNOWN
NEXT PHEVT_POS
GOTO :MAIN_LOOP

SUB POWERUP_HC05
HC_POW=FALSE
HC_MODE=FALSE
WAITMS 1000
HC_POW=TRUE
WAITMS 2000
HC_MODE=TRUE
WAITMS 1000
SUBEND

SUB INIT_HC05
:HC05INIT_START
CALL POWERUP_HC05
CALL COMM_HC05("AT","OK","*",HCWT)
IF COMM_HC05<>"OK" THEN :HC05INIT_START
CALL COMM_HC05("AT+NAME=PPTEA_BTSERIAL","OK","",HCWT) 'NOME SCHEDA
CALL COMM_HC05("AT+ROLE=1","OK","",HCWT)
CALL COMM_HC05("AT+PSWD=1234","OK","",HCWT) 'PIN ACCESSO
CALL COMM_HC05("AT+BIND=","OK","",HCWT)
CALL COMM_HC05("AT+ROLE=1","OK","",HCWT)
:RELINK
CALL COMM_HC05("AT+LINK=xxxx,yy,zzzzzz","OK","FAIL",10000) 'MAC ADDRESS TELEFONO
HC_MODE=FALSE
WAITMS 500
HC_MODE=TRUE
WAITMS 500
CALL COMM_HC05("AT+STATE?","+STATE:CONNECTED","*",HCWT)
IF COMM_HC05<>"+STATE:CONNECTED" THEN :HC05INIT_START
HC_MODE=FALSE
SUBEND


SUB COMM_HC05(TXSTR,RXSTROK,RXSTRNOK,WTIME)
:COMM_HC05_START
PRINT TXSTR
SERIALOUT=TXSTR & CR_LF
WAITMS WTIME
COMM_HC05=SERIALINPSTR
IF COMM_HC05="" THEN :COMM_HC05_START
PRINT COMM_HC05
IF RXSTROK="" THEN :NOK
FOR X=1 TO LEN(COMM_HC05)
IF MID(COMM_HC05,X,LEN(RXSTROK))= RXSTROK THEN :COMM_HC05_OK
NEXT X
:NOK
IF RXSTRNOK="" THEN :COMM_HC05_START
FOR X=1 TO LEN(COMM_HC05)
IF MID(COMM_HC05,X,LEN(RXSTRNOK))= RXSTRNOK THEN :COMM_HC05_NOK
NEXT X
GOTO :COMM_HC05_EXIT
:COMM_HC05_OK
COMM_HC05=RXSTROK
GOTO :COMM_HC05_EXIT
:COMM_HC05_NOK
COMM_HC05=RXSTRNOK
:COMM_HC05_EXIT
SUBEND

SUB COMM_PHONE(TXSTR,WTIME)
PRINT TXSTR
SERIALOUT=TXSTR & CR_LF
WAITMS WTIME*2
COMM_PHONE=SERIALINPSTR
SUBEND


SUB PHONE_EVENT
:WAIT_EVENT
RESET_TIMER
WAITMS 250
CH=SERIALINPSTR
IF LEN(CH)<2 THEN :WAIT_DONE
PHONE_EVENT=PHONE_EVENT & CH
GOTO :WAIT_EVENT
:WAIT_DONE
COMMS_COUNT++
PRINT COMMS_COUNT & "." & PHONE_EVENT
SUBEND

SUB INIT_PHONE
CALL COMM_HC05("ATE0","OK","",PHWT)
CALL COMM_HC05("AT+CMGF=0","OK","",PHWT)
CALL COMM_HC05("AT+CNMI=2,3","OK","",PHWT)
CALL COMM_HC05("AT+CLIP=1","OK","",PHWT)
SUBEND

SUB COMMRST
CALL PHONE_EVENT
PRINT "COMM RESET"
RESET_TIMER
SERIALCLOSE
COMMS_COUNT=0
SUBEND



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

ElettroshockNow

Avatar
GigaWatt


Gruppo:Utente
Messaggi:4656

Stato:



Inviato il: 29/03/2014 08:09:05

CITAZIONE (MarKoZaKKa, 28/03/2014 22:47:24 ) Discussione.php?211400&3#MSG31

Elettro riesci a fare prove col tuo telefono?

Ci stò mettendo tutta la buona volontà,ma di connettersi niente ....
Mi risponde FAIL sia sul Samsung che sul BlackBerry.

Io seguo questi passaggi: (in arancione le risposte dal modulo)

AT
OK
AT+CMODE=0
OK
AT+ROLE=1
OK
AT+INIT
OK
AT+INQ (mi risponde con i mac addr in zona)
+INQ:xxx:yy:zzzzzz,5A020C,7FFFF
OK

AT+BIND=xxxx,yy,zzzzzz
OK
AT+LINK=xxxx,yy,zzzzzz
FAIL
+INQ:xxx:yy:zzzzzz,5A020C,7FFFF
OK



Non capisco dove sbaglio !!!

Ciao

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1886

Stato:



Inviato il: 01/04/2014 09:59:15

... il telefonino vede la richiesta di connessione dell'hc05? dovrebbe chiederti il pin, quello che imposti con AT+PSWD e che di default è' 1234
Sei sicuro del macaddress del tuo cell? se hai un'adattatroe BT sul PC, linkati e controllalo...



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

ElettroshockNow

Avatar
GigaWatt


Gruppo:Utente
Messaggi:4656

Stato:



Inviato il: 01/04/2014 10:46:29

CITAZIONE (MarKoZaKKa, 01/04/2014 09:59:15 ) Discussione.php?211400&3#MSG33

... il telefonino vede la richiesta di connessione dell'hc05? dovrebbe chiederti il pin, quello che imposti con AT+PSWD e che di default è' 1234
Sei sicuro del macaddress del tuo cell? se hai un'adattatroe BT sul PC, linkati e controllalo...


Si il Mac è corretto e mi chiede il pin solo se stò in role=0.

Se invece mi trovo in role=1 mi risponde come nel listato che ho riportato un post più in alto.

Non vorrei che commetto errore con il pin di configurazione.

Io alimento il modulo ,poi porto in alto il livello del pin e da quel momento in poi colloquio con il modulo a 9600

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1886

Stato:



Inviato il: 01/04/2014 18:55:21

CITAZIONE (ElettroshockNow, 01/04/2014 16:27:04 ) Discussione.php?211400&3#MSG34


Si il Mac è corretto e mi chiede il pin solo se stò in role=0.
...
Io alimento il modulo ,poi porto in alto il livello del pin e da quel momento in poi colloquio con il modulo a 9600


L'uso del pin di config è ok; se usi role=0 e ti connetti, portandolo basso poi dovresti poter colloquiare con il terminale del cellulare, riportandolo alto invece tornia parlare con l'hc05... non conosco bene il protocollo BT, magari il tuo cell è un master e si connette solo con slave, ma non saprei, oppure è una impostazione di sicurezza del tuo cell (il mio samsung ha il "modo sicuro" tra le opzioni bt... ma non ci ho giocato...)



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

ElettroshockNow

Avatar
GigaWatt


Gruppo:Utente
Messaggi:4656

Stato:



Inviato il: 02/04/2014 00:36:34

Niente da fare ,non ne vuole sapere di creare un collegamento.
Credo che dipenda dal cell come hai suggerito,ma non ho niente di compatibile ..... o troppo nuovo o troppo vecchio .
Mi metto in ricerca ...

AT+RICERCA=1
OK

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1886

Stato:



Inviato il: 02/04/2014 10:00:39

CITAZIONE (ElettroshockNow, 02/04/2014 00:36:34 ) Discussione.php?211400&3#MSG39

Niente da fare ,non ne vuole sapere di creare un collegamento.

Neanche in role=0? appena posso smanetto e ti dico... che cell usi x i test?



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

ElettroshockNow

Avatar
GigaWatt


Gruppo:Utente
Messaggi:4656

Stato:



Inviato il: 02/04/2014 13:40:11

Nello prove ho usato tutti Samsung :
-Next
-S2
-S3

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1886

Stato:



Inviato il: 03/04/2014 15:03:48

E se provi a fare l'inverso? provare a far rilevare e collegare il cell all'hc05?



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

ElettroshockNow

Avatar
GigaWatt


Gruppo:Utente
Messaggi:4656

Stato:



Inviato il: 03/04/2014 15:08:26

Se avvio il terminal (tipo hyperterminal) dal cell,cerco hc-05 e mi connetto, lo scambio dati tra i due terminal funziona perfettamente.

Quello che non riesco a fare è parlare con il modem interno del cell , come hai fatto te.

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1886

Stato:



Inviato il: 03/04/2014 16:14:53

CITAZIONE (ElettroshockNow, 03/04/2014 15:08:26 ) Discussione.php?211400&3#MSG32


AT+INQ (mi risponde con i mac addr in zona)
+INQ:xxx:yy:zzzzzz,5A020C,7FFFF
OK

AT+BIND=xxxx,yy,zzzzzz
OK
AT+LINK=xxxx,yy,zzzzzz
FAIL
+INQ:xxx:yy:zzzzzz,5A020C,7FFFF
OK

Ciao



Hai provato ad evitare di fare AT+INQ, ed a fare AT+STATE prima di AT+LINK?
Ieri sera ero bollito e non ho fatto prove, vediamo stasera come sono messo...



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

ElettroshockNow

Avatar
GigaWatt


Gruppo:Utente
Messaggi:4656

Stato:



Inviato il: 03/04/2014 20:03:48

079193xxxxxxxxxx01000091001053CE379D5E0685DD6374191406D1CBA031BA0C6AA741E8701A640ED3E96F50BA0D0FEBF5697919042FCB41E4F2386D9687E565D0FD7E7795DD65F9391D66D3CB7277989EB6875D6FF919
Faccine/Smileys_0152.gif



Modificato da ElettroshockNow - 03/04/2014, 20:11:30
 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1886

Stato:



Inviato il: 03/04/2014 21:45:21

Faccine/Smileys_0095.gifFaccine/Smileys_0003.gif



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

ElettroshockNow

Avatar
GigaWatt


Gruppo:Utente
Messaggi:4656

Stato:



Inviato il: 03/04/2014 22:47:46

..... sei oltre

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1886

Stato:



Inviato il: 03/05/2014 08:18:58

Ultima versione del codice, ora è possibile inviare sms contenenti comandi, e solo dai numeri di telefono consentiti. Ora il pin di controllo dell'HC05 è il 13 (prima era il 15), i numeri di telefono (2) devono essere inseriti come costanti sia come chiamata che come sms, dato che vengono gestiti in maniere diverse. Per altri dettagli, chiedete. Ciao!


PRAGMA NO_NUM_LINE
PRAGMA EXTENDED2K_EEPROM
PRAGMA ADVANCED
CONSTANT SMSPHBK1="4319325476"
CONSTANT SMSPHBK2="4379563412"
CONSTANT CALLPHBK1="3491234567"
CONSTANT CALLPHBK2="3497654321"
CONSTANT COMMAND1="4F670C"'ON1
CONSTANT COMMAND2="4FA70C"'ON2
CONSTANT COMMAND3="4FE70C"'ON3
CONSTANT COMMAND4="4F270D"'ON4
CONSTANT COMMAND5="4FA33106"'OFF1
CONSTANT COMMAND6="4FA35106"'OFF2
CONSTANT COMMAND7="4FA37106"'OFF3
CONSTANT COMMAND8="4FA39106"'OFF4
CONSTANT COMMAND9="4FA331C86402"'OFFALL

CONSTANT HCWT=1
CONSTANT PHWT=1
CONSTANT HCTIMEOUT=15
CONSTANT CTIMEOUT=1

PWMIO1=&H0
DEFINE HC_POW=OUTBIT(14)
DEFINE HC_MODE=OUTBIT(13)
SETIO=&H20000
CADS=0
OUT=&H0000
SERIALSPEED=SPEED_9600

:INIT_SEQ
	CALL INIT_HC05("PPTEA_BTSERIAL","1234","xxxx,yy,zzzzzz")'password bluetooth e mac address telefono
	CALL INIT_PHONE
:MAIN_LOOP
	TSD=TIMER
:OTHER_DUTIES
	IF (TIMER-TSD)<2 THEN :OTHER_DUTIES
	CALL COMM("")
	COMMS_COUNT++
	IF (COMM="" AND COMMS_COUNT>50) THEN CALL COMMRST
	IF COMM<>"" THEN :CHECK_EVT ELSE :MAIN_LOOP
:CHECK_EVT
	IF INSTR("CLIP",COMM)=0 THEN :SMS
	IF (INSTR(CALLPHBK1,COMM)=0 AND INSTR(CALLPHBK2,COMM)=0) THEN :MAIN_LOOP
	OUTBIT(0)=TRUE
	WAITMS 500
	OUTBIT(0)=FALSE
	GOTO :MAIN_LOOP
:SMS
	SMS_INDEX=INSTR("CMTI",COMM)
	IF SMS_INDEX=0 THEN :MAIN_LOOP
	SMS_INDEX=MID(COMM,SMS_INDEX+11,5)
:READ_SMS
	CALL COMM_COND("AT+CMGR=" & SMS_INDEX,"","",PHWT)
	IF COMM_COND="" THEN :READ_SMS
	X=INSTR(SMSPHBK1,COMM_COND)+INSTR(SMSPHBK2,COMM_COND)
	IF  X=0 THEN :MAIN_LOOP
	SMS_TEXT=MID(COMM_COND,X+30,255)
	CALL COMM_COND("AT+CMGD=" & SMS_INDEX,"OK","",PHWT)		
	CALL COMMAND_ANALYZE
	GOTO :MAIN_LOOP

SUB POWERUP_HC05
	HC_POW=FALSE
	HC_MODE=FALSE
	WAITS 1
	HC_POW=TRUE
	WAITS 2
	HC_MODE=TRUE
	WAITS 1
SUBEND

SUB INIT_HC05(BTNAME,BTPWD,BTADR)
:HC05INIT_START
	CALL POWERUP_HC05
	CALL COMM_COND("AT","OK","",HCWT)
	IF COMM_COND="" THEN :HC05INIT_START
	CALL COMM_COND("AT+NAME="& BTNAME,"OK","",HCWT) 'NOME SCHEDA
	IF COMM_COND="" THEN :HC05INIT_START
	CALL COMM_COND("AT+PSWD=" & BTPWD,"OK","",HCWT) 'PIN ACCESSO
	IF COMM_COND="" THEN :HC05INIT_START
	CALL COMM_COND("AT+BIND=","OK","",HCWT)
	IF COMM_COND="" THEN :HC05INIT_START
	CALL COMM_COND("AT+ROLE=1","OK","",HCWT)
	IF COMM_COND="" THEN :HC05INIT_START
:RELINK
	CALL COMM_COND("AT+LINK="& BTADR,"","",HCTIMEOUT) 'MAC ADDRESS TELEFONO
	WAITS 2
	CALL COMM("")
	WAITS 2
	HC_MODE=FALSE
	WAITS 2
	HC_MODE=TRUE
	WAITS 2
	CALL COMM_COND("AT+STATE?","CONNECTED","",HCTIMEOUT)
	IF COMM_COND<>"CONNECTED" THEN :HC05INIT_START
	HC_MODE=FALSE
SUBEND


SUB COMM_COND(TXSTR,RXSTROK,RXSTRNOK,TIMEOUT)
	TS=TIMER
:COMM_COND_START
	CALL COMM(TXSTR) 
	COMM_COND=COMM
	IF COMM_COND="" AND TIMER-TS>TIMEOUT THEN :COMM_COND_EXIT
	IF RXSTROK="" THEN :COMM_COND_EXIT
	IF INSTR(RXSTROK,COMM_COND)>0 THEN :COMM_COND_OK
	IF RXSTRNOK="" THEN :COMM_COND_START 
	IF INSTR(RXSTRNOK,COMM_COND)>0 THEN :COMM_COND_NOK
:COMM_COND_OK
	COMM_COND=RXSTROK
	GOTO :COMM_COND_EXIT
:COMM_COND_NOK
	COMM_COND=RXSTRNOK
:COMM_COND_EXIT
SUBEND

SUB COMM(TXSTR)
	TSC=TIMER
	IF TXSTR="" THEN :COMM_RX
	:COMM_START
	SERIALOUT=TXSTR& CR_LF
:COMM_RX
	COMM=""
	WHILE TIMER-TSC<CTIMEOUT
		COMM=COMM & SERIALINPSTR
		WAITMS 15
	LOOP
	IF TIMER-TSC<CTIMEOUT AND COMM="" THEN :COMM_START
SUBEND

SUB INIT_PHONE
	CALL COMM_COND("ATE0","OK","",PHWT)
	CALL COMM_COND("AT+CMGF=0","OK","",PHWT)
	CALL COMM_COND("AT+CNMI=2,1","OK","",PHWT)
	CALL COMM_COND("AT+CLIP=1","OK","",PHWT)
SUBEND

SUB COMMRST
	RESET_TIMER
	SERIALCLOSE
	COMMS_COUNT=0
SUBEND

SUB COMMAND_ANALYZE
	IF INSTR(COMMAND1,SMS_TEXT)=0 THEN :COMMAND2
	OUTBIT(1)=1
	GOTO :COMMAND_END
:COMMAND2
	IF INSTR(COMMAND2,SMS_TEXT)=0 THEN :COMMAND3
	OUTBIT(2)=1
	GOTO :COMMAND_END
:COMMAND3
	IF INSTR(COMMAND3,SMS_TEXT)=0 THEN :COMMAND4
	OUTBIT(3)=1
	GOTO :COMMAND_END
:COMMAND4
	IF INSTR(COMMAND4,SMS_TEXT)=0 THEN :COMMAND5
	OUTBIT(4)=1
	GOTO :COMMAND_END
:COMMAND5
	IF INSTR(COMMAND5,SMS_TEXT)=0 THEN :COMMAND6
	OUTBIT(1)=0
	GOTO :COMMAND_END
:COMMAND6
	IF INSTR(COMMAND6,SMS_TEXT)=0 THEN :COMMAND7
	OUTBIT(2)=0
	GOTO :COMMAND_END
:COMMAND7
	IF INSTR(COMMAND7,SMS_TEXT)=0 THEN :COMMAND8
	OUTBIT(3)=0
	GOTO :COMMAND_END
:COMMAND8
	IF INSTR(COMMAND8,SMS_TEXT)=0 THEN :COMMAND9
	OUTBIT(4)=0
	GOTO :COMMAND_END
:COMMAND9
	IF INSTR(COMMAND9,SMS_TEXT)=0 THEN :COMMAND_END
	FOR X=1 TO 4
		OUTBIT(X)=0
	NEXT X
:COMMAND_END

SUBEND



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 
 InizioPagina
 

Pagine: (4)   1   2   [3]   4    (Ultimo Msg)

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum