Съдържание:

Ориентация на картата през уеб сървър: 6 стъпки
Ориентация на картата през уеб сървър: 6 стъпки

Видео: Ориентация на картата през уеб сървър: 6 стъпки

Видео: Ориентация на картата през уеб сървър: 6 стъпки
Видео: Свидание в 16 vs 26 лет 😨😳 2024, Ноември
Anonim
Ориентация на картата през уеб сървър
Ориентация на картата през уеб сървър

Интернет на нещата, (IoT) е една от популярните теми на планетата в момента. И той нараства бързо с всеки изминал ден с интернет. Интернет на нещата променя обикновените домове в интелигентни домове, където всичко от вашите светлини до бравите ви може да се контролира от вашия смартфон или десктоп. Това е луксът, който всеки иска да притежава.

Винаги играем с инструментите, които имаме, и продължаваме да работим, за да преминем към следващата стъпка от нашите граници. Опитваме се да дадем на нашите клиенти визия за най -новите технологии и идеи. Така че, можете да превърнете дома си в интелигентни домове и да се насладите на вкуса на лукса без много усилия.

Днес мислим да работим по една от най -важните теми в IoT - ориентация на цифрова карта.

Ще изградим уеб сървър, чрез който можем да наблюдаваме движенията на всяко устройство или нещо (зависи от вас, кого ще шпионирате;)). Винаги можете да мислите за надграждане на този проект до следващото ниво с някои модификации и не забравяйте да ни кажете в коментарите по -долу.

Да започнем от това.. !!

Стъпка 1: Необходимо оборудване..

Необходимо оборудване.. !!
Необходимо оборудване.. !!
Необходимо оборудване.. !!
Необходимо оборудване.. !!
Необходимо оборудване.. !!
Необходимо оборудване.. !!
Необходимо оборудване.. !!
Необходимо оборудване.. !!

1. Сензор LSM9DS0

Сензорът 3 в 1, произведен от STMicroelectronics, LSM9DS0 е система в пакет, включващ 3D цифров сензор за линейно ускорение, 3D цифров сензор за ъглова скорост и 3D цифров магнитен сензор. LSM9DS0 има пълна скала на линейно ускорение от ± 2 g/± 4 g/± 6 g/± 8 g/± 16 g, пълномащабно магнитно поле от ± 2/± 4/± 8/± 12 гауса и ъглова скорост от ± 245 /± 500/± 2000 dps.

2. Adafruit Huzzah ESP8266

Процесорът ESP8266 от Espressif е 80 MHz микроконтролер с пълен WiFi интерфейс (като клиент и точка за достъп) и TCP/IP стек с поддръжка на DNS. ESP8266 е невероятна платформа за разработка на приложения за IoT. ESP8266 предоставя зряла платформа за наблюдение и управление на приложения, използвайки Arduino Wire Language и Arduino IDE.

3. ESP8266 USB програмист

неговият хост адаптер ESP8266 е проектиран специално от Dcube Store за версията Adafruit Huzzah на ESP8266, позволяваща интерфейса I²C.

4. Свързващ кабел I2C

5. Мини USB кабел

Захранването с мини USB кабел е идеален избор за захранване на Adafruit Huzzah ESP8266.

Стъпка 2: Хардуерни връзки

Хардуерни връзки
Хардуерни връзки
Хардуерни връзки
Хардуерни връзки
Хардуерни връзки
Хардуерни връзки

Като цяло създаването на връзки е най -лесната част в този проект. Следвайте инструкциите и изображенията и не би трябвало да имате проблеми.

Първо вземете Adafruit Huzzah ESP8266 и поставете USB програмист (с Inward Facing I²C порт) върху него. Натиснете внимателно USB програмиста и приключваме с тази стъпка толкова лесно, колкото баницата (вижте снимката по -горе).

Свързване на сензора и Adafruit Huzzah ESP8266 Вземете сензора и свържете кабела I²C с него. За правилна работа на този кабел, моля, запомнете I²C изхода ВИНАГИ се свързва към I²C входа. Същото трябваше да се следва и за Adafruit Huzzah ESP8266 с USB програмист, монтиран над него (Вижте снимката по -горе).

С помощта на ESP8266 USB програмист е много лесно да програмирате ESP. Всичко, което трябва да направите, е да включите сензора в USB програмист и сте готови. Предпочитаме да използваме този адаптер, защото улеснява свързването на хардуера. Не се притеснявайте за запояване на щифтовете на ESP към сензора или четене на диаграмите на щифтовете и листа с данни. Можем да използваме и работим по няколко сензора едновременно, просто трябва да направите верига. Без тези Plug and Play USB програмист има голям риск от неправилно свързване. Лошото окабеляване може да убие вашия wifi, както и сензора ви.

Забележка: Кафявият проводник винаги трябва да следва заземяващата (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.

#включва

#включва

#включва

#включва

// LSM9DSO Gyro I2C адрес е 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 сървър (80);

void handleroot ()

{беззнакови int данни [6];

// Стартиране на I2C предаване

Wire.beginTransmission (Addr_Gyro); // Изберете контролен регистър 1 Wire.write (0x20); // Скорост на предаване на данни = 95Hz, X, Y, Z-ос е разрешена, захранване по Wire.write (0x0F); // Спиране на I2C предаване Wire.endTransmission ();

// Стартиране на I2C предаване

Wire.beginTransmission (Addr_Gyro); // Изберете контролен регистър 4 Wire.write (0x23); // Пълномащабен 2000 dps, непрекъснато актуализиране Wire.write (0x30); // Спиране на I2C предаване Wire.endTransmission ();

// Стартиране на I2C предаване

Wire.beginTransmission (Addr_Accl); // Изберете контролен регистър 1 Wire.write (0x20); // Скорост на предаване на данни = 100Hz, 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); // Магнитна висока разделителна способност, скорост на изходните данни = 50Hz Wire.write (0x70); // Спиране на I2C предаване Wire.endTransmission ();

// Стартиране на I2C предаване

Wire.beginTransmission (Addr_Accl); // Изберете контролен регистър 6 Wire.write (0x25); // Магнитен пълен мащаб +/- 12 gauss 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 предаване Wire.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 предаване Wire.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 предаване Wire.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-ос = " + низ (zMag)); забавяне (1000);}

void setup ()

{// Инициализирайте I2C комуникацията като MASTER Wire.begin (2, 14); // Инициализира серийна комуникация, зададена скорост на предаване = 115200 Serial.begin (115200);

// Свързване към WiFi мрежа

WiFi.begin (ssid, парола);

// Изчакайте връзка

while (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 сървърът е стартиран"); }

void loop ()

{server.handleClient (); }

Стъпка 4: Работа на Code

Работа на Code
Работа на Code

Сега изтеглете (или git изтеглете) кода и го отворете в Arduino IDE.

Компилирайте и качете кода и вижте изхода на Serial Monitor.

Забележка: Преди да качите, уверете се, че сте въвели вашата SSID мрежа и парола в кода.

Копирайте IP адреса на ESP8266 от серийния монитор и го поставете във вашия уеб браузър. Ще видите уеб страница с ос на въртене, ускорение и отчитане на магнитното поле в 3-оста.

Изходът на сензора на сериен монитор и уеб сървър е показан на горната снимка.

Стъпка 5: Приложения и функции

LSM9DS0 е система в пакет, включваща 3D цифров сензор за линейно ускорение, 3D цифров сензор за ъглова скорост и 3D цифров магнитен сензор. Чрез измерване на тези три свойства можете да получите много познания за движението на обект. Измервайки силата и посоката на магнитното поле на Земята с магнитометър, можете да приближите курса си. Акселерометърът в телефона ви може да измерва посоката на силата на гравитацията и да изчислява ориентацията (портретна, пейзажна, плоска и т.н.). Квадрокоптерите с вградени жироскопи могат да се грижат за внезапни търкаляне или височини. Можем да използваме това в глобалната система за позициониране (GPS).

Още някои приложения включват вътрешна навигация, интелигентни потребителски интерфейси, разширено разпознаване на жестове, устройства за въвеждане на игри и виртуална реалност и др.

С помощта на ESP8266 можем да увеличим капацитета му до по -голяма дължина. Можем да контролираме нашите уреди и да наблюдаваме производителността от нашите настолни и мобилни устройства. Можем да съхраняваме и управляваме данните онлайн и да ги изучаваме по всяко време за промени. Още приложения включват Домашна автоматизация, Мрежова мрежа, Индустриален безжичен контрол, Бебешки монитори, Сензорни мрежи, Носеща електроника, Wi-Fi устройства, разпознаващи местоположението, Wi-Fi позиционни системи маяци.

Стъпка 6: Ресурси за напредване

За повече информация относно LSM9DS0 и ESP8266, разгледайте връзките по -долу:

  • LSM9DS0 Сензорен лист с данни
  • LSM9DS0 Схема на свързване
  • Информационен лист ESP8266

Препоръчано: