Forum: Mikrocontroller und Digitale Elektronik Handy an Mikrocontroller - hilfe nötig!


von Microdubsi (Gast)


Lesenswert?

Hi Leute!

Ich weiss, gibt tausende Beiträge dazu etc etc - und genau das ist mein 
Problem - ich weiss nicht wie und wo ich anfangen soll:

Ich hab folgende aufgabenstellung:

Ich soll eine SMS an einen  Mikrocontroller senden, und der soll je nach 
Inhalt der SMS ein Relais anstellen (also wenn der Inhalt z.b 1 lautet 
soll er Relais nummer eins anstellen).

Relaissteuerung etc etc kann ich nur meine Frage:

Wie mach ich das dass der Mikrocontroller eine SMS empfangen kann?

folgendes weis ich:

Das Telefon muss mit AT-Befehlen gesteert werden (am besten ein SIemens 
S35, oder?)

irgendwie kann ich es über den RS323 Port mit dem Mikrocontroller 
verbunden werden, dazwischenmuss noch der MAX323 als Pegelwandler.

Doch könnte mir mal jemand einen Schaltplan schicken?

Als Mikrocontroller habe ich den ATmega32.

Schön wäre auch noch, wenn der Mikrocontroller eine SMS zurückschickt 
mit "Befehl ausgeführt" sobald er das Relais ein-bzw ausgeschaltet hat.

Ich hoffe ich konnte mich verständlich ausdrücken und ihr könnt mir 
helfen...

Lg

von Chris L. (kingkernel)


Lesenswert?

Schau dir mal das an: 
http://www.ulrichradig.de/home/index.php/avr/avr_handy
Was das Empfangen angeht musste dir mal die Auflistung der AT-Befehle 
anschaun.

von Roland P. (pram)


Lesenswert?

Hierzu kann ich dir folgendes empfehlen:
http://www.nobbi.com/

Beispielcode für die PDU-Konvertierung findest du hier:
http://www.gnokii.org/

Prinzipiell geht auch ein Nokia-Handy mit Mbus (und vermutlich auch 
jedes andere), aber RS232 ist deutlich einfacher

Gruß
Roland

von HaJo42 (Gast)


Lesenswert?

> irgendwie kann ich es über den RS323 Port mit dem Mikrocontroller
> verbunden werden, dazwischenmuss noch der MAX323 als Pegelwandler.

Da geht der Spaß schon los. Die Schnittstellen der meisten Telefone sind 
keine echten RS-232 Schnittstellen, da sie gar nicht mit den RS-232 
Pegeln arbeiten. Ein MAX232 kann die serielle Schnittstelle eines 
Telefons für immer killen.

Die Pegelwandlung bei einem Telefon macht meist ein zu Gerät passendes 
Datenkabel. Dann ist man allerdings in der Situation

MCU -> Auf RS232 wandeln -> Von RS232 runter wandeln (Datenkabel) -> 
Telefon

Das zweimalige Wandeln kann man sich je nach Logikpegeln sparen oder 
durch eine einfachere Logikpegelwandlung ersetzen.

von Andreas M. als Gast (Gast)


Lesenswert?

guck mal da
http://www.nobbi.com/

von Gerhard G. (ibilzh)


Lesenswert?

Hallo,

benutz einfach das Datenkabel von Siemens. Das hat den
Pegelwandler schon integriert.
Für die ersten Tests kannst du eine einfache Terminal Emulation
benutzen. (Hyperterminal)
Ein Handy oder GSM-Modem (M20) mit Text Modus ist am einfachsten.
Da brauchst du keine Wandlung von PDU nach Text machen.

von Dennis (Gast)


Lesenswert?

Alternativ kann man Handys mit USB-Schnittstelle auch an einem USB-Host 
(z.B. VNC1L) anschließen.

http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=40739&highlight=vnc1l

Vorteil: Funktioniert auch mit aktuellen Handymodellen.

von Willi (Gast)


Lesenswert?

Hallo,
macht nicht so ein Aufwand!
RX/TX über je 100ohm an Das Siemens (Steckerbelegung gibt es bei nobbi, 
siehe oben), wenn der AVR mit 5V läuft, am TX zum Handy hinter dem 
100ohm
noch eine 3,3V Z-Diode nach GND. Bei Siemens auf 19200 Baut achten, die 
wollen nichts anderes, alte Nokiageräte gehen auch mit weniger.
                __
AVR/RX o-------[____]--------o S35 Pin 5
                100ohm
                __
AVR/TX o-------[____]----+---o S35 Pin 6
                100ohm   |
                        -+-
                        / \ 3,3V Z-Diode
                        -+-
                         |
AVR/GNDo-----------------+---o S35 Pin 1

mehr ist nicht nötig!
Gruß Willi

von Johannes B. (jotschi)


Lesenswert?

Hallo,

ich hab des folgendermaßen gemacht: Siemens C35 an einem AVR 
(AtMega162). Ich hab mir einen Lumbergstecker besorgt (billiges Headset 
von ebay) und die TX-Leitung des Handys direkt mit der RX des AVR 
verbunden. (Die 3V vom Handy reichen aus, dass der AVR des Signal 
erkennt). Die TX des Mikrocontrollers hab ich über einen Spannungsteiler 
an das RX vom Handy. Den Spannungsteiler so dimensionieren das am Handy 
von den 5V noch ca. 3,5V abfallen. (ich hab nen 2,7k und nen 5,7k 
genommen ist aber meiner Meinung nach ziemlich unkritisch).
Übrigens: Das Handy läuft ohne Akku an 5V mit ner 1N4001 in Reihe, so 
dass noch 4,3V am Handy übrig bleiben. Noch nen großen Elko (1000uF) 
direkt an die Akkukontakte, damit die Spannung beim Senden nicht 
zusammenbricht.

Funktioniert super.

PS: Ich werden mal meine Software noch etwas aufbereiten und dann hier 
zur Verfügung stellen. (kann SMS senden, empfangen, Status-SMS an die 
Nummer des Senders, Empfang auswerten, ...)

von ibilzh (Gast)


Lesenswert?

Hallo,

@Willi
ist schon richtig mit dem Aufwand. Allerdings gibt es fertige Kabel
incl. Versand um die 7-8 Euro.
Der Lumberg-Stecker kostet auch nicht gerade wenig.
Ich gehe für die Tests mit dem Handy immer zuerst über den PC.
Und da ist halt die RS232 beidseitig nötig.
So bin ich flexibel. Handy an PC, Handy an Prozessor, PC an Prozessor.
Spart übrigens eine Menge Kohle, weil man vieles am PC ansehen kann,
was sonst immer ins Funknetz geht. Da sind die RS232 Kosten schnell
wieder herinnen.

Gerhard

von Willi (Gast)


Lesenswert?

@ibilzh

ist schon richtig, aber der Fredstarter fragt, wie er mit einem AVR eine 
SMS empfangen kann und da stimme ich Johannes voll zu, bei mir läuft 
übrigens der AVR wie auch das C25 an 4,1V (MC34061 Standartbeschaltung) 
ohne Akku usw. Zusätzlich kann ich noch die E/A Taste mit einem BC846 
schalten so kann der AVR das Telefon auch einschalten.

Gruß Willi

von ibilzh (Gast)


Lesenswert?

Hallo,
@Willi
Das steht übrigens auch drin:
>Schön wäre auch noch, wenn der Mikrocontroller eine SMS zurückschickt
>mit "Befehl ausgeführt" sobald er das Relais ein-bzw ausgeschaltet hat.

Ist im Prinzip wurscht, wie man das macht. Hat schon mal jemand daran 
gedacht, wie es ist, wenn man einen YP mit 2,7 V betreibt.
Meine Meinung: Richtige Schnittstelle für ein paar lausige Cents und 
alles
funktioniert sicher. Aber das soll jeder machen wie er will.

von Microdubsi (Gast)


Lesenswert?

Hey leute

hab erst wieder reingeschaut (hatte schule etc.) und- woooow - ihr habt 
echt viel gekrizelt - danke;)

also bleibt eigentlich festzuhalten: wenn ich ein standart-RS232 Kabel 
nehme brauch ich nen Pegelwandler (Max 232), wenn ich ein Siemens Kabel 
nehm brauch ich nicht mal mehr den Max 232?
(quintesenz bis jetzt;))

hatte heute morgen eine Besprechung mit meinem Betreuungslehrer, der hat 
gesagt ich muss nicht zwingend ein altes Telefon nehemen sondern kann 
mir auch ein GSM mOdul bestellen und er bezahlts (boah der is geil ;p)

hab dann das gefunden: http://www.gsm-modem.de/gps/gsm-module.html

das wär doch eigentlich genau was ich bräcuhte oder? hat zumindest 
AT-Commands und ne RS232 Schnittstelle (für mich steht fest das ich mit 
dem RS232 arbeiten möchte da-> einfacher (blos mit dem print befehl den 
AT-Command "Schreiben" so wie ich das mitbekommen hab...)

ist dieses GSM Modul das was ich brauche?!

Liebe Grüsse

von ibilzh (Gast)


Lesenswert?

Hallo  Microdubsi,

><also bleibt eigentlich festzuhalten: wenn ich ein standart-RS232 Kabel
>nehme brauch ich nen Pegelwandler (Max 232), wenn ich ein Siemens Kabel
>nehm brauch ich nicht mal mehr den Max 232?
>(quintesenz bis jetzt;))

Bei Pegelwandlung hast du immer zwei Seiten - also auch zwei Wandler.
PC hat einen, Siemenskabel hat einen. Prozessorboard hat keinen.
Der PC ist nur als Test gedacht gewesen. Du hast im Prinzip nur
Prozessorboard und Handy (GSM-Modem). Ein fertiges GSM-Modem wie
Siemens M20 hat auch eine RS232. Der Prozessor hat nur eine UART.
Uart ist gleich der seriellen nur halt mit TTL Pegel. RS232 hat +15/-15 
Volt.
Nimmst du ein Modul wie aus dem Link, dann kannst dir die Pegelwandler
sparen. Denk auch an eine Antenne. Module und Modems haben
Textmodus und einen RING Pin.
Mit RING kannst du leicht die Sendernummer mit AT-Befehlen
in der Anrufphase rausbekommen und festlegen, ob das Modem überhaupt
abheben soll. Eine überlegung ist auch, ob man das Steuern nur über
SMS macht. Ich hab die Erfahrung gemacht, das (vom Ausland) SMS nach
sechs Stunden eingetrudelt sind. Ich hab mich jetzt zu Verbindungsaufbau
und Tonauswertung entschieden. Bekanntlich kann man bei aufgebauter
Verbindung über die Tastatur des Handys Töne schicken; und die kann man
auswerten. MT8870DE ist so ein Baustein. Viel Zeug zum Anfang.
Aber hinterher ist man immer klüger.

Gruss
Gerhard

von Microdubsi (Gast)


Lesenswert?

Hi Gerhard
ja, wirklich sehr viel zeug zum anfang!

Sag mir doch bitte was ich machen soll ;p

ich möchte trotzdem nur bei SMS bleiben (da es der projektvereinbarung 
entspricht).

Also, meine Zielsetzung (nur damit wir das nicht aus den Augen 
verlieeren) ist ja einfach:

SMS kommt an, AVR schaut was in der SMS steht. wenn da steht:

1

dann schaltet er Relais 1 an

und dann macht er printf (oder so, weis ja auch nicht ob ichs in C 
machen will) und denn dazugehörigen AT command um der sendernummer eine 
bestätigung zulassen zu kommen.

das will ich machen können

kann ich das mit dem Modul von dem Link?
Einen  Pegelwandler brauch ich nun auch nicht mehr!?

soll ich beim ATmega 32 bleiben?

Lg

von Gerhard G. (ibilzh)


Lesenswert?

Hallo Microdubsi,


Microdubsi wrote:
> Hi Gerhard
> ja, wirklich sehr viel zeug zum anfang!
>
> Sag mir doch bitte was ich machen soll ;p
>
- Zuerstmal das Datenblatt von dem Modul holen.
- Die AT-Befehle vom Modul besorgen.
> ich möchte trotzdem nur bei SMS bleiben (da es der projektvereinbarung
> entspricht).
  Schau dir besonders die AT-Befehle an. Für SMS gibt es eine Hand voll
  Befehle. Die solltest du zu allererst durchackern. Dann hast du eine
  Vorstellung was du mit einem einfachen Befehl hinkriegst, und was
  du selber schreiben musst. AT-Commands sind nicht die Eierlegende....
>
- Wichtig für eine einfache Realisierung ist: Kann das Modul TEXTMODUS?
  Zur Erklärung: Textmode bringt Text, der einfach zu lesen ist.
  Bei PDU-Mode musst du einen Datenstream filtern. Zum Senden kannst du
  einfach Text abspeichern und dann den Speicherinhalt per AT-Befehl
  senden. Beim Empfang ist es im PDU-Modus nicht mehr so einfach.
  [www emagu de/alarmanlage.htm Punkte einsetzen.] So hab ich
  angefangen.
  In dem Textfenster siehst du den PDU String.

> Also, meine Zielsetzung (nur damit wir das nicht aus den Augen
> verlieeren) ist ja einfach:
>
> SMS kommt an, AVR schaut was in der SMS steht. wenn da steht:
>
> 1
>
> dann schaltet er Relais 1 an
>
> und dann macht er printf (oder so, weis ja auch nicht ob ichs in C
> machen will) und denn dazugehörigen AT command um der sendernummer eine
> bestätigung zulassen zu kommen.
>
Zu C kann ich nix sagen. Ich mach es in Basic.
> das will ich machen können
>
> kann ich das mit dem Modul von dem Link?
Lies dir mal selbst die Datenblätter durch. Wenn Du das hast,
dann ist die Frage vermutlich schon beantwortet.
> Einen  Pegelwandler brauch ich nun auch nicht mehr!?
>
Wieder Datenblatt - Betriebsspannung vom Modul und Prozessor
vergleichen. Besonderes Augenmerk auf die Signalpegel der
Schnittstellen beider Bausteine. Ich mein die RS232 oder USART
> soll ich beim ATmega 32 bleiben?
Der dürfte locker reichen, wenn du nicht den Speicher mit großen
Texten zumachst. Ports stehen auch genug für die Relais zur
Verfügung.
>
Und besonders wichtig. Du machst das Projekt. Lass dich nicht
einschüchtern. Arbeite es selbst aus und frag, wenn was klemmt.
> Lg

Gerhard

von Microdubsi (Gast)


Lesenswert?

Hey leute (oder gerhard?;))

also, wenn ich nerve - nicht sagen, ich weis es;p

aber, diesmal hab ich mich schlauer gemacht bevor ich gefragt habe:

hier mein neues Objekt der Begierde:
http://www.mobilesolutions.ch/wm4/d/sales_unit/neu/pdf/ModulzubehoerMC35i_MC39i_TC35i.pdf

kann:

AT-Befehle
hat ne RS232 Schnittstelle (multiplex - bedeutet für mich?)
Eingangsspannung 3.3 - 4.8 V (bezieht sich auf die Versorgungsspannung 
oder?)
Text und PDU Mode

hat doch nun alles was ich zu beachten hatte?!

und noch zu PDU und TExt: ich habe einen gefunden 
(http://www.emagu.de/alarmanlage.htm) der hat sich ne alarmanlage 
gebastelt. Und seine nachricht sieht so aus: 
http://www.emagu.de/images/hyperterm_atbefehle.jpg

bei mir würde dann da wo die vielen Zahlen stehen Buchstaben stehen weil 
mein modul Text kann - oder?!

Liebe Grüsse

von Gerhard G. (ibilzh)


Lesenswert?

Hallo  Microdubsi
Hausaufgaben gut gemacht, Respekt.
> hier mein neues Objekt der Begierde:
> 
http://www.mobilesolutions.ch/wm4/d/sales_unit/neu/pdf/ModulzubehoerMC35i_MC39i_TC35i.pdf
>
Schönes Modul. Das im Gehäuse mit fertiger RS232 verwendet der (ich)
in seiner Homepage auch. Überleg dir das gut mit dem Modul. Was nicht
auf den schönen Bildern zu sehen ist - die Anschlusskontakte des Moduls
(Anschlussleiste 60641014/1015 - 40 Pole) gehen auf der Rückseite raus.
Und die musst du alle, oder einen Teil davon auf ein Layout einer 
Platine
bringen. Sim-Kartenleser ist auch nicht drauf.
Normal benötigt man dazu ein Entwicklungskit so wie es bei deinem ersten
Modul angeboten wird. Kommt übrigens aus Italien und ist von Telit.
http://www.telit.com/en/products.php?p_id=3&p_ac=show&p=7
Ich würde das fertige Siemens MC35i nehmen. Gibt es in der Bucht 
günstig.
> kann:
>
> AT-Befehle
> hat ne RS232 Schnittstelle (multiplex - bedeutet für mich?)
Multiplex heisst zwischen mehreren Dingen hin- und herschalten.
> Eingangsspannung 3.3 - 4.8 V (bezieht sich auf die Versorgungsspannung
> oder?)
Genau
> Text und PDU Mode
OK
>
> hat doch nun alles was ich zu beachten hatte?!
>
Ja
> und noch zu PDU und TExt: ich habe einen gefunden
> (http://www.emagu.de/alarmanlage.htm) der hat sich ne alarmanlage
> gebastelt. Und seine nachricht sieht so aus:
> http://www.emagu.de/images/hyperterm_atbefehle.jpg
>
Das ist die Nachricht, die gesendet wird - aus dem Speicher in PDU Mode
 - und zwar vom Handy Siemens S35. Ein Bild drunter siehst du den
Sendebefel  Print "AT+CMSS=1"
> bei mir würde dann da wo die vielen Zahlen stehen Buchstaben stehen weil
> mein modul Text kann - oder?!
>
Genau - So sieht es bei Text Modus aus:
Print "AT+CMGS={034}+49172xxxxxxx{034}"          'Meldung als SMS
   Waitms 500
   Print "Text der als SMS versendet wird{026}"

> Liebe Grüsse

Gruß Gerhard

von MIcrodubsi (Gast)


Lesenswert?

OKay Gerhard - danke

in dem Fall bestell ich mir das MC35i oder?! Da hab ich dann diese 40 
Pol-Leiste schon an nem RS232 Anschluss und SIm-Kartenleser is auchschon 
drauf!?

und der Rest ist ja gleich wie beim Modul?!

Liebe Grüsse
Marius, Microdubsi, Barracuda und weis was ich noch alles;p

von ibilzh (Gast)


Lesenswert?

Hallo Marius, Microdubsi, Barracuda und weis was ich noch alles
:-)

Was ich meine ist ein fertiges GSM Modem wie MC35i oder M20 von Siemens.
Allerdings kommst du nicht um einen Pegelwandler rum. Aber die 40 Cent
machen das Kraut auch nicht mehr fett.
Ein Modul würde ich nur einsetzen,
wenn ich das Zeug verkaufe und entsprechend auf den Putz hauen muss.
Die fertigen Modems sind in einem Gehäuse, haben Anschlüsse für
RS232, Antenne, Externes Netzteil, Handset und Simkarte.
Und vergiss bei der Platine nicht den Ring Indicator Anschluss
der RS232 Schnittstelle. Das ist Gold wert beim Programmieren.
Der Pin meldet einen Anruf. Da braucht man nicht permanent die
Schnittstelle abfragen ob was kommt. Durch den Pin kann man einen
Interrupt auslösen, der dann den Anruf annimmt.

Dann wünsch ich noch viel Spaß beim Bau und der Programmierung.

Gruss
Gerhard

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.