Senden von Daten über eine 4-polige 3,5-mm-Buchse an ein Smartphone

Ich habe mich einige Zeit umgesehen und keine hilfreichen Informationen darüber gefunden, wie dies gemacht wird. Ich arbeite an einem Projekt, das beabsichtigt, Daten über die Kopfhörerbuchse zu senden, die von einem Smartphone verarbeitet werden sollen. Genauer gesagt möchte ich die Wassertemperatur mit einem IR-Sensor messen. Die Spannung des Sensors wird an ein Smartphone gesendet, wo sie analysiert werden kann, um mir die Temperatur mitzuteilen. Ist das eine umsetzbare Idee?

Ich weiß nicht allzu viel darüber, wie 3,5-mm-Anschlüsse an Smartphones funktionieren, daher wären Links auch hilfreich. Ich weiß, dass dies eine vage Beschreibung des Projekts ist, und ich suche nur nach Quellen, die mich in die richtige Richtung lenken. Das Projekt erfordert die Verwendung der Kopfhörerbuchse auf Smartphones, sodass ich USB nicht verwenden kann.

Nebenbemerkung: Ich bin ein Anfänger im Grundstudium, der möglicherweise überfordert ist.

Antworten (4)

Es sollte nicht allzu schwer sein, dieses Problem auf eine Weise zu lösen, die ziemlich plattformunabhängig und flexibel über die möglichen Variationen Ihrer Anwendungsanforderungen hinweg ist.

Zuerst müssen Sie einen Schaltkreis finden, um ein Audiosignal in die Kopfhörerbuchse einzuspeisen; Da Headsets mit breiter Kompatibilität (iPhone, die meisten Android-Geräte und wahrscheinlich mehr) auf dem Markt erhältlich sind, ist dies eindeutig möglich. Ich glaube, es wurde hier schon einmal behandelt.

Dann benötigen Sie eine einfach zu implementierende Datenübertragung, die ziemlich immun gegen Schwankungen des Telefonmodells, der Komponenten, der Temperatur usw. ist.

Der Versuch, einen analogen Spannungspegel direkt zu senden, wäre wahrscheinlich nicht der Fall - das Telefon (oder zumindest die von Ihnen verwendete Eingangsschaltung) blockiert wahrscheinlich Gleichstrom, und selbst wenn dies nicht der Fall ist, fällt es Ihnen schwer, die genaue Verstärkung der Eingangsschaltung des Telefons zu kennen.

Etwas, das Informationen im Laufe der Zeit codiert, wird also wahrscheinlich besser funktionieren. Eine einfache Lösung wäre ein Spannungs-Frequenz-Wandler oder ein spannungsgesteuerter Audiooszillator. Indem Sie einen Ton mit einer Frequenz erzeugen, die proportional zu Ihrem Signal ist, und dann die stärkste Frequenz in der Software auf dem Telefon messen, haben Sie ein ziemlich zuverlässiges System. Es hängt jedoch etwas von der Genauigkeit Ihres Modulators ab - wenn Sie beispielsweise etwas mit einem 555 hacken, kann dies von nicht präzisen Kondensatoren abhängen, deren Wert von Beispiel zu Beispiel und über der Temperatur variiert.

Eine weitere Option wäre ein digitales Modem - zum Beispiel Frequency Shift Keying. Sie könnten einfach die Spezifikationen für ein 300-Baud-Telefonmodem abrufen und ein solches Signal mit einem Rechteckwellenausgang von einem kleinen Prozessor wie einem ATtiny, PIC, MSP430 usw. annähern, indem Sie den ADC des Prozessors verwenden, um den Sensor zu lesen und ein Ergebnis zu erzielen Nummer, die Sie verschlüsseln möchten. Wenn Sie nicht sehr schnell Messungen vornehmen müssen, können Sie die Baudrate noch weiter verringern und den Decoder leichter beschreibbar machen.

Zusammenfassend lässt sich sagen, dass Sie durch die Modulation eines Aspekts des Signals, z. B. der Frequenz, die weniger von Gerät zu Gerät variiert, ein System aufbauen können, das ziemlich universell ist – Sie müssen lediglich einen Build Ihrer Demodulatorsoftware erstellen, der dies kann verknüpft mit der Struktur einer einfachen Anwendung vom Typ Audio-Record-to-Buffer im SDK jedes Telefontyps, den Sie unterstützen möchten.

Danke für die schnelle Antwort. Ich bin nur für das Hardware-Design zuständig und das wird enorm helfen, voranzukommen.

Nach Chris 'Antwort wäre vielleicht so etwas wie ein LM331 IC nützlich. Es führt die Aufgabe der Umwandlung von Spannung in Frequenz UND Frequenz in Spannung aus, je nachdem, wie es verdrahtet ist.

http://www.ti.com/product/lm331

Geben Sie hier die Bildbeschreibung ein

Analog JIm ist zurück.

Ja, das ist eine durchaus machbare Idee. Das ist nur analoge Kommunikation. Die Geschwindigkeit der Datenübertragung ist jedoch nicht so gut wie bei USB.

Kürzlich habe ich an demselben Konzept gearbeitet. Und ich habe über Projekt Hijack gefunden. Überprüfen Sie dies http://web.eecs.umich.edu/~prabal/projects/hijack/

Dies ist ein 3,5-mm-Klinkengerät, das die Kommunikation mit dem Smartphone ermöglicht.

Dies ist nur eine einseitige Kommunikation. Soweit ich weiß, hat keiner eine 2-Wege-Kommunikation über eine 3,5-Klinkenbuchse versucht.

@mphommal:

Viele Dinge müssen berücksichtigt werden, bevor Sie diesem Problem auf den Grund gehen können:

1) Von welchem ​​genauen Smartphone sprechen wir hier? Verschiedene Anbieter verwenden unterschiedliche Hardware- und Integrationskonfigurationen, was bedeutet, dass der Prozess aller Wahrscheinlichkeit nach bei den Telefonen unterschiedlich sein wird.

2) Wie schlagen Sie vor, Ihre Verarbeitung auf dem Smartphone durchzuführen? Haben Sie das Telefon „gerootet“, mit vollständigem Zugriff auf alle Funktionen des integrierten Prozessors? Oder möchten Sie dies zu einer Benutzerdomänen-App machen?

3) Welchen Sensor planen Sie zu verwenden? Analog, 4-20mA oder 0-5VDC, oder digital mit serieller Schnittstelle (SPI, TWI, I2C etc.)?

So wie ich es sehe, haben Sie wirklich zwei Möglichkeiten, die Verarbeitung durchzuführen. Sie können die Entwicklertools für das Betriebssystem Ihres Telefons (iOS, Android, andere) durchsuchen und sehen, ob diese Tools Bibliotheken zum Lesen von Daten aus bestimmten Eingaben enthalten. Vielleicht ist ja das Passende für Sie dabei. ODER Sie können das Telefon vollständig hacken und den integrierten Prozessor wie einen normalen alten uC verwenden, was wahrscheinlich bedeutet, dass Sie den entsprechenden Assembler lernen müssen, oder wenn Sie Glück haben, verfügt der integrierte Prozessor über einen verfügbaren C/BASIC-Compiler.

Sobald Sie diese Fragen beantwortet haben, denke ich, dass wir Sie auf den Weg zum Erfolg bringen können.

Ich denke, Sie machen das viel zu kompliziert - ein einfaches Audiosignal (das je nach Art der Daten und der erforderlichen Genauigkeit entweder die Daten in einem digitalen Stream moduliert und codiert oder das Signal als einfache Frequenz codiert) kann implementiert werden mit fast jedem Telefon, ohne dass das Telefon gerootet oder mit einer speziellen Telefonhardware verbunden werden muss, außer Audio auszugeben, das das Telefon über seine Mikrofonbuchse "hören" kann.