Оглавление:
- Шаг 1: Необходимое оборудование..
- Шаг 2: Подключение оборудования
- Шаг 3: Код
- Шаг 4: Работа с кодом
- Шаг 5. Приложения и функции
- Шаг 6. Ресурсы для дальнейшего развития
Видео: Ориентация карты через веб-сервер: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Интернет вещей (IoT) сейчас является одной из популярных тем на планете. И он стремительно растет день ото дня с Интернетом. Интернет вещей превращает простые дома в умные дома, где всем, от фонарей до замков, можно управлять со смартфона или настольного компьютера. Это роскошь, которой хочет обладать каждый.
Мы всегда играем с инструментами, которые у нас есть, и продолжаем работать над тем, чтобы перейти к следующему этапу наших возможностей. Мы стараемся дать нашим клиентам представление о новейших технологиях и идеях. Чтобы вы могли без особых усилий превратить свой дом в умный дом и насладиться вкусом роскоши.
Сегодня мы думаем над одной из самых важных тем в IoT - ориентацией цифровых карт.
Мы создадим веб-сервер, через который мы сможем отслеживать перемещения любого устройства или объекта (за кем вы будете шпионить - решать вам;)). Вы всегда можете подумать об обновлении этого проекта до следующего уровня с некоторыми изменениями и не забудьте сообщить нам об этом в комментариях ниже.
Начнем, чем.. !!
Шаг 1: Необходимое оборудование..
1. Датчик LSM9DS0
Датчик 3-в-1 производства STMicroelectronics, LSM9DS0 представляет собой комплексную систему, включающую цифровой датчик линейного ускорения 3D, цифровой датчик угловой скорости 3D и цифровой магнитный датчик 3D. LSM9DS0 имеет полную шкалу линейного ускорения ± 2g / ± 4g / ± 6g / ± 8g / ± 16g, полную шкалу магнитного поля ± 2 / ± 4 / ± 8 / ± 12 Гс и угловую скорость ± 245 / ± 500 / ± 2000 дпс.
2. Adafruit Huzzah ESP8266
Процессор ESP8266 от Espressif - это микроконтроллер с частотой 80 МГц с полным интерфейсом WiFi (как в качестве клиента, так и в качестве точки доступа) и стеком TCP / IP с поддержкой DNS. ESP8266 - потрясающая платформа для разработки приложений Интернета вещей. ESP8266 представляет собой зрелую платформу для мониторинга и управления приложениями с использованием языка Arduino Wire и Arduino IDE.
3. Программатор USB ESP8266
его хост-адаптер ESP8266 был разработан Dcube Store специально для Adafruit Huzzah версии ESP8266, что позволяет использовать интерфейс I²C.
4. Соединительный кабель I2C.
5. Кабель мини-USB.
Кабель mini-USB Источник питания - идеальный выбор для питания Adafruit Huzzah ESP8266.
Шаг 2: Подключение оборудования
В общем, установление связей - самая легкая часть в этом проекте. Следуйте инструкциям и изображениям, и у вас не должно возникнуть проблем.
Прежде всего, возьмите Adafruit Huzzah ESP8266 и поместите на него USB-программатор (с портом I²C, обращенным внутрь). Осторожно нажмите на USB-программатор, и мы закончили этот шаг так же просто, как пирог (см. Рисунок выше).
Подключение датчика и Adafruit Huzzah ESP8266 Возьмите датчик и подключите к нему кабель I²C. Для правильной работы этого кабеля помните, что выход I²C ВСЕГДА подключается к входу I²C. То же самое нужно было сделать для Adafruit Huzzah ESP8266 с установленным над ним USB-программатором (см. Рисунок выше).
С помощью USB-программатора ESP8266 запрограммировать ESP очень легко. Все, что вам нужно сделать, это подключить датчик к USB Programmer, и все готово. Мы предпочитаем использовать этот адаптер, потому что он значительно упрощает подключение оборудования. Не беспокойтесь о том, чтобы припаять контакты ESP к датчику или прочитать схемы контактов и техническое описание. Мы можем использовать и работать с несколькими датчиками одновременно, вам просто нужно составить цепочку. Без этих программаторов USB plug and play существует большой риск неправильного подключения. Плохая проводка может убить ваш Wi-Fi, а также ваш датчик.
Примечание. Коричневый провод всегда должен следовать за заземлением (GND) между выходом одного устройства и входом другого устройства.
Питание схемы
Подключите кабель Mini USB к разъему питания Adafruit Huzzah ESP8266. Зажги его и вуаля, мы в порядке!
Шаг 3: Код
Код ESP для сенсора Adafruit Huzzah ESP8266 и LSM9DS0 доступен в нашем репозитории на github.
Прежде чем переходить к коду, убедитесь, что вы прочитали инструкции, приведенные в файле Readme, и настройте Adafruit Huzzah ESP8266 в соответствии с ними. Настройка ESP займет всего 5 минут.
Код длинный, но он представлен в простейшей форме, которую вы можете себе представить, и вам не составит труда ее понять.
Для вашего удобства вы также можете скопировать рабочий код ESP для этого датчика отсюда:
// Распространяется по свободной лицензии.// Используйте его любым способом, коммерческим или бесплатным, при условии, что он соответствует лицензиям на связанные с ним работы. // LSM9DSO // Этот код разработан для работы с мини-модулем TCS3414_I2CS I2C, доступным на dcubestore.com.
#включают
#включают
#включают
#включают
// Адрес I2C гироскопа LSM9DSO - 6A (106)
#define Addr_Gyro 0x6A // LSM9DSO Accl I2C-адрес 1E (30) #define Addr_Accl 0x1E
const char * ssid = "ваш SSID";
const char * password = "ваш пароль"; int xGyro, yGyro, zGyro, xAccl, yAccl, zAccl, xMag, yMag, zMag;
ESP8266WebServer server (80);
недействительный handleroot ()
{данные типа int без знака [6];
// Запуск передачи I2C
Wire.beginTransmission (Addr_Gyro); // Выбираем регистр управления 1 Wire.write (0x20); // Скорость передачи данных = 95 Гц, ось X, Y, Z включена, питание включено Wire.write (0x0F); // Остановка передачи I2C Wire.endTransmission ();
// Запуск передачи I2C
Wire.beginTransmission (Addr_Gyro); // Выбор регистра управления 4 Wire.write (0x23); // Полномасштабный 2000 дпс, постоянное обновление Wire.write (0x30); // Остановка передачи I2C Wire.endTransmission ();
// Запуск передачи I2C
Wire.beginTransmission (Addr_Accl); // Выбираем регистр управления 1 Wire.write (0x20); // Скорость передачи данных ускорения = 100 Гц, ось X, Y, Z включена, питание включено Wire.write (0x67); // Остановка передачи I2C на устройстве Wire.endTransmission ();
// Запуск передачи I2C
Wire.beginTransmission (Addr_Accl); // Выбор регистра управления 2 Wire.write (0x21); // Выбор полной шкалы +/- 16g Wire.write (0x20); // Остановка передачи I2C Wire.endTransmission ();
// Запуск передачи I2C
Wire.beginTransmission (Addr_Accl); // Выбираем управляющий регистр 5 Wire.write (0x24); // Магнитное высокое разрешение, скорость вывода = 50 Гц Wire.write (0x70); // Остановка передачи I2C Wire.endTransmission ();
// Запуск передачи I2C
Wire.beginTransmission (Addr_Accl); // Выбираем управляющий регистр 6 Wire.write (0x25); // Магнитная полная шкала +/- 12 Гс Wire.write (0x60); // Остановка передачи I2C Wire.endTransmission ();
// Запуск передачи I2C
Wire.beginTransmission (Addr_Accl); // Выбираем управляющий регистр 7 Wire.write (0x26); // Нормальный режим, режим магнитного непрерывного преобразования Wire.write (0x00); // Остановка передачи I2C Wire.endTransmission (); задержка (300);
for (int i = 0; i <6; i ++) {// Запустить провод передачи I2C.beginTransmission (Addr_Gyro); // Выбираем регистр данных Wire.write ((40 + i)); // Остановка передачи I2C Wire.endTransmission ();
// Запрос 1 байт данных
Wire.requestFrom (Addr_Gyro, 1);
// Чтение 6 байтов данных
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb if (Wire.available () == 1) {data = Wire.read (); }}
// Конвертируем данные
int xGyro = ((данные [1] * 256) + данные [0]); int yGyro = ((данные [3] * 256) + данные [2]); int zGyro = ((данные [5] * 256) + данные [4]);
for (int i = 0; i <6; i ++) {// Запустить провод передачи I2C.beginTransmission (Addr_Accl); // Выбираем регистр данных Wire.write ((40 + i)); // Остановка передачи I2C Wire.endTransmission ();
// Запрос 1 байт данных
Wire.requestFrom (Addr_Accl, 1);
// Чтение 6 байтов данных
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb // zAccl lsb, zAccl msb if (Wire.available () == 1) {data = Wire.read (); }}
// Конвертируем данные
int xAccl = ((данные [1] * 256) + данные [0]); int yAccl = ((данные [3] * 256) + данные [2]); int zAccl = ((данные [5] * 256) + данные [4]);
for (int i = 0; i <6; i ++) {// Запустить провод передачи I2C.beginTransmission (Addr_Accl); // Выбираем регистр данных Wire.write ((8 + i)); // Остановка передачи I2C Wire.endTransmission ();
// Запрос 1 байт данных
Wire.requestFrom (Addr_Accl, 1);
// Чтение 6 байтов данных
// xMag lsb, xMag msb, yMag lsb, yMag msb // zMag lsb, zMag msb if (Wire.available () == 1) {data = Wire.read (); }}
// Конвертируем данные
int xMag = ((данные [1] * 256) + данные [0]); int yMag = ((данные [3] * 256) + данные [2]); int zMag = ((данные [5] * 256) + данные [4]);
// Выводим данные на последовательный монитор
Serial.print («Ось вращения X:»); Serial.println (xGyro); Serial.print ("Ось вращения Y:"); Serial.println (yGyro); Serial.print ("Ось вращения Z:"); Serial.println (zGyro); Serial.print («Ускорение по оси X:»); Serial.println (xAccl); Serial.print («Ускорение по оси Y:»); Serial.println (yAccl); Serial.print («Ускорение по оси Z:»); Serial.println (zAccl); Serial.print («Магнитное поле по оси X:»); Serial.println (xMag); Serial.print («Магнитное поле по оси Y:»); Serial.println (yMag); Serial.print ("Магнитное поле по оси Z:"); Serial.println (zMag);
// Выводим данные на веб-сервер
server.sendContent ("
МАГАЗИН DCUBE
www.dcubestore.com
"" LSM9DS0 Мини-модуль датчика I2C
);
server.sendContent ("
Ось X вращения = "+ String (xGyro)); server.sendContent ("
Ось Y вращения = "+ String (yGyro)); server.sendContent ("
Ось Z вращения = "+ String (zGyro)); server.sendContent ("
Ускорение по оси X = "+ String (xAccl)); server.sendContent ("
Ускорение по оси Y = "+ String (yAccl)); server.sendContent ("
Ускорение по оси Z = "+ String (zAccl)); server.sendContent ("
Магнитное поле по оси X = "+ String (xMag)); server.sendContent ("
Магнитное поле по оси Y = "+ String (yMag)); server.sendContent ("
Магнитное поле по оси Z = "+ String (zMag)); delay (1000);}
установка void ()
{// Инициализируем связь I2C как MASTER Wire.begin (2, 14); // Инициализируем последовательную связь, устанавливаем скорость передачи = 115200 Serial.begin (115200);
// Подключаемся к сети Wi-Fi
WiFi.begin (ssid, пароль);
// Ждем подключения
в то время как (WiFi.status ()! = WL_CONNECTED) {задержка (500); Serial.print ("."); } Serial.println (""); Serial.print («Подключено к»); Serial.println (ssid);
// Получаем IP-адрес ESP8266
Serial.print ("IP-адрес:"); Serial.println (WiFi.localIP ());
// Запускаем сервер
server.on ("/", handleroot); server.begin (); Serial.println («HTTP-сервер запущен»); }
пустой цикл ()
{server.handleClient (); }
Шаг 4: Работа с кодом
Теперь загрузите (или выполните git pull) код и откройте его в среде разработки Arduino.
Скомпилируйте и загрузите код и посмотрите результат на Serial Monitor.
Примечание. Перед загрузкой убедитесь, что вы ввели в коде вашу сеть SSID и пароль.
Скопируйте IP-адрес ESP8266 из Serial Monitor и вставьте его в свой веб-браузер. Вы увидите веб-страницу с осью вращения, ускорением и показаниями магнитного поля по 3 осям.
Выходные данные датчика на последовательном мониторе и веб-сервере показаны на рисунке выше.
Шаг 5. Приложения и функции
LSM9DS0 представляет собой комплексную систему с цифровым датчиком линейного ускорения 3D, цифровым датчиком угловой скорости 3D и цифровым магнитным датчиком 3D. Измеряя эти три свойства, вы можете получить много знаний о движении объекта. Измеряя силу и направление магнитного поля Земли с помощью магнитометра, вы можете приблизительно определить свой курс. Акселерометр в вашем телефоне может измерять направление силы тяжести и оценивать ориентацию (портретная, альбомная, плоская и т. Д.). Квадрокоптеры со встроенными гироскопами могут следить за внезапными кренами или качками. Мы можем использовать это в глобальной системе позиционирования (GPS).
Некоторые другие приложения включают внутреннюю навигацию, интеллектуальные пользовательские интерфейсы, расширенное распознавание жестов, игровые устройства и устройства ввода виртуальной реальности и т. Д.
С помощью ESP8266 мы можем увеличить его емкость до большей длины. Мы можем контролировать наши устройства и отслеживать их производительность с наших настольных компьютеров и мобильных устройств. Мы можем хранить и управлять данными в Интернете, а также изучать их в любое время на предмет изменений. Другие приложения включают домашнюю автоматизацию, ячеистую сеть, промышленное беспроводное управление, радионяни, сенсорные сети, носимую электронику, устройства с определением местоположения Wi-Fi, маячки системы определения местоположения Wi-Fi.
Шаг 6. Ресурсы для дальнейшего развития
Для получения дополнительной информации о LSM9DS0 и ESP8266 перейдите по ссылкам ниже:
- Лист данных датчика LSM9DS0
- Схема подключения LSM9DS0
- ESP8266 Лист данных
Рекомендуемые:
Управление Led через приложение Blynk с помощью Nodemcu через Интернет: 5 шагов
Управление светодиодом через приложение Blynk с помощью Nodemcu через Интернет: Привет всем, сегодня мы покажем вам, как вы можете управлять светодиодом с помощью смартфона через Интернет
Извлечение и отображение данных с любого веб-сайта через Wi-Fi (индикатор северного сияния) с помощью NodeMcu: 6 шагов
Извлечение и отображение данных с любого веб-сайта через Wi-Fi (индикатор северного сияния) с помощью NodeMcu: Моя мотивация: я видел МНОГО инструкций по настройке / использованию NodeMCU (построенного на модуле ESP8266) для создания проектов IoT (Интернет вещей) . Однако очень немногие из этих руководств содержали все детали / код / диаграммы для очень новичков
Как встроить карты Google на веб-сайт: 4 шага
Как встроить карты Google на веб-сайт: проголосуйте за меня в конкурсе Maps! Недавно я создал веб-сайт, который использует карты Google. Встраивать Google Maps на мой веб-сайт было довольно просто и не так сложно. В этой инструкции я покажу вам, как легко встроить Googl
Управление устройствами через Интернет через браузер. (IoT): 6 шагов
Управление устройствами через Интернет через браузер. (IoT): в этой инструкции я покажу вам, как вы можете управлять такими устройствами, как светодиоды, реле, двигатели и т. Д., Через Интернет через веб-браузер. И вы можете безопасно получить доступ к элементам управления с любого устройства. Я использовал здесь веб-платформу RemoteMe.org visit
Регистратор данных температуры и влажности с Arduino на телефон Android с модулем SD-карты через Bluetooth: 5 шагов
Регистратор данных температуры и влажности с Arduino на телефон Android с модулем SD-карты через Bluetooth: Привет всем, это моя первая инструкция, надеюсь, я помогу сообществу производителей, так как она мне очень понравилась. Часто мы используем датчики в наших проектах, но находим способ собирать данные, хранить их и немедленно передавать на телефоны или другие устройства