Я искал некоторое время и не нашел полезной информации о том, как это делается. Я работаю над проектом, который намеревается отправлять данные через разъем для наушников для обработки смартфоном. Точнее, я хочу измерить температуру воды с помощью ИК-датчика. Напряжение датчика будет отправлено на смартфон, где его можно будет проанализировать, чтобы сообщить мне, какова температура. Это осуществимая идея?
Я не слишком много знаю о том, как работают 3,5-мм разъемы на смартфонах, поэтому ссылки тоже будут полезны. Я знаю, что это расплывчатое описание проекта, и я просто ищу некоторые источники, которые направят меня в правильном направлении. Проект требует использования разъема для наушников на смартфонах, поэтому я не могу использовать USB.
Боковое примечание: я начинающий инженер-старшекурсник, который может быть выше его головы.
Не должно быть слишком сложно решить эту проблему таким образом, который достаточно не зависит от платформы и является гибким для возможных вариантов потребностей вашего приложения.
Во-первых, вам нужно найти схему подачи аудиосигнала в разъем для гарнитуры; поскольку на рынке доступны гарнитуры с широкой совместимостью (iphone, большинство устройств Android и, возможно, больше), это вполне возможно. Я считаю, что это было описано здесь раньше.
Тогда вам нужно простое в реализации средство передачи данных, достаточно невосприимчивое к изменениям модели телефона, комплектующих, температуры и т. д.
Попытка отправить аналоговый уровень напряжения напрямую, скорее всего, не будет - телефон (или, по крайней мере, используемая вами входная цепь), скорее всего, заблокирует постоянный ток, и даже если это не так, вам будет трудно узнать точное усиление на входной цепи телефона.
Так что что-то, что кодирует информацию с течением времени, вероятно, будет работать лучше. Простым решением может быть преобразователь напряжения в частоту или аудиогенератор, управляемый напряжением. Создав тон с частотой, пропорциональной вашему сигналу, а затем измерив самую сильную частоту в программном обеспечении на телефоне, вы получите довольно надежную систему. Однако это будет в некоторой степени зависеть от точности вашего модулятора - например, если вы что-то взломаете с помощью 555, это может зависеть от неточных конденсаторов, значение которых варьируется от примера к примеру, и от температуры.
Другой вариант, на который стоит обратить внимание, - это цифровой модем, например частотная манипуляция. Вы можете просто взять характеристики телефонного модема на 300 бод и аппроксимировать такой сигнал прямоугольным сигналом на выходе небольшого процессора, такого как ATtiny, PIC, MSP430 и т. д., используя АЦП процессора для считывания показаний датчика и получения число, которое вы хотите закодировать. Если вам не нужно проводить измерения очень быстро, вы можете еще больше снизить скорость передачи данных и упростить запись декодера.
Таким образом, модулируя некоторые аспекты сигнала, такие как частота, которая менее подвержена вариациям от устройства к устройству, вы можете построить систему, которая будет довольно универсальной — потребуется только создать сборку вашего программного обеспечения демодулятора, которая может быть связаны со структурой базового приложения типа аудиозаписи в буфер в SDK каждого типа телефона, который вы хотите поддерживать.
После ответа Криса, возможно, будет полезно что-то вроде микросхемы LM331. Он выполняет задачу преобразования напряжения в частоту И частоты в напряжение в зависимости от того, как он подключен.
Да, это вполне осуществимая идея. Это просто аналоговая связь. Но скорость передачи данных будет не такой хорошей, как у USB.
Недавно я работал над той же концепцией. И я нашел о проекте Hijack. Проверьте это http://web.eecs.umich.edu/~prabal/projects/hijack/
Это устройство с питанием от разъема 3,5 мм, что позволяет общаться со смартфоном.
Это всего лишь одностороннее общение. Насколько я знаю, никто не пробовал двухстороннюю связь с использованием разъема 3,5.
@мфоммал:
Прежде чем вы сможете добраться до сути этой проблемы, необходимо рассмотреть множество вещей:
1) О каком именно смартфоне идет речь? Разные поставщики используют разное оборудование и настройки интеграции, а это означает, что процесс, по всей вероятности, будет отличаться для разных телефонов.
2) Как вы предлагаете делать свою обработку на смартфоне? Есть ли у вас «рутированный» телефон с полным доступом ко всем возможностям встроенного процессора? Или вы хотите сделать это приложение пользовательского домена?
3) Какой датчик вы планируете использовать? Аналоговый, 4–20 мА или 0–5 В постоянного тока, или цифровой с последовательным интерфейсом (SPI, TWI, I2C и т. д.)?
Как я это вижу, у вас действительно есть два варианта выполнения обработки. Вы можете выполнить поиск по инструментам разработки для ОС вашего телефона (iOS, Android и другие) и посмотреть, включают ли эти инструменты библиотеки для чтения данных из определенных входов. Возможно, есть тот, который соответствует вашим потребностям. ИЛИ, вы можете полностью взломать телефон и использовать встроенный процессор как обычный старый UC, что, вероятно, означает изучение соответствующего ассемблера или, если вам повезет, встроенный процессор имеет доступный компилятор C/BASIC.
Как только вы ответите на эти вопросы, я думаю, мы сможем помочь вам встать на путь успеха.
формальный