Tartalomjegyzék:
Videó: Az ESP8266-01 4 csapjának használata: 3 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Megjegyzés: Ez a projekt alapvetően egy korábbi utasításnak a kiterjesztése, amely csak 2 tűt használt. Az ESP8266-01 GPIO csapok korlátozott száma (4) akadálynak tűnhet minden komoly alkalmazás esetén. Mégis, ha valaki használja a csapokat egy okos módszerrel nagyon sok mindent lehet csinálni csak ezzel a 4 érintkezővel. A legutóbbi utasítások közül néhányban bemutattam a DHT11, a DS18B20, az OLED, az RTC és a BMP180 használatát az ESP8266-01 segítségével. Ebben az utasításban 4 érzékelő és egy kijelző használatát tűztem ki célul, miközben a megszerzett adatokat is feltöltöttem a Thingspeak -be. Valójában egy olyan projektre terjed ki, amely figyelemmel kíséri a légkört a csirkeszekrényemben és környékén. Igen, ezt nevezhetjük időjárás -állomásnak, de ez csak a 4 tű használatának szemléltetésére szolgál, így könnyen készíthet mást is. 2 tűt fogok használni az I2C (BMP180 és OLED) 1 tűhöz 2 DS18B20 érzékelőhöz a Bár az ESP8266-01 összes csapját már használta, a OneWire protokollon és/vagy az I2C protokollon keresztül további érzékelőket (vagy működtetőket) tudok hozzáadni. Tehát mire van szükségünk: BOM
- ESP8266-01
- 2x DS18B20
- 1x DHT11
- 1x BMP180
- OLED (opcionális)
és természetesen egy kenyérsütő deszkát, egy 3,3 V -os tápegységet és néhány kenyeretábla -vezetéket és egy Thingspeak -fiókot
Csak néhány megjegyzés a BOM -ról:
- Nyilvánvaló, hogy a projekt az ESP8266-01 korlátozott csapjainak felhasználásáról szól, de ha mégis meg kell vásárolnia egyet, akkor fontolja meg az ESP8266-12 több tüskét
- DHT11A olcsó univerzális páratartalom- és hőmérséklet -érzékelő. Nem túl pontos, de megteszi. Ha mégis meg kell vásárolnia egyet, akkor az állítólag pontosabb DHT22 mellett dönthet, de az AMS2321 mellett is. Ez egyfajta DHT22, amely alkalmas az I2C -re, és így felszabadít egy másik tűt
- A BMP180 méri a hőmérsékletet és a légnyomást. A BMP085 utódja, de most már maga is rendelkezik néhány suvessorral. Van az (olcsóbb) BMP280, de választhatja a BME280 -at is, amely méri a hőmérsékletet, a légnyomást ÉS a páratartalmat. Így spórolhat a DHT/AMS érzékelőn
- Az OLEDI csak ezt használta, így gyorsan láthattam, hogy az érzékelők le vannak -e olvasva, de ugyanezt ellenőrizheti a Thingspeak -en is. Az OLED egyébként túl kicsi az összes olvasott érték kinyomtatásához
1. lépés: Az áramkör
Az ESP8266 4 érintkezője nincs feltüntetve a NYÁK-on, és a legtöbb képen csak a GPIO0 és a GPIO2 látható. Az ESP826-01 azonban rendelkezik aa GPIO1 tűvel (a Tx érintkezővel) és a GPIO3 tűvel (az Rx tű). I ezeket a csapokat az alábbiak szerint fogja használni
- GPIO0 -> SD2 tű az I2C porton
- GPIO1 -> DHT11
- GPIO2-> SCL tű az I2C porton
- GPIO3-> OneWire busz
Mivel az I2C moduljaim már rendelkeznek felhúzó ellenállásokkal, nem adok hozzá I2C felhúzó ellenállásokat. A DS18B20 -nak még szüksége van egy felhúzó ellenállásra, amihez 4k7 -et használtam, de tényleg nem annyira kritikus, a 10k is jó. A DHT11-nek állítólag szüksége van egy felhúzó ellenállásra is, de azt találtam, hogy működik anélkül is. 4k7 ellenállás hozzáadása nem változtatott az értékeken, így kihagytam. A 3 tűs DHT11 modulok közül sok már 10 k -es forrasztással van a modulra. Most jöttem rá, hogy nem az OLED -hez csatlakoztam. Ennek az az oka, hogy csak egy gyors ellenőrzéshez kötöttem össze, de ha hozzá szeretné adni, akkor csak az SDA -t kell csatlakoztatni az SDA -hoz, és az SCL -t az SCL -hez… és természetesen a földet és a Vcc -csapokat a társaikhoz
2. lépés: A program
A program meglehetősen egyszerű. Először a könyvtárakat és az érzékelőket állítja be. A DHT11 -et az 1. tűhöz (Tx), a DS18B20 OnWire buszát pedig a 3. tűhöz (Rx) rögzíti. Ha egynél több DS18B20 érzékelőt szeretne használni a OneWire buszon, ismernie kell az egyedi címüket. Ha nem rendelkezik ilyennel, akkor szüksége van egy programra, amely elolvassa ezeket a címeket. Tegye ezt egy arduino -n az egyszerűség érdekében. A programban továbbra is meg kell adnia a WiFi hitelesítő adatait, valamint az írási API -t a Thingspeak Channel számára
/*
1. mező: temp roost (DHT11). https://www.pjrc.com/teensy/td_libs_OneWire.html #include // https://milesburton.com/Main_Page?title=Dallas_Tem… #include #include #include "SSD1306.h" SSD1306 kijelző (0x3c, 0, 2); #define DHTPIN 1 // GPIO1 (Tx) #define DHTTYPE DHT11 #define ONE_WIRE_BUS 3 // GPIO3 = Rx const char* ssid = "YourSSID"; const char* password = "Saját jelszó"; const char* host = "api.thingspeak.com"; const char* writeAPIKey = "W367812985"; // az YOUR writeApi használata // DHT11 cucc float temperature_buiten; lebegési hőmérséklet_buiten2; DHT dht (DHTPIN, DHTTYPE, 15); // DS18b20 cucc OneWire oneWire (ONE_WIRE_BUS); // oneWire példány bármelyik OneWire eszközzel való kommunikációhoz DallasTemperature szenzorok (& oneWire); // továbbítsa oneWire példányunk címét a Dallas Temperature -nek. DeviceAddress Probe01 = {0x28, 0x0F, 0x2A, 0x28, 0x00, 0x00, 0x80, 0x9F}; DeviceAddress Probe02 = {0x28, 0x10, 0xA4, 0x57, 0x04, 0x00, 0x00, 0xA9}; // bmp180 cucc Adafruit_BMP085 bmp; void setup () {// I2C cucc Wire.pins (0, 2); Vezeték.kezdet (0, 2); // Szenzorok inicializálása // dht 11 cucc dht.begin (); // ds18b20 cucc sensors.begin (); // ds18b20 // állítsa a felbontást 10 bitre (9-12 bit lehet.. alacsonyabb gyorsabb) sensors.setResolution (Probe01, 10); sensors.setResolution (Probe02, 10); // bmp180 cucc if (! bmp.begin ()) {// Serial.println ("No BMP180 /BMP085"); // while (1) {}} // OLED cucc display.init (); display.flipScreenVertically (); display.setFont (ArialMT_Plain_10); késleltetés (1000); // Csatlakozás WiFi hálózathoz WiFi.begin (ssid, jelszó); while (WiFi.status ()! = WL_CONNECTED) {delay (500); }} void loop () {// ds18b20stuff ------------------- sensors.requestTemperatures (); // Küldje el a parancsot, hogy lekérje a hőmérsékleteket. ---- úszó páratartalom = dht.readHumidity (); úszó hőmérséklet = dht.readTemperature (); if (isnan (páratartalom) || isnan (hőmérséklet)) {return; } // bmp cucc ------------------------- String t = String (bmp.readTemperature ()); Karakterlánc p = Karakterlánc (bmp.readPressure ()); // OLED cucc -------------------------- display.clear (); display.drawString (0, 10, p); // bmp nyomás display.drawString (0, 24, karakterlánc (hőmérséklet_buiten)); // ds18b20 display.drawString (0, 38, String (páratartalom)); // dht11 display.kijelző(); // TCP kapcsolatok létrehozása WiFiClient kliens; const int httpPort = 80; if (! client.connect (host, httpPort)) {return; } String url = "/update? Key ="; url += writeAPIKey; url += "& mező1 ="; url += Karakterlánc (hőmérséklet); // roost (DHT1) url += "& field2 ="; url += String (páratartalom); // roost (DHT11) url += "& field3 ="; url += Karakterlánc (hőmérséklet_buiten); // coop hőmérséklet (DS18B20 nr 1) url += "& field4 ="; url += Karakterlánc (hőmérséklet_buiten2); // talajhőmérséklet (DS18B29 nr 2) url += "& field5 ="; url += String (bmp.readTemperature ()); Külső hőmérséklet (BMP180) url += "& field6 ="; url += Karakterlánc (bmp.readPressure ()); // Légnyomás (BMP180) url += "\ r / n"; // Kérés küldése a szerver kliensnek.print (String ("GET") + url + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Kapcsolat: bezár / r / n / r / n "); késleltetés (1000); }
……..
3. lépés: Továbbiak
Jelenleg ez a program csak figyel, de mi akadályoz meg abban, hogy BH1750 I2C fényérzékelőt adjon hozzá annak méréséhez, hogy este vagy reggel van -e, vagy RTC, hogy megtudja a napszakot, és automatikusan kinyissa és bezárja a fedél ajtaját. PCF8574 I2C I/O bővítő kártya, vagy ahogy már a kertben van, adjon hozzá egy PCF8591 vagy ADS1115 AD átalakítót a talaj páratartalmának méréséhez, és szükség esetén aktiválja a szivattyút. Vagy ha bekapcsolja a vízmelegítőt, ha a hőmérséklet nulla alá csökken, ha van I2 C chip, az ESP8266 valószínűleg használni tudja.
Egy fontos megjegyzés azonban: A program úgy működik, ahogy van, de ha más érzékelőket ad hozzá az Rx -hez vagy a Tx -hez, különösen, ha kimenetekké alakítja őket, a csapok hirtelen emlékezhetnek arra, hogy valójában nem GPIO -tűk. Jobb, ha a kezdetektől fogva megmondja a csapokat, hogy most GPIO -csapok. Az egyik ezt úgy teszi meg, hogy a következő utasításokat helyezi a beállításba:
pinMode (1, FUNCTION_3);
pinMode (3, FUNCTION_3);
Ajánlott:
Analóg érzékelők használata ESP8266 -tal: 5 lépés
Analóg érzékelők használata ESP8266 segítségével: Az analóg-digitális átalakító (ADC, A/D, A – D vagy A-D) olyan rendszer, amely analóg jelet alakít át digitális jellé. Az A/D konverterek analóg elektromos jeleket fordítanak adatfeldolgozási célokra. A teljesítménynek, teljesítménynek megfelelő termékekkel
Az ESP8266 használata webszerverként: 5 lépés
Az ESP8266 használata webszerverként: Szia, jelenleg a Windows 10 rendszert használom, a NodeMCU 1.0 -t, és itt található az általam használt szoftverek listája és a követett telepítési útmutatók: Arduino IDE További táblák az esp8266 SpiffLibrary számára: Websocket egy HTML -fájlt szolgálok ki
A WiFi AutoConnect használata ESP8266/ESP32 táblákkal: 3 lépés
A WiFi AutoConnect használata az ESP8266/ESP32 táblákkal: Megtanuljuk, hogyan kell használni az AutoConnect könyvtárat, amely lehetővé teszi, hogy okostelefonnal csatlakozzunk és kezeljük a WiFi hozzáférési pontokat. A fenti videó végigvezeti Önt a folyamaton, valamint a különböző képernyőkön, amelyekre szüksége van hozzáférni, hogy többet megtudjon a
IoT intelligens óra pontmátrix Wemos ESP8266 használata - ESP mátrix: 12 lépés (képekkel)
IoT intelligens óra pontmátrix Wemos ESP8266 használata-ESP mátrix: Készítse el saját IoT intelligens óráját, amely képes: Kijelzőóra gyönyörű animációs ikonnal Kijelző Emlékeztető-1-Emlékeztető-5 Megjelenítés Naptár Megjelenítés Muszlim imaidők Kijelző Időjárási információk Kijelző Hírek Kijelző Tanácsok Kijelző Bitcoin árfolyam kijelző
I2C / IIC LCD kijelző - SPI LCD használata az I2C LCD kijelzőhöz Az SPI to IIC modul használata Arduino -val: 5 lépés
I2C / IIC LCD kijelző | Használjon SPI LCD -t az I2C LCD -kijelzőhöz Az SPI -IIC modul használata Arduino -val: Sziasztok, mivel egy normál SPI LCD 1602 -nek túl sok vezetékét kell csatlakoztatni, ezért nagyon nehéz összekapcsolni az arduino -val, de a piacon elérhető egy modul konvertálja az SPI kijelzőt IIC kijelzővé, így csak 4 vezetéket kell csatlakoztatnia