Агуулгын хүснэгт:
- Алхам 1: Бидэнд хэрэгтэй тоног төхөөрөмж..
- Алхам 2: Тоног төхөөрөмжийн холболт
- Алхам 3: Код
- Алхам 4: Кодын ажил
- Алхам 5: Програм ба онцлог
- Алхам 6: Цаашид явах эх сурвалж
Видео: Вэб серверээр дамжуулан газрын зургийн чиглэл: 6 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
Интернетийн юмс (IoT) нь дэлхий дээрх хамгийн алдартай сэдвүүдийн нэг юм. Мөн интернэтийн тусламжтайгаар өдрөөс өдөрт хурдацтай хөгжиж байна. Зүйлийн интернет нь энгийн байшинг ухаалаг гэр болгон өөрчилж байгаа бөгөөд таны гэрлээс цоож хүртэлх бүх зүйлийг ухаалаг гар утас эсвэл ширээний компьютерээс удирдах боломжтой юм. Энэ бол хүн бүрийн эзэмшихийг хүсдэг тансаг хэрэглээ юм.
Бид үргэлж авсан багаж хэрэгслээрээ тоглож, хязгаарынхаа дараагийн алхам руу үргэлжлүүлэн ажиллах болно. Бид үйлчлүүлэгчиддээ хамгийн сүүлийн үеийн технологи, санаануудын талаар ойлголт өгөхийг хичээдэг. Тиймээс та маш их хүчин чармайлт гаргахгүйгээр байшингаа ухаалаг байшин болгож, тансаг амтыг эдлэх боломжтой болно.
Өнөөдөр бид IoT -ийн хамгийн чухал сэдвүүдийн нэг болох дижитал газрын зургийн чиглэл дээр ажиллахаар бодож байна.
Бид ямар ч төхөөрөмж, зүйлийн хөдөлгөөнийг хянах боломжтой вэб сервер бүтээх болно. Та энэ төслийг зарим өөрчлөлтөөр дараагийн шатанд шилжүүлэх талаар үргэлж бодож болох бөгөөд доорх сэтгэгдлүүдэд бидэнд хэлэхээ бүү мартаарай.
Юунаас эхэлье.. !!
Алхам 1: Бидэнд хэрэгтэй тоног төхөөрөмж..
1. LSM9DS0 мэдрэгч
STMicroelectronics-ийн үйлдвэрлэсэн LSM9DS0 нь 3-in-1-ийн мэдрэгч нь 3D дижитал шугаман хурдатгалын мэдрэгч, 3D дижитал өнцгийн хурд мэдрэгч, 3D дижитал соронзон мэдрэгчийг багтаасан систем юм. LSM9DS0 нь ± 2g/± 4g/± 6g/± 8g/± 16g шугаман хурдатгалын масштабтай, соронзон орны бүрэн масштабтай ± 2/± 4/± 8/± 12 гаусс, өнцгийн хурд нь ± 245 байна. /± 500/± 2000 dps.
2. Adafruit Huzzah ESP8266
Espressif-ийн ESP8266 процессор нь 80 МГц-ийн микроконтроллер бөгөөд бүрэн WiFi урд талын (үйлчлүүлэгч болон хандалтын цэгийн хувьд), мөн DNS дэмжлэгтэй TCP/IP стектэй. ESP8266 бол IoT програм хөгжүүлэх гайхалтай платформ юм. ESP8266 нь Arduino Wire Language болон Arduino IDE ашиглан програмуудыг хянах, хянах төгс платформыг санал болгодог.
3. ESP8266 USB програмист
түүний ESP8266 хост адаптерийг IcC интерфэйсийг зөвшөөрдөг ESP8266 -ийн Adafruit Huzzah хувилбарын Dcube Store тусгайлан бүтээсэн болно.
4. I2C холбох кабель
5. Mini USB кабель
Мини 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 програмист суурилуулсан байх ёстой (дээрх зургийг үзнэ үү).
ESP8266 USB програмистын тусламжтайгаар ESP програмчлахад маш хялбар байдаг. Мэдрэгчийг USB програмист руу залгахад л хангалттай. Тоног төхөөрөмжийг холбоход илүү хялбар болгодог тул бид энэ адаптерийг ашиглахыг илүүд үздэг. ESP -ийн тээглүүрийг мэдрэгч рүү гагнах, зүү диаграм, мэдээллийн хуудсыг унших талаар санаа зовох хэрэггүй. Бид олон мэдрэгчийг нэгэн зэрэг ашиглаж, ажиллах боломжтой, та зүгээр л гинж хийх хэрэгтэй. Эдгээр USB залгуур, тоглуулагч байхгүй бол буруу холболт хийх эрсдэл өндөр байна. Муу утас нь таны wifi болон мэдрэгчийг алж болзошгүй.
Тэмдэглэл: Хүрэн утас нь нэг төхөөрөмжийн гаралт ба өөр төхөөрөмжийн оролтын хоорондох Ground (GND) холболтыг үргэлж дагаж байх ёстой.
Хэлхээний хүчдэл
Adafruit Huzzah ESP8266 -ийн цахилгаан залгуурт Mini USB кабелийг залгаарай. Үүнийг асаагаад voila, бид явахад таатай байна!
Алхам 3: Код
Adafruit Huzzah ESP8266 ба LSM9DS0 мэдрэгчийн ESP кодыг манай github репозитороос авах боломжтой.
Код руу орохын өмнө Readme файлд өгсөн зааврыг уншиж, үүний дагуу Adafruit Huzzah ESP8266 -ийг тохируулаарай. ESP -ийг тохируулахад ердөө 5 минут болно.
Код нь урт боловч таны төсөөлж буй хамгийн энгийн хэлбэрээр хийгдсэн бөгөөд үүнийг ойлгоход ямар ч бэрхшээл гарахгүй.
Тохиромжтой болгохын тулд та энэ мэдрэгчийн ESP кодыг эндээс хуулж авах боломжтой.
// Хүсэл зоригийн лицензээр тараагдсан болно. // LSM9DSO // Энэ код нь dcubestore.com дээрээс авах боломжтой TCS3414_I2CS I2C Mini модультай ажиллахад зориулагдсан болно.
#оруулах
#оруулах
#оруулах
#оруулах
// 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); // Мэдээллийн хурд = 95Hz, X, Y, Z-Axis идэвхжсэн, 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); // Хурдатгалын өгөгдлийн хурд = 100Hz, X, Y, Z-Axis идэвхжсэн, 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); // Соронзон өндөр нарийвчлалтай, гаралтын өгөгдлийн хурд = 50Hz 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 ++) {// 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 ++) {// Start 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 ++) {// Start 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-Axis дахь хурдатгал:"); Serial.println (xAccl); Serial.print ("Y-Axis дахь хурдатгал:"); Serial.println (yAccl); Serial.print ("Z-Axis дахь хурдатгал:"); Serial.println (zAccl); Serial.print ("X-Axis дахь соронзон орон:"); Serial.println (xMag); Serial.print ("Y тэнхлэг дэх соронзон орон:"); Serial.println (yMag); Serial.print ("Соронзон Z тэнхлэгт оруулсан:"); Serial.println (zMag);
// Вэб сервер рүү өгөгдөл гаргадаг
server.sendContent ("
DCUBE STORE
www.dcubestore.com
"" LSM9DS0 мэдрэгч I2C мини модуль
);
server.sendContent ("
X тэнхлэгийн эргэлтийн тэнхлэг = " + String (xGyro)); server.sendContent ("
Y-Эргэлтийн тэнхлэг = " + String (yGyro)); server.sendContent ("
Z-Эргэлтийн тэнхлэг = " + String (zGyro)); server.sendContent ("
X-Axis дахь хурдатгал = " + String (xAccl)); server.sendContent ("
Y-Axis дахь хурдатгал = " + String (yAccl)); server.sendContent ("
Z-Axis дахь хурдатгал = " + String (zAccl)); server.sendContent ("
X-Axis-д оруулсан соронзон = " + String (xMag)); server.sendContent ("
Y-Axis-д оруулсан соронз = " + String (yMag)); server.sendContent ("
Соронзон Z тэнхлэгт бичигдсэн = " + 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 ("/", handleroot); server.begin (); Serial.println ("HTTP сервер эхэлсэн"); }
хоосон давталт ()
{server.handleClient (); }
Алхам 4: Кодын ажил
Одоо кодыг татаж (эсвэл git pull) аваад Arduino IDE дээр нээнэ үү.
Кодыг эмхэтгэн байршуулж, гаралтыг Serial Monitor дээрээс үзнэ үү.
Тэмдэглэл: Байршуулахаасаа өмнө кодонд SSID сүлжээ, нууц үгээ оруулна уу.
Цуваа монитороос ESP8266 -ийн IP хаягийг хуулж, вэб хөтөч дээрээ буулгана уу. Та 3 тэнхлэгт эргэх тэнхлэг, хурдатгал, соронзон орны уншлага бүхий вэб хуудсыг харах болно.
Цуваа монитор болон вэб сервер дээрх мэдрэгчийн гаралтыг дээрх зурагт үзүүлэв.
Алхам 5: Програм ба онцлог
LSM9DS0 нь 3D дижитал шугаман хурдатгалын мэдрэгч, 3D дижитал өнцгийн хурд мэдрэгч, 3D дижитал соронзон мэдрэгч бүхий системийн багц юм. Эдгээр гурван шинж чанарыг хэмжсэнээр та объектын хөдөлгөөний талаар маш их мэдлэг олж авах боломжтой. Дэлхийн соронзон орны хүч ба чиглэлийг соронзон хэмжигчээр хэмжихийн тулд та чиглэлээ ойролцоогоор тодорхойлж болно. Таны утасны акселерометр нь таталцлын хүчний чиглэлийг хэмжиж, чиг баримжаагаа (хөрөг, ландшафт, хавтгай гэх мэт) тооцоолох боломжтой. Баригдсан гироскоптой квадкоптер нь гэнэт өнхрөх эсвэл давирхайг харах боломжтой. Бид үүнийг дэлхийн байршил тогтоох системд (GPS) ашиглаж болно.
Зарим нэмэлт програмууд нь доторх навигаци, ухаалаг хэрэглэгчийн интерфэйс, дэвшилтэт дохио таних, тоглоом, виртуал бодит оролтын төхөөрөмж гэх мэт орно.
ESP8266 -ийн тусламжтайгаар бид түүний хүчин чадлыг илүү урт болгож нэмэгдүүлэх боломжтой. Бид цахилгаан хэрэгсэлээ хянаж, ширээний болон хөдөлгөөнт төхөөрөмжөөс гүйцэтгэлийг хянах боломжтой. Бид өгөгдлийг онлайнаар хадгалах, удирдах, хүссэн үедээ өөрчлөх боломжтой. Илүү олон програмууд нь гэрийн автоматжуулалт, торон сүлжээ, үйлдвэрлэлийн утасгүй удирдлага, хүүхдийн хяналт, мэдрэгчийн сүлжээ, өмсдөг электроник, Wi-Fi байршлыг мэддэг төхөөрөмж, Wi-Fi байрлалын системийн гэрэлт цамхаг юм.
Алхам 6: Цаашид явах эх сурвалж
LSM9DS0 ба ESP8266 -ийн талаар нэмэлт мэдээлэл авахыг хүсвэл доорх линкүүдийг үзнэ үү.
- LSM9DS0 мэдрэгчийн мэдээллийн хуудас
- LSM9DS0 утасны диаграм
- ESP8266 мэдээллийн хуудас
Зөвлөмж болгож буй:
Google газрын зургийг ашиглан газрын зургийн ном хийх: 17 алхам (зурагтай)
Google газрын зургийг ашиглан газрын зургийн ном хийх: Өмнөх өдөр нь миний найз охин тэнд амьдардаг тул гудамжны нарийвчилсан газрын зураг хэрэгтэй байгаа тул би номын дэлгүүрээс DuPage County, IL -ийн гудамжны гарын авлага хайж байсан юм. Харамсалтай нь тэдэнд ойрхон байсан цорын ганц зүйл бол Күүк Каунтид байсан юм (жишээ нь
Газрын зургийн гэрэл- Мэдээлэл сайтай!: 7 алхам
Газрын зургийн чийдэн- Мэдээлэл сайтай!: Энэхүү чийдэнг хуучин/шинэ газрын зургаар хийсэн болно. Энэ нь 7-12V оролтыг ашигладаг бөгөөд өөр өөр өнгө, тод байдалд тохируулж болно, тэр ч байтугай USB цэнэглэгчтэй! Үүнийг хийхэд маш энгийн боловч гагнах шаардлагатай
Secrete газрын зургийн ээмэг : 7 алхам
Нууц газрын зургийн ээмэг …: Газрын зураг нь хүн ам зүйн мэдээллийн контекстийг өгдөг тул хүний газарзүйн чиглэлээр судалгаа хийхэд чухал ач холбогдолтой юм. Газрын зураг нь хүний газарзүйчдэд choroplet гэх мэт танилцуулах арга техник болгон ашиглаж болох нэхэмжлэлийг дэмжих харааны нотолгоо өгөх боломжийг олгодог
ESP 8266 Nodemcu Ws 2812 Neopixel дээр суурилсан LED MOOD гэрэл нь локал вэб серверээр хянагддаг: 6 алхам
ESP 8266 Nodemcu Ws 2812 Neopixel дээр суурилсан LED MOOD чийдэнг локал вэб сервер удирддаг: ESP 8266 Nodemcu Ws 2812 неопиксел дээр суурилсан LED MOOD чийдэнг вэб сервер ашиглан хянадаг
Google газрын зургийн тусламжтайгаар тээврийн мэдээллийн дүрслэл: 6 алхам
Google газрын зургийн тусламжтайгаар тээврийн мэдээллийн дүрслэл: Бид ихэвчлэн унадаг дугуй унахдаа янз бүрийн өгөгдлийг бүртгэхийг хүсдэг бөгөөд энэ удаад бид тэдгээрийг хянахын тулд шинэ Wio LTE ашигласан болно