Archiv der Kategorie: Hardware

Raspberry PI – SMS senden mit smsd

Nach fast einem Jahr Laufzeit habe ich mich da zu entschieden nun auch das Senden auf smsd umzustellen. Der Weg über gsmsendsms hat bei etwas höherer Last doch zu oft zu Problemen geführt, welche nur mit einem Neustart behoben werden konnten. Schließlich gelingt es mir in einem anderen raspberry-Projekt (Heizungssteuerung) quasi eine unendliche Uptime zu erreichen. Mein Ziel ist es das auch für den SMS-Gateway zu erreichen. Bis jetzt habe ich ca. 50.000 SMS gesendet und 5.000 empfangen. Die Probephase für das Senden über smsd (ca. 1000 SMS) ist bis jetzt ohne Probleme verlaufen.

raspberry pi sms-gateway
raspberry pi sms-gateway

Zum Senden mittels smsd muss einfach pro SMS eine Textdatei mit belibigen Namen im Ausgangsverzeichnis erstellt werden. Ich habe als Namen die Id des Datensatzes benutzt, wodurch ich dann einfach nach der Verarbeitung den Status in der SQL Datenbank aktualisieren kann.
Raspberry PI – SMS senden mit smsd weiterlesen

Raspberry PI – SMS empfangen

Für den Empfang habe ich mich für den smsd entschieden. Das Program gehört zu den SMS Server Tools. Mit diesem kann man senden und empfangen. Ich benutze es aber nur zum Empfangen. Damit sich gsmsendsms und smsd nicht in die Quere kommen beende ich den Daemon während des Sendens.

<?php
system("pkill smsd");
...
...
system("/usr/sbin/smsd &");
?>

Die Einrichtung des Deamons läuft ein ein config File im etc Verzeichnis. Ich habe dazu am Ende der Datei smsd.conf folgende Zeilen hinzugefügt: Raspberry PI – SMS empfangen weiterlesen

Raspberry PI – SMS senden

Zum Senden der SMS verwende ich das Programm gsmsendsms. Die Daten werden hierbei einfach als Parameter angehängt. Wichtig ist das der Text nicht über 160 Zeichen lang ist. Wenn man eine SMS über 160 Zeichen versenden möchte, so muss man den Text in mehrere Teile zerlegen und mit Tags verlinken. Die ersten Teile müssen mit LONG# beginnen und der letzte mit LAST# was die Länge der einzelnen SMS auf 155 verkürzt. Leider funktioniert das nicht bei allen Providern. Ich setze O2 ein, da geht das leider nicht. Wenn gsmsendsms die Nachricht erfolgreich gesendet hat, so bekommt man 0 als Returncode zurück. Weitere Meldungen werden nur auf der Console ausgeben. Deshalb schreibe ich den gesamten Output des cronjobs in ein Logfile. Ich rufe den Programmteil zum Senden und Empfangen der SMS jede Minute einmal per cronjob auf.

Ausschnitt aus meinem PHP Programm zu Senden:

<?php
if ($Nummer != "" && $Nachricht != ""){
	system("gsmsendsms -d /dev/ttyUSB0 ".$Nummer." '".$Nachricht."'",$ret);
}
if ($ret == 0){
	$query = "update SMSLOG set erledigt=1,Versuch=Versuch+1 where";
	$query .= "SysSMSLOG=".$SysSMSLOG;
	mysql_query($query);
	$gesendet ++;
}else{
	$query = "update SMSLOG set Versuch=Versuch+1 where SysSMSLOG=".$SysSMSLOG;
	mysql_query($query);
}
?> Raspberry PI – SMS senden weiterlesen 

Raspberry PI – Projekt SMS Gateway

Heute habe ich mit einem neuen Projekt für den Raspberry Pi begonnen. Ein Raspberry Pi soll per Webservice Inhalt und Empfänger für eine SMS empfangen und diese dann per UMTS Stick an einen Mobilfunkprovider übermitteln. Die SMS Nachrichten werden in einer MySQL Datenbank zwischengespeichert und nach erfolgreicher Übergabe als erledigt gekennzeichnet. Ein Cronjob wird dann die Datenbank regelmäßig aufräumen, um Datenmüll zu vermeiden. Mit diesem System sollen im Monat ca. 5000 SMS versendet werden.

Hardware

  • Raspberry Pi – Model B 512 MB
  • SD Karte 8 GB Sandisk Ultra
  • Huawei E173 Umts Stick
  • Edimax WLan Stick
  • 2A 5V Netzteil

Software

  • Debian
  • MySQL + PhpMyAdmin
  • Apache Webserver
  • gsm-utils
  • smstools
  • PHP

Temerpaturüberwachung – Erfahrungsbericht nach zwei Monaten

Als erstes möchte ich gleich vornweg stellen, das Projekt Temperaturüberwachung ist ein voller Erfolg. Das System läuft absolut stabil, ohne jeglichen Aussetzter. Selbst die Installation einer neuen Fritzbox war kein Problem für das System. Als ich nach über einer Woche die defekte FritzBox durch eine neue ersetzt hatte, begann der Raspberry ohne Neustart nach ca. 5 Minuten mit der Übertragung der in der Zwischenzeit gesammelten Daten an den Webserver. Ich habe schon lange kein System mehr gesehen, welches ab dem ersten Tag so stabil gelaufen ist. Vor der Inbetriebnahem habe ich mehrere Versuche zum Thema Stromausfall und Abruch der WLAN- bzw. Internetverbindung gemacht. Das ganze System verhält sich wie fast ein Föhn. Rein in die Steckdose eine Minute warten und alles läuft wie gewollt. Macht keine Geräuche, Gerüche und der Stromverbrauch hält sich wirklich in Grenzen.

raspberry pi

Raspberry PI – Projekt Temperaturüberwachung

Ziel des Projektes soll es sein Gerät zu haben, mit dem ich aus der Ferne, Temperatur und Luftfeuchtigkeit überwachen kann. Es soll eine permanente Aufzeichnung stattfinden, aber auch beim Überschreiten von Grenzwerten ein Alarm per Email oder SMS ausgelöst werden können. Das ganze soll kostengünstig werden und natürlich genau so funktionieren wie ich mir das vorgestellt habe, also kommt eine Fertiglösung nicht in Frage. Weiterhin sollen keinen all zu hohen Betriebskosten anfallen. Aus diesen Gründen habe ich mich für einen Kleinstrechner mit Linux entschieden. Der Raspberry PI ist mit ca. 4 Watt Leistungsaufnahme und ausreichend Schnittstellen genau der richtige Kandiat.

Raspberry PI – Projekt Temperaturüberwachung weiterlesen

Raspberry PI – Gehäuse anpassen

Beim Gehäuse habe ich mich für das „TEK-BERRY :: Design-Gehäuse“ von Reichelt entschieden. Für den Preis 4,95 EUR plus Versand darf man sicher keine Wunder erwarten, aber für den Zweck ist es allemal ausreichend. Durch den weichen Kuststoff war es auch sehr einfach das Loch für das Kabel des Sensors zu bohren. Ich habe mir nicht einmal die Mühe gemacht die Bohrmaschiene zu holen. Mit Bohrer und Senker mit per Hand war die Arbei in zwei Minuten erledigt. Einziger kleiner Nachteil des Gehäuses ist, das der USB-Stecker für den Stromanschluss nicht immer gleich einzustecken geht. Manchmal muss man etwas auf die SD-Karte drücken, damit der Stecker rein geht.

 

8 mm Loch für die Durchführung des Kabels