Беспроводная передача данных по магнитному полю на Arduino с 3D-сенсором Infineon
Компоненты и материалы
- Arduino UNO — 1 шт. (передатчик)
- Infineon 3D Magnetic Sensor 2Go (TLE493D-W2B6) — 1 шт. (приемник)
- Электромагнит — 1 шт. (готовый или самодельный: магнитная проволока на железном болте)
- Релейный модуль (1 канал) — 1 шт. (коммутация электромагнита)
- Провода перемычки
- Источник питания для электромагнита (соответствует его напряжению/току)
Приложения и сервисы
- Arduino IDE
- Infineon 3D Magnetic Sensor GUI (только Windows) — визуализация данных сенсора
О проекте
Экспериментальная передача двоичных данных без радиоволн: электромагнит модулирует магнитное поле (вкл/вык = 1/0), 3D-сенсор Infineon улавливает изменения по осям X, Y, Z. Демонстрирует принцип магнитной связи на малом расстоянии.
Шаг 1: Подключение Arduino (передатчик)
- Вход реле (IN) → D12 Arduino
- Электромагнит + его питание → на нормально разомкнутые контакты реле (NO, COM)
- Arduino питается от USB
Схема в разделе «Schematics».
Шаг 2: Прошивка передатчика (Arduino UNO)
int incomingByte = 0;
int data = 0;
void setup() {
Serial.begin(9600);
pinMode(12, OUTPUT);
Serial.println("Starting...");
Serial.println("Send a string of binary digits");
}
void loop() {
if (Serial.available() > 0) {
incomingByte = Serial.read();
data = 1;
if (incomingByte == '0') { // ASCII 48
digitalWrite(12, LOW); // магнит ВЫКЛ
Serial.print("0");
delay(100);
}
else if (incomingByte == '1') { // ASCII 49
digitalWrite(12, HIGH); // магнит ВКЛ
Serial.print("1");
delay(100);
}
else {
Serial.print("?");
}
}
else {
if (data == 1) {
digitalWrite(12, LOW); // сброс магнита после пакета
Serial.println();
data = 0;
}
}
}
После загрузки откройте Serial Monitor (9600 baud). Ввод строки «101010» заставит реле щелкать — магнит модулируется.
Шаг 3: Установка GUI Infineon (приемник)
- Скачайте GUI с сайта Infineon (раздел «Free Download» для 2GO Kit). Только Windows. На Mac/Linux — виртуальная машина.
- Установите GUI и USB-драйвер.
Шаг 4: Тест приемника
- Подключите 2Go-плату к ПК по USB.
- Запустите GUI → Link → выберите Fast Mode.
- Должен появиться поток данных по осям X, Y, Z.
Шаг 5: Настройка Arduino IDE для программирования 2Go
2Go основана на XMC1100 (ARM Cortex-M0). Чтобы программировать её из Arduino IDE:
- File → Preferences → Additional Boards Manager URLs: добавьте
https://github.com/Infineon/Assets/releases/download/current/package_infineon_index.json - Tools → Board → Boards Manager → поиск «XMC» → Install Infineon XMC Boards.
- Скачайте библиотеку TLE493D_W2B6 с GitHub Infineon (ZIP). Sketch → Include Library → Add .ZIP Library.
Шаг 6: Прошивка 2Go (приемник)
#include
Tle493d_w2b6 mag3DSensor = Tle493d_w2b6();
const int sens = 1; // порог чувствительности (меньше = чувствительнее)
void setup() {
mag3DSensor.begin();
mag3DSensor.enableTemp();
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
mag3DSensor.updateData();
// Если модуль вектора магнитного поля превышает порог по любой оси
if (abs(mag3DSensor.getX()) > sens ||
abs(mag3DSensor.getY()) > sens ||
abs(mag3DSensor.getZ()) > sens) {
digitalWrite(LED_BUILTIN, HIGH); // магнит обнаружен
} else {
digitalWrite(LED_BUILTIN, LOW);
}
delay(50); // не спамим
}
Настройте sens экспериментально (зависит от расстояния, силы магнита, помех).
Шаг 7: Интегральный тест
- Разместите электромагнит рядом с 2Go-сенсором.
- 2Go → питание (USB ПК), Arduino → USB (тот же или другой ПК).
- Откройте Serial Monitor Arduino, вводите «1» и «0».
- Встроенный светодиод 2Go должен мигать в такт передаваемым битам.
- Если не работает: сблизьте магнит, уменьшите
sens, перезапустите 2Go.
Идеи для развития
- Кнопка на Arduino для автономной передачи заданного сообщения
- Подключение динамика — передача звука (очень низкое качество, но принцип)
- Модуляция не только амплитудой (вкл/выкл), но и частотой/фазой
- Использование нескольких сенсоров для MIMO
Проект открыт: GitHub.
Производственный процесс
- Понимание беспроводной интеграции MODBUS: что нужно знать
- Переход к беспроводному SCADA: проверенные методы, ключевые различия и надежные технологические опции
- Spark Microsystems представляет UWB‑трансиверы для ультра‑низкоэнергетического IoT с низкой задержкой
- Построение доступной беспроводной сети датчиков для дома
- Революция в хранилищах данных: магнитные наноструктуры с мантиями невидимости нового поколения
- Мониторинг солнечной панели в реальном времени: дешёвая система сбора данных на Arduino и Excel
- Создание надежного монитора энергии и логгера данных на Arduino — пошаговое руководство
- Логгер температуры и влажности на Arduino с DHT11 и Ethernet Shield
- USB-BLE MIDI-адаптеры на Arduino: беспроводное подключение инструментов к iOS
- Надежные дальнодействующие беспроводные сенсорные сети для удаленного мониторинга данных