Мазмұны:

Веб -сервер арқылы картаны бағдарлау: 6 қадам
Веб -сервер арқылы картаны бағдарлау: 6 қадам

Бейне: Веб -сервер арқылы картаны бағдарлау: 6 қадам

Бейне: Веб -сервер арқылы картаны бағдарлау: 6 қадам
Бейне: Сүйегі жоқ қуырылған мөңке, әжем айтқан 3 жол 2024, Қараша
Anonim
Веб -сервер арқылы картаны бағдарлау
Веб -сервер арқылы картаны бағдарлау

Интернет заттары (IoT) - қазіргі уақытта планетадағы ең танымал тақырыптардың бірі. Сонымен қатар, ол күн сайын Интернеттің көмегімен тез дамып келеді. Заттар Интернеті қарапайым үйлерді ақылды үйлерге ауыстырады, онда сіздің шамдарыңыздан құлыптарыңызға дейін смартфоннан немесе жұмыс үстелінен басқаруға болады. Бұл әркім иеленгісі келетін сән -салтанат.

Біз әрқашан қолымызда бар құралдармен ойнаймыз және өз шектеулеріміздің келесі сатысына өту үшін жұмысты жалғастырамыз. Біз өз клиентімізге жаңа технологиялар мен идеялар туралы түсінік беруге тырысамыз. Осылайша, сіз өз үйіңізді ақылды үйлерге айналдыра аласыз және көп күш жұмсамай, сән -салтанаттың дәмін тата аласыз.

Бүгін біз IoT -тегі маңызды тақырыптардың бірі - Цифрлық картаны бағдарлау бойынша жұмыс жасауды ойлаймыз.

Біз веб -сервер құрамыз, ол арқылы кез келген құрылғының немесе заттың қозғалысын бақылай аламыз (бұл сізге шпиондық жасайтын сізге байланысты);). Сіз бұл жобаны кейбір өзгерістермен келесі деңгейге көтеру туралы ойлана аласыз және бізге төмендегі түсініктемелерде айтуды ұмытпаңыз.

Одан бастайық.. !!

1 -қадам: Бізге қажет жабдықтар..

Бізге керек құрал.. !!
Бізге керек құрал.. !!
Бізге керек құрал.. !!
Бізге керек құрал.. !!
Бізге керек құрал.. !!
Бізге керек құрал.. !!
Бізге керек құрал.. !!
Бізге керек құрал.. !!

1. LSM9DS0 сенсоры

STMicroelectronics LSM9DS0 шығарған 3-і 1-дегі сенсор-бұл 3D цифрлық сызықтық үдеу датчигі, 3D сандық бұрыштық жылдамдық сенсоры және 3D сандық магниттік сенсоры бар жүйе жиынтығы. LSM9DS0 ± 2g/± 4g/± 6g/± 8g/± 16g сызықтық үдеудің толық шкаласы, ± 2/± 4/± 8/± 12 гаусс магнит өрісінің толық шкаласы және бұрыштық жиілігі ± 245. /± 500/± 2000 нүкте/мин.

2. Adafruit Huzzah ESP8266

Espressif компаниясының ESP8266 процессоры 80 МГц микроконтроллер болып табылады, ол толық Wi-Fi (клиент ретінде де, кіру нүктесі ретінде де) және DNS қолдауымен TCP/IP стегі бар. ESP8266 - бұл IoT қосымшаларын әзірлеуге арналған керемет платформа. ESP8266 Arduino Wire Language және Arduino IDE көмегімен қосымшаларды бақылау мен басқаруға арналған жетілдірілген платформаны ұсынады.

3. ESP8266 USB бағдарламалаушысы

оның ESP8266 хост адаптері I²C интерфейсіне мүмкіндік беретін ESP8266 Adafruit Huzzah нұсқасы үшін Dcube Store арнайы жасалған.

4. I2C қосылатын кабель

5. Шағын USB кабелі

Шағын USB кабелі Қуат көзі - Adafruit Huzzah ESP8266 қуатын қосу үшін тамаша таңдау.

2 -қадам: Аппараттық қосылулар

Аппараттық қосылулар
Аппараттық қосылулар
Аппараттық қосылулар
Аппараттық қосылулар
Аппараттық қосылулар
Аппараттық қосылулар

Жалпы, байланыс орнату - бұл жобаның ең оңай бөлігі. Нұсқаулар мен суреттерді орындаңыз, сонда сізде проблемалар болмауы керек.

Алдымен Adafruit Huzzah ESP8266 алыңыз және оған USB бағдарламашысын (ішке қарайтын I²C порты бар) қойыңыз. USB бағдарламашысын ақырын басыңыз, сонда біз бұл қадамды бәліш сияқты жасаймыз (жоғарыдағы суретті қараңыз).

Сенсор мен Adafruit Huzzah ESP8266 қосылымы Сенсорды алыңыз және онымен I²C кабелін қосыңыз. Бұл кабельдің дұрыс жұмыс істеуі үшін I²C шығысы әрқашан I²C кірісіне қосылатынын ұмытпаңыз. USB бағдарламашысы орнатылған Adafruit Huzzah ESP8266 үшін де осылай істеу керек болды (жоғарыдағы суретті қараңыз).

ESP8266 USB бағдарламашысының көмегімен ESP бағдарламалау өте оңай. Сенсорды USB бағдарламашысына қосу жеткілікті, және сіз баруға дайынсыз. Біз бұл адаптерді қолданғанды жөн көреміз, себебі бұл жабдықты қосуды айтарлықтай жеңілдетеді. Сенсорға ESP түйреуіштерін дәнекерлеу немесе түйреуіштер диаграммалары мен деректер кестесін оқу туралы алаңдамаңыз. Біз бір мезгілде бірнеше датчиктерді қолдана аламыз және олармен жұмыс жасай аламыз, сізге тек тізбек жасау керек. USB қосқышы мен қосқышы болмаса, қате қосылу қаупі бар. Нашар сым сенсорды ғана емес, Wi -Fi -ны да өлтіруі мүмкін.

Ескертпе: қоңыр сым әрқашан бір құрылғының шығысы мен басқа құрылғының кірісі арасындағы Ground (GND) байланысын ұстануы керек.

Электр тізбегінің қуаты

Mini USB кабелін Adafruit Huzzah ESP8266 қуат ұясына қосыңыз. Жарықтандырыңыз және воила, біз баруға дайынбыз!

3 -қадам: код

Код
Код

Adafruit Huzzah ESP8266 мен LSM9DS0 сенсорының ESP коды біздің github репозиторийінде қол жетімді.

Кодқа өтпес бұрын, Readme файлында берілген нұсқауларды оқып шығыңыз және оған сәйкес Adafruit Huzzah ESP8266 орнатыңыз. ESP орнату үшін бар болғаны 5 минут қажет.

Код ұзын, бірақ ол сіз ойлағандай қарапайым түрде және оны түсіну қиын болмайды.

Ыңғайлы болу үшін осы сенсордың жұмыс ESP кодын мына жерден көшіруге болады:

// Ерікті лицензиямен таратылады.// Егер сіз онымен байланысты жұмыстардың лицензиясына сәйкес келсе, оны өзіңіз қалаған түрде пайдаланыңыз немесе тегін пайдаланыңыз. // LSM9DSO // Бұл код dcubestore.com сайтынан қолжетімді TCS3414_I2CS I2C шағын модулімен жұмыс істеуге арналған.

#қосу

#қосу

#қосу

#қосу

// LSM9DSO Gyro I2C мекенжайы - 6А (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);

бос өңдеуші ()

{unsigned int data [6];

// I2C берілуін бастау

Wire.beginTransmission (Addr_Gyro); // Басқару регистрін таңдаңыз 1 Wire.write (0x20); // Деректер жиілігі = 95 Гц, X, Y, Z осі қосылған, Wire.write қосулы (0x0F); // I2C Transmission Wire.endTransmission тоқтату ();

// I2C берілуін бастау

Wire.beginTransmission (Addr_Gyro); // Басқару регистрін таңдаңыз 4 Wire.write (0x23); // Толық масштабтағы 2000 dps, Wire.write үздіксіз жаңартылуы (0x30); // I2C Transmission Wire.endTransmission тоқтату ();

// I2C берілуін бастау

Wire.beginTransmission (Addr_Accl); // Басқару регистрін таңдаңыз 1 Wire.write (0x20); // Деректерді жеделдету жылдамдығы = 100 Гц, X, Y, Z-осі қосылған, Wire.write қосулы (0x67); // Wire.endTransmission () құрылғысында I2C берілуін тоқтату;

// I2C берілуін бастау

Wire.beginTransmission (Addr_Accl); // Басқару регистрін таңдаңыз 2 Wire.write (0x21); // Толық масштабты таңдау +/- 16g Wire.write (0x20); // I2C Transmission Wire.endTransmission тоқтату ();

// I2C берілуін бастау

Wire.beginTransmission (Addr_Accl); // Басқару регистрін таңдаңыз 5 Wire.write (0x24); // Магниттік ажыратымдылығы жоғары, шығыс деректерінің жиілігі = 50 Гц Wire.write (0x70); // I2C Transmission Wire.endTransmission тоқтату ();

// I2C берілуін бастау

Wire.beginTransmission (Addr_Accl); // Басқару регистрін таңдаңыз 6 Wire.write (0x25); // Магнитті толық масштабты +/- 12 гаусс Wire.write (0x60); // I2C Transmission Wire.endTransmission тоқтату ();

// I2C берілуін бастау

Wire.beginTransmission (Addr_Accl); // Басқару регистрін таңдаңыз 7 Wire.write (0x26); // Қалыпты режим, магнитті үздіксіз түрлендіру режимі Wire.write (0x00); // I2C Transmission Wire.endTransmission тоқтату (); кешіктіру (300);

for (int i = 0; i <6; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr_Gyro); // Wire.write деректер регистрін таңдау ((40 + i)); // I2C Transmission 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 Transmission Wire.beginTransmission бастау (Addr_Accl); // Wire.write деректер регистрін таңдау ((40 + i)); // I2C Transmission 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 Transmission Wire.beginTransmission бастау (Addr_Accl); // Wire.write деректер регистрін таңдаңыз ((8 + i)); // I2C Transmission 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-Axis-те берілген магниттік:»); Serial.println (zMag);

// Деректерді веб -серверге шығару

server.sendContent («

DCUBE ДҮКЕНІ

www.dcubestore.com

«» LSM9DS0 сенсор I2C шағын модулі

);

server.sendContent («

Айналу осі = « + String (xGyro)); server.sendContent (»

Y-айналу осі = « + String (yGyro)); server.sendContent (»

Z-айналу осі = « + String (zGyro)); server.sendContent (»

X-Axis үдеуі = « + String (xAccl)); server.sendContent (»

Y осінде үдеу = « + String (yAccl)); server.sendContent (»

Z-осіндегі үдеу = « + String (zAccl)); server.sendContent (»

X-Axis-те берілген магниттік = « + String (xMag)); server.sendContent (»

Y-Axis-те берілген магниттік = « + String (yMag)); server.sendContent (»

Магниттік Z-Axis = « + String (zMag)); кешігу (1000);}

жарамсыз орнату ()

{// 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);

// ESP8266 IP мекенжайын алыңыз

Serial.print («IP мекенжайы:»); Serial.println (WiFi.localIP ());

// Серверді іске қосыңыз

server.on («/», өңдегіш); server.begin (); Serial.println («HTTP сервері іске қосылды»); }

бос цикл ()

{server.handleClient (); }

4 -қадам: кодпен жұмыс

Кодекспен жұмыс
Кодекспен жұмыс

Енді кодты жүктеңіз (немесе git pull) және оны Arduino IDE -де ашыңыз.

Кодты құрастырыңыз және жүктеңіз және сериялық монитордағы шығуды қараңыз.

Ескерту: Жүктеу алдында кодқа SSID желісі мен құпия сөзді енгізгеніңізге көз жеткізіңіз.

Сериялық монитордан ESP8266 IP мекенжайын көшіріп, веб -шолғышқа қойыңыз. Сіз 3 осьте айналу осі, үдеуі және магнит өрісінің көрсеткіштері бар веб-бетті көресіз.

Сериялық монитор мен веб -сервердегі сенсордың шығысы жоғарыдағы суретте көрсетілген.

5 -қадам: Қолданбалар мен мүмкіндіктер

LSM9DS0-бұл 3D сандық сызықтық үдеу датчигі, 3D сандық бұрыштық жылдамдық сенсоры және 3D сандық магниттік сенсоры бар жүйе жиынтығы. Осы үш қасиетті өлшей отырып, сіз объектінің қозғалысы туралы көп білім ала аласыз. Магнитометр көмегімен Жердің магнит өрісінің күші мен бағытын өлшей отырып, сіз өзіңіздің бағытты шамалай аласыз. Телефоныңыздағы акселерометр ауырлық күшінің бағытын өлшеп, бағдарын бағалай алады (портрет, пейзаж, жазық және т.б.). Кірістірілген гироскоптары бар квадрокоптер кенеттен орамдарды немесе қадамдарды байқай алады. Біз мұны жаһандық позициялау жүйесінде (GPS) пайдалана аламыз.

Кейбір басқа қосымшаларға үй ішінде навигация, ақылды пайдаланушы интерфейстері, кеңейтілген қимыл тану, ойын және виртуалды шындықты енгізу құрылғылары және т.

ESP8266 көмегімен оның сыйымдылығын ұзартуға болады. Біз өз құрылғыларымызды басқара аламыз және жұмыс үстелінің және мобильді құрылғылардың өнімділігін бақылай аламыз. Біз деректерді желіде сақтай және басқара аламыз және оларды өзгерту үшін кез келген уақытта зерттей аламыз. Қосымша қосымшаларға үйді автоматтандыру, торлы желі, өндірістік сымсыз басқару, нәресте мониторлары, сенсорлық желілер, тозуға болатын электроника, Wi-Fi орналасқан жерді білетін құрылғылар, Wi-Fi орналасу жүйесі маяктары кіреді.

6 -қадам: Әрі қарай жүруге арналған ресурстар

LSM9DS0 және ESP8266 туралы қосымша ақпарат алу үшін төмендегі сілтемелерді қараңыз:

  • LSM9DS0 сенсорлық мәліметтер парағы
  • LSM9DS0 сымдарының диаграммасы
  • ESP8266 мәліметтер парағы

Ұсынылған: