erstellt  03.08.2009
Mit Atmega 8 L ein Handy ansteuern - 1. Erweiterung
Im vorigen Projekt wurde ein Siemens Handy S45 von einem Microkontroller ( Atmega8L ) angesteuert und bei einem Alarm wurde vom Handy aus ein Anruf abgesetzt.
Diese Schaltung soll nun weiterentwickelt werden, so das ich eine Meldung am Microkontroller bekomme wenn am Handy ein Anruf eingeht.
Also erst einmal das Handy vom PC aus direkt über das Original ( Siemens Handy Datenkabel) mittels Terminal Programm anschließen um zu sehen was passiert eigentlich wenn ein Anruf eingeht.
Nach dem anschließen hab ich erst einmal das Handy angerufen und konnte am Terminal sehen das folgender Text vom Handy zum PC gesendet wurde " RING".
Also gibt das Handy einen Textstring aus wenn es angerufen wird.
Nun kann das Handy wieder am Microkontroller angeschlossen werden und es gilt jetzt den Textstring auszuwerten .
Der Text braucht aber nicht Expliziet ausgewertet werden, sondern uns interessiert ja nur ob überhaupt ein Anruf gekommen ist ,
also nur ob irgend etwas an Text vorhanden ist.
Dazu wurde im vorigem Programm einige Programm-Zeilen hinzugefügt ( Im Programm unten grün unterlegt)
Dazu muss erst einmal eine zusätzliche Datenleitung angeschlossen werden, und zwar die Datenleitung die vom Handy ausgehend Daten zum Atmega sendet
 ( hier Rot eingezeichnet).
Als weiteres wurde noch ein Blaue Led zugefügt , sie soll anzeigen wenn am Handy ein Anruf eingeht.
Funktion
Die Betriebsspannung erfolgt durch 2 Stk. Akkus (Mignon AAA).
Wird der Kontakt (Jumper an Pin 5) geöffnet oder der Kontakt ( Jumper an Pin 5) geschlossen wird eine zuvor gespeicherte Telefon Nr. angerufen
und nach mehrmaligem Klingel wird wieder aufgelegt, so das keine Kosten entstehen wenn am anderen Ende nicht abgenommen wird.
Umgekehrt kann die Alarmanlage auch angerufen werden , in diesem Fall leuchtet die Blaue Led.
       
Programm
Zeile
Programm
Beschreibung
1. $regfile "m8def.dat" 'Definiert den Atmega als Atmega 8
2. $baud = 19200 ' Datenübertragungsrate für RS232 Datenkabel
3. $crystal = 1000000 'Taktfrequenz angeben
4. Ddrd = &B00000100 ' Port D.2 als Ausgang setzen
5. Portd=&B00011000 'Pull Up setzen für PinD.3 und D.4
6 Ddrb = &B00000001 ' PortB.0 als Ausgang setzen
7 Config Lcd = 16 * 2 'definiert das LCD Display in Art und Größe
8 Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.3 , Db6 = Portb.2 , Db7 = Portb.1 , Rs = Portc.5 , E = Portb.5 ' Definition der Display-Anschlüsse
9. DIM inaktiv As Byte Variable setzen
10. DIM Anrufzeit As Byte Variable setzen
11 Dim Empfang As String * 1  
12. Inaktiv=60 Vorgabezeit in Variable ablegen
13. Anrufzeit=19 Vorgabezeit in Variable ablegen
14. Wait 4 'Pause von 4 Sekunden
15. Cls 'Display löschen
16. Portd.2=0  
17. Do  
18. Portd.2=1  
19. if PinD.3=1 ThenWaitms 20  
20. if PinD3=1 Then Gosub Alarm  
21. if PinD.4=0 Then Waitms 20  
22. if PinD.4=0 Then Gosub Alarm  
23. Waitms 300  
24. PortD.2=0  
25 Empfang = Inkey()  
26 If Empfang <> Chr(0) Then  
27 Portb.0 = 1  
28 Else  
29 Portb.0 = 0  
30 End If  
31. Loop  
32. End  
33. :Alarm  
34. LCD"ATDP+49XXXXXXXX;" Nummer wählen und abnehmen
35. Print"ATDP0XXXXXXXX" Anzeige der Nummer auf Display
36. Wait Anrufzeit  
37. Print "AT+CHUP" Hörer wieder auflegen
38. Wait Inaktiv  
39 Return  
40   End  
       
Programm als Bascom Datei hier laden  
       
Aktualisiert 30.06.2019


Copyright by Ms 2009