Turinys:
- 1 žingsnis: įranga, kurios mums reikia..
- 2 žingsnis: aparatinės įrangos jungtys
- 3 žingsnis: kodas
- 4 žingsnis: kodo veikimas
- 5 žingsnis: programos ir funkcijos
- 6 žingsnis: ištekliai, skirti eiti toliau
Video: Žemėlapio orientacija per žiniatinklio serverį: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Daiktų internetas (IoT) šiuo metu yra viena iš populiariausių temų planetoje. Ir tai sparčiai auga kiekvieną dieną su internetu. Daiktų internetas paprastus namus paverčia išmaniaisiais namais, kuriuose viską, nuo jūsų žibintų iki spynų, galima valdyti iš savo išmaniojo telefono ar darbalaukio. Tai prabanga, kurią nori turėti kiekvienas.
Mes visada žaidžiame su turimais įrankiais ir toliau dirbame, kad pereitume prie kito savo ribų žingsnio. Mes stengiamės suteikti savo klientui naujausių technologijų ir idėjų viziją. Taigi, kad galėtumėte be didelių pastangų paversti savo namus protingais namais ir mėgautis prabangos skoniu.
Šiandien mes galvojame apie vieną svarbiausių daiktų interneto temų - skaitmeninio žemėlapio orientaciją.
Mes sukursime žiniatinklio serverį, per kurį galėsime stebėti bet kurio įrenginio ar daikto judesius (tai priklauso nuo jūsų, kurį norite šnipinėti;)). Jūs visada galite galvoti apie šio projekto atnaujinimą į kitą lygį su tam tikrais pakeitimais ir nepamirškite mums pasakyti toliau pateiktose pastabose.
Pradėkime nuo.. !!
1 žingsnis: įranga, kurios mums reikia..
1. LSM9DS0 jutiklis
„STMicroelectronics“gaminamas jutiklis „3 viename“, LSM9DS0, yra pakuotėje esanti sistema, turinti 3D skaitmeninį linijinio pagreičio jutiklį, 3D skaitmeninį kampinio greičio jutiklį ir 3D skaitmeninį magnetinį jutiklį. LSM9DS0 linijinio pagreičio skalė yra ± 2 g/± 4 g/± 6 g/± 8 g/± 16 g, magnetinio lauko pilna skalė-± 2/± 4/± 8/± 12 gauss ir kampinis dažnis ± 245 /± 500/± 2000 dps.
2. Adafruit Huzzah ESP8266
„Espressif“ESP8266 procesorius yra 80 MHz mikrovaldiklis, turintis pilną „WiFi“sąsają (tiek kaip klientas, tiek prieigos taškas) ir TCP/IP krūvą su DNS palaikymu. ESP8266 yra neįtikėtina platforma, skirta interneto taikomųjų programų kūrimui. ESP8266 suteikia subrendusią platformą programoms stebėti ir valdyti naudojant „Arduino Wire Language“ir „Arduino IDE“.
3. ESP8266 USB programuotojas
jo pagrindinio kompiuterio adapteris ESP8266 buvo sukurtas specialiai „Dcube Store“, skirtas ESP8266 „Adafruit Huzzah“versijai, leidžiančiai naudoti I²C sąsają.
4. I2C jungiamasis kabelis
5. Mini USB kabelis
Mini USB kabelis Maitinimo šaltinis yra idealus pasirinkimas maitinant „Adafruit Huzzah ESP8266“.
2 žingsnis: aparatinės įrangos jungtys
Apskritai, užmegzti ryšius yra lengviausia šio projekto dalis. Vykdykite instrukcijas ir vaizdus, ir jums neturėtų kilti problemų.
Pirmiausia paimkite „Adafruit Huzzah ESP8266“ir įdėkite USB programuotoją (su į vidų nukreiptu I²C prievadu). Švelniai paspauskite USB programuotoją ir mes baigsime šį veiksmą taip lengvai, kaip pyragas (žr. Paveikslėlį aukščiau).
Jutiklio ir „Adafruit Huzzah ESP8266“prijungimas Paimkite jutiklį ir prijunkite prie jo I²C kabelį. Kad šis kabelis veiktų tinkamai, atminkite, kad I²C išėjimas VISADA jungiasi prie I²C įvesties. To paties reikėjo laikytis ir „Adafruit Huzzah ESP8266“su USB programuotoju (žr. Paveikslėlį aukščiau).
ESP8266 USB programuotojo pagalba labai lengva programuoti ESP. Viskas, ką jums reikia padaryti, tai prijungti jutiklį prie USB programuotojo ir viskas gerai. Mes norime naudoti šį adapterį, nes tai labai palengvina aparatūros prijungimą. Nesijaudinkite dėl litavimo ESP kaiščių prie jutiklio ar skaitymo kaiščių diagramų ir duomenų lapo. Mes galime vienu metu naudoti ir dirbti su keliais jutikliais, jums tiesiog reikia sukurti grandinę. Be šių „plug and play“USB programuotojų yra didelė rizika, kad bus užmegztas neteisingas ryšys. Blogas laidas gali užmušti jūsų „Wi -Fi“ir jutiklį.
Pastaba: ruda viela visada turi sekti įžeminimo (GND) jungtį tarp vieno įrenginio išvesties ir kito įrenginio įvesties.
Grandinės maitinimas
Prijunkite mini USB kabelį prie „Adafruit Huzzah ESP8266“maitinimo lizdo. Užsidega ir voila, mums gera eiti!
3 žingsnis: kodas
„Adafruit Huzzah ESP8266“ir „LSM9DS0“jutiklių ESP kodą rasite mūsų „github“saugykloje.
Prieš pereidami prie kodo, būtinai perskaitykite „Readme“faile pateiktas instrukcijas ir pagal tai nustatykite „Adafruit Huzzah ESP8266“. ESP nustatymas užtruks vos 5 minutes.
Kodas yra ilgas, tačiau jis yra paprasčiausios formos, kokią galite įsivaizduoti, ir jums nebus sunku jį suprasti.
Jūsų patogumui taip pat galite nukopijuoti darbinį šio jutiklio ESP kodą iš čia:
// Platinama su laisvos valios licencija. // LSM9DSO // Šis kodas skirtas darbui su TCS3414_I2CS I2C mini moduliu, kurį galima rasti dcubestore.com.
#įtraukti
#įtraukti
#įtraukti
#įtraukti
// LSM9DSO Gyro I2C adresas yra 6A (106)
#define Addr_Gyro 0x6A // LSM9DSO Accl I2C adresas yra 1E (30) #define Addr_Accl 0x1E
const char* ssid = "tavo ssidas";
const char* password = "tavo slaptažodis"; int xGyro, yGyro, zGyro, xAccl, yAccl, zAccl, xMag, yMag, zMag;
ESP8266WebServer serveris (80);
tuščia rankena ()
{unsigned int data [6];
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr_Gyro); // Pasirinkite valdymo registrą 1 Wire.write (0x20); // Duomenų perdavimo sparta = 95 Hz, X, Y, Z ašis įjungta, įjunkite „Wire.write“(0x0F); // Stop I2C Transmission Wire.endTransmission ();
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr_Gyro); // Pasirinkite valdymo registrą 4 Wire.write (0x23); // Viso masto 2000 dps, nuolatinis atnaujinimas Wire.write (0x30); // Stop I2C Transmission Wire.endTransmission ();
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr_Accl); // Pasirinkite valdymo registrą 1 Wire.write (0x20); // Pagreitinimo duomenų greitis = 100 Hz, X, Y, įjungta Z ašis, įjunkite „Wire.write“(0x67); // Sustabdyti I2C perdavimą įrenginyje Wire.endTransmission ();
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr_Accl); // Pasirinkite valdymo registrą 2 Wire.write (0x21); // Visas skalės pasirinkimas +/- 16g Wire.write (0x20); // Stop I2C Transmission Wire.endTransmission ();
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr_Accl); // Pasirinkite valdymo registrą 5 Wire.write (0x24); // Magnetinė didelės skiriamosios gebos, išvesties duomenų perdavimo sparta = 50Hz Wire.write (0x70); // Stop I2C Transmission Wire.endTransmission ();
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr_Accl); // Pasirinkite valdymo registrą 6 Wire.write (0x25); // Magnetinis visos skalės +/- 12 gauss Wire.write (0x60); // Stop I2C Transmission Wire.endTransmission ();
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr_Accl); // Pasirinkite valdymo registrą 7 Wire.write (0x26); // Normalus režimas, magnetinis nepertraukiamo konversijos režimas Wire.write (0x00); // Stop I2C Transmission Wire.endTransmission (); vėlavimas (300);
for (int i = 0; i <6; i ++) {// Pradėti I2C perdavimo laidą.beginTransmission (Addr_Gyro); // Pasirinkite duomenų registrą Wire.write ((40 + i)); // Stop I2C Transmission Wire.endTransmission ();
// Prašyti 1 baito duomenų
Wire.requestFrom (Addr_Gyro, 1);
// Perskaitykite 6 baitus duomenų
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb if (Wire.available () == 1) {data = Wire.read (); }}
// Konvertuoti duomenis
int xGyro = ((duomenys [1] * 256) + duomenys [0]); int yGyro = ((duomenys [3] * 256) + duomenys [2]); int zGyro = ((duomenys [5] * 256) + duomenys [4]);
for (int i = 0; i <6; i ++) {// Pradėti I2C perdavimo laidą.beginTransmission (Addr_Accl); // Pasirinkite duomenų registrą Wire.write ((40 + i)); // Stop I2C Transmission Wire.endTransmission ();
// Prašyti 1 baito duomenų
Wire.requestFrom (Addr_Accl, 1);
// Perskaitykite 6 baitus duomenų
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb // zAccl lsb, zAccl msb if (Wire.available () == 1) {data = Wire.read (); }}
// Konvertuoti duomenis
int xAccl = ((duomenys [1] * 256) + duomenys [0]); int yAccl = ((duomenys [3] * 256) + duomenys [2]); int zAccl = ((duomenys [5] * 256) + duomenys [4]);
for (int i = 0; i <6; i ++) {// Pradėti I2C perdavimo laidą.beginTransmission (Addr_Accl); // Pasirinkite duomenų registrą Wire.write ((8 + i)); // Stop I2C Transmission Wire.endTransmission ();
// Prašyti 1 baito duomenų
Wire.requestFrom (Addr_Accl, 1);
// Perskaitykite 6 baitus duomenų
// xMag lsb, xMag msb, yMag lsb, yMag msb // zMag lsb, zMag msb if (Wire.available () == 1) {data = Wire.read (); }}
// Konvertuoti duomenis
int xMag = ((duomenys [1] * 256) + duomenys [0]); int yMag = ((duomenys [3] * 256) + duomenys [2]); int zMag = ((duomenys [5] * 256) + duomenys [4]);
// Duomenų išvedimas į serijinį monitorių
Serial.print ("X sukimosi ašis:"); Serial.println (xGyro); Serial.print ("Y sukimosi ašis:"); Serial.println (yGyro); Serial.print ("Z sukimosi ašis:"); Serial.println (zGyro); Serial.print ("pagreitis X ašyje:"); Serial.println (xAccl); Serial.print ("pagreitis Y ašyje:"); Serial.println (yAccl); Serial.print („Pagreitis Z ašyje:“); Serial.println (zAccl); Serial.print ("Magnetinis laukas X ašyje:"); Serial.println (xMag); Serial.print ("Magnetinis laukas Y ašyje:"); Serial.println (yMag); Serial.print ("Magnetinis paduotas Z ašyje:"); Serial.println (zMag);
// Išvesti duomenis į žiniatinklio serverį
server.sendContent ("
DCUBE PARDUOTUVĖ
www.dcubestore.com
"" LSM9DS0 jutiklio I2C mini modulis
);
server.sendContent ("
X sukimosi ašis = " + eilutė (xGyro)); server.sendContent ("
Y sukimosi ašis = " + eilutė (yGyro)); server.sendContent ("
Z sukimosi ašis = " + eilutė (zGyro)); server.sendContent ("
Pagreitis X ašyje = " + eilutė (xAccl)); server.sendContent ("
Pagreitis Y ašyje = " + eilutė (yAccl)); server.sendContent ("
Pagreitis Z ašyje = " + eilutė (zAccl)); server.sendContent ("
Magnetinis paduotas X ašyje = " + eilutė (xMag)); server.sendContent ("
Magnetinis paduotas Y ašyje = " + eilutė (yMag)); server.sendContent ("
Magnetinis paduotas Z ašyje = " + eilutė (zMag)); uždelsimas (1000);}
negaliojanti sąranka ()
{// Inicijuoti I2C ryšį kaip MASTER Wire.begin (2, 14); // Inicijuoti nuoseklųjį ryšį, nustatyti duomenų perdavimo spartą = 115200 Serial.begin (115200);
// Prisijunkite prie „WiFi“tinklo
WiFi.begin (ssid, slaptažodis);
// Palaukite ryšio
while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serijinis atspaudas ("."); } Serial.println (""); Serial.print ("Prisijungta"); Serial.println (ssid);
// Gaukite ESP8266 IP adresą
Serial.print („IP adresas:“); Serial.println (WiFi.localIP ());
// Paleisti serverį
server.on ("/", rankena); server.begin (); Serial.println („HTTP serveris paleistas“); }
tuštumos kilpa ()
{server.handleClient (); }
4 žingsnis: kodo veikimas
Dabar atsisiųskite (arba ištraukite) kodą ir atidarykite jį „Arduino IDE“.
Surinkite ir įkelkite kodą ir pamatykite serijos monitoriaus išvestį.
Pastaba: prieš įkeldami į kodą būtinai įveskite SSID tinklą ir slaptažodį.
Nukopijuokite ESP8266 IP adresą iš serijinio monitoriaus ir įklijuokite jį į savo interneto naršyklę. Pamatysite tinklalapį su sukimosi ašimi, pagreičiu ir magnetinio lauko nuskaitymu 3 ašyse.
Serijinio monitoriaus ir žiniatinklio serverio jutiklio išvestis parodyta aukščiau esančiame paveikslėlyje.
5 žingsnis: programos ir funkcijos
„LSM9DS0“yra pakuotėje esanti sistema, turinti 3D skaitmeninį linijinio pagreičio jutiklį, 3D skaitmeninį kampinio greičio jutiklį ir 3D skaitmeninį magnetinį jutiklį. Išmatuodami šias tris savybes, galite įgyti daug žinių apie objekto judėjimą. Magnetometru išmatuodami Žemės magnetinio lauko jėgą ir kryptį, galite apytiksliai nustatyti savo kryptį. Akselerometras jūsų telefone gali išmatuoti traukos jėgos kryptį ir įvertinti orientaciją (portretas, kraštovaizdis, plokščias ir tt). Keturkopteriai su įmontuotais giroskopais gali atkreipti dėmesį į staigius riedėjimus ar posūkius. Tai galime naudoti pasaulinėje padėties nustatymo sistemoje (GPS).
Kai kurios kitos programos apima vidaus navigaciją, išmaniąsias vartotojo sąsajas, išplėstinį gestų atpažinimą, žaidimų ir virtualios realybės įvesties įrenginius ir kt.
Naudodami ESP8266, galime padidinti jo talpą iki ilgesnio. Galime valdyti savo prietaisus ir stebėti jų veikimą iš stalinių kompiuterių ir mobiliųjų įrenginių. Mes galime saugoti ir tvarkyti duomenis internete ir bet kada juos ištirti, kad juos būtų galima pakeisti. Daugiau programų yra namų automatizavimas, tinklinis tinklas, pramoninis belaidis valdymas, kūdikių monitoriai, jutiklių tinklai, nešiojama elektronika, „Wi-Fi“vietos nustatymo įrenginiai, „Wi-Fi“padėties sistemos švyturėliai.
6 žingsnis: ištekliai, skirti eiti toliau
Norėdami gauti daugiau informacijos apie LSM9DS0 ir ESP8266, patikrinkite toliau pateiktas nuorodas:
- LSM9DS0 jutiklio duomenų lapas
- LSM9DS0 laidų schema
- ESP8266 duomenų lapas
Rekomenduojamas:
Garažo durų atidarytuvas su atsiliepimais naudojant „Esp8266“kaip žiniatinklio serverį .: 6 žingsniai
Garažo durų atidarytuvas, naudodamas „Esp8266“kaip žiniatinklio serverį: Sveiki, aš jums parodysiu, kaip padaryti paprastą būdą padaryti garažo durų atidarytuvą.-ESP8266 yra užkoduotas kaip žiniatinklio serveris, durys gali būti atidarytos visur pasaulyje atsiliepimai, jūs žinosite, ar durys yra atidarytos arba uždarytos realiu laiku-paprasta, tik vienas spartusis klavišas
Kaip naudoti ESP8266 kaip žiniatinklio serverį: 5 žingsniai
Kaip naudotis ESP8266 kaip žiniatinklio serveriu: Sveiki, šiuo metu naudoju „Windows 10“, „NodeMCU 1.0“, čia yra mano naudojamos programinės įrangos sąrašas ir diegimo vadovai, kurių laikiausi: „Arduino IDE“Papildomos „esp8266“lentos „SpiffLibrary“: „Websocket“naudoju „NodeMCU“kaip serverį aptarnauju HTML failą
Sukurkite „WiFi“prieigos tašką ir pateikite žiniatinklio serverį „NodeMCU V3“: 4 veiksmai
Sukurkite „WiFi“prieigos tašką ir pateikite žiniatinklio serverį „NodeMCU V3“: ankstesniame straipsnyje aš jau aptariau, kaip naudoti „NodeMCU ESP8266“. Straipsnyje paaiškinu, kaip pridėti „NodeMCU ESP8266“prie „Arduini IDE“. Yra keletas būdų, kaip bendrauti internetu naudojant „NodeMCU ESP8266“. Kuriant „NodeMCU“kaip
7 segmentų LED ekrano valdymas naudojant ESP8266 žiniatinklio serverį: 8 žingsniai (su paveikslėliais)
7 segmentų LED ekrano valdymas naudojant ESP8266 žiniatinklio serverį: mano projekte yra „Nodemcu ESP8266“, kuris valdo 7 segmentų ekraną per http serverį, naudojant html formą
Pakartotinis HP WebCam 101 Aka 679257-330 žiniatinklio kameros modulio naudojimas kaip bendroji USB žiniatinklio kamera: 5 veiksmai
Pakartotinai naudokite „HP WebCam 101 Aka“679257-330 internetinės kameros modulį kaip bendrą USB žiniatinklio kamerą: noriu pagyvinti savo 14 metų amžiaus „Panasonic CF-18“visiškai nauja internetine kamera, tačiau „Panasonic“nebepalaiko to nuostabaus įrenginio, todėl turiu naudokite pilkąją medžiagą kažkam lengviau nei b & b (alus ir mėsainiai). Tai pirmoji dalis