Taula de continguts:
Vídeo: Ús dels 4 pins de l’ESP8266-01: 3 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
Nota: aquest projecte és bàsicament una extensió d’un instructable anterior que només feia servir 2 pins. El nombre limitat (4) de pins GPIO a l’ESP8266-01 pot semblar un obstacle per a qualsevol aplicació seriosa. d'una manera intel·ligent, és molt possible fer molt només amb aquests 4 pins. En alguns dels meus instructables recents, he demostrat l'ús d'un DHT11, un DS18B20, un OLED, un RTC i un BMP180 amb l'ESP8266-01. En aquest instructiu em vaig proposar utilitzar 4 sensors i una pantalla, mentre també pujava les dades adquirides a Thingspeak. De fet, s’està ampliant en un projecte de control de l’atmosfera al meu galliner i al voltant. Sí, es podria anomenar estació meteorològica, però és només per il·lustrar l’ús dels 4 pins, fàcilment podríeu fer una altra cosa. Utilitzaré 2 pins per a I2C (BMP180 i OLED) 1 pin per a 2 sensors DS18B20 mitjançant Protocol OneWire 1 pin per al DHT11 Tot i que l’ESP8266-01 ja té tots els pins utilitzats, encara puc afegir més sensors (o actuadors) a través del protocol OneWire i / o mitjançant el protocol I2C. Per tant, què necessitem?
- ESP8266-01
- 2x DS18B20
- 1x DHT11
- 1x BMP180
- OLED (opcional)
i, per descomptat, una placa de configuració, una font d'alimentació de 3,3 V i alguns cables de la placa de configuració i un compte de Thingspeak
Només algunes observacions sobre la llista de materials:
- 8bviament, el projecte tracta d’utilitzar els pins limitats de l’ESP8266-01, però si encara n’heu de comprar un, podríeu considerar un ESP8266-12 que tingui més pins
- DHT11A sensor d'humitat i temperatura per a tots els usos barat. No és molt precís, però sí. Si encara necessiteu comprar-ne un, podeu optar pel DHT22 que suposadament és més precís, però també podeu optar per l’AMS2321. Es tracta d’una mena de DHT22 adequat per a I2C, alliberant així un altre pin
- BMP180 mesura la temperatura i la pressió d’aire. És el successor del BMP085, però ara també té alguns propis suvessors. Hi ha el BMP280 (més barat), però també podeu optar pel BME280 que mesura la temperatura, la pressió de l’aire I la humitat. D’aquesta manera podeu estalviar al sensor DHT / AMS
- OLEDI ho va fer servir per poder veure ràpidament si es llegien els sensors, però també ho podríeu comprovar a Thingspeak. El OLED és massa petit de totes maneres per imprimir tots els valors llegits
Pas 1: el circuit
Els 4 pins de l’ESP8266 no s’indiquen com a tals al PCB i la majoria de les imatges només indiquen clarament GPIO0 i GPIO2. Tanmateix, l’ESP826-01 té un pin GPIO1 (el pin Tx) i un pin GPIO3 (el pin Rx).i utilitzarà aquests pins de la següent manera
- GPIO0 -> Pin SDA del port I2C
- GPIO1 -> DHT11
- GPIO2-> PIN SCL del port I2C
- GPIO3-> Bus OneWire
Com que els meus mòduls I2C ja tenen resistències de tracció, no hi afegiré cap resistència de tracció I2C. El DS18B20 encara necessita una resistència pull up per a la qual he utilitzat un 4k7, però realment no és tan crític, un 10k també és bo. El DHT11 suposadament també necessita una resistència de tracció, però he trobat que funcionava també sense una. afegir una resistència 4k7 no va canviar cap de les lectures, així que ho vaig deixar de banda. Molts dels mòduls DHT11 de 3 pins ja tenen una soldadura de 10 k al mòdul. Acabo d’adonar-me que no dibuixo les connexions de l’OLED. Això es deu al fet que només l'he connectat per fer una comprovació ràpida, però si voleu afegir-lo, només es tracta de connectar SDA a SDA i SCL a SCL … i, per descomptat, els pins de terra i Vcc als seus homòlegs.
Pas 2: el programa
El programa és bastant senzill. Primer, configura les biblioteques i els sensors: connecta el DHT11 al pin 1 (Tx) i el bus OnWire per al DS18B20 al pin 3 (Rx). Per utilitzar més d'un sensor DS18B20 al bus OneWire, heu de conèixer la seva "adreça única". Si no en teniu, necessiteu un programa per llegir aquestes adreces. Feu-ho amb un arduino per facilitar-lo. Al programa, heu de proporcionar les vostres credencials WiFi, així com l’API d’escriptura per al vostre canal Thingspeak.
/*
Camp de temperatura 1 camp (DHT11) Camp de temperatura 2 humitat (DHT11) camp 3 Temperatura cooperativa (DS18B20) camp 4 temperatura del sòl (DS18B20) camp 5 Pressió d'aire (bmp180) camp 6 Temperatura exterior (bmp180) * * / #include #include // https://www.pjrc.com/teensy/td_libs_OneWire.html #include // https://milesburton.com/Main_Page?title=Dallas_Tem… #include #include #include "SSD1306.h" Display SSD1306 (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 = "La vostra contrasenya"; const char * host = "api.thingspeak.com"; const char * writeAPIKey = "W367812985"; // utilitzeu el vostre writeApi // Material DHT11 float temperature_buiten; temperatura del flotador_buiten2; DHT dht (DHTPIN, DHTTYPE, 15); // coses de DS18b20 OneWire oneWire (ONE_WIRE_BUS); // Instància oneWire per comunicar-se amb qualsevol dispositiu OneWire Sensors de temperatura Dallas (& oneWire); // Passa l'adreça de la nostra instància oneWire a Dallas Temperature. DeviceAddress Probe01 = {0x28, 0x0F, 0x2A, 0x28, 0x00, 0x00, 0x80, 0x9F}; DeviceAddress Probe02 = {0x28, 0x10, 0xA4, 0x57, 0x04, 0x00, 0x00, 0xA9}; // coses bmp180 Adafruit_BMP085 bmp; void setup () {// I2C stuff Wire.pins (0, 2); Wire.begin (0, 2); // Inicialitzar sensors // dht 11 stuff dht.begin (); // ds18b20 stuff sensors.begin (); // ds18b20 // estableix la resolució a 10 bits (pot ser de 9 a 12 bits.. inferior és més ràpid) sensors.setResolution (Probe01, 10); sensors.setResolution (Sonda02, 10); // coses de bmp180 if (! bmp.begin ()) {// Serial.println ("No BMP180 / BMP085"); // while (1) {}} // OLED stuff display.init (); display.flipScreenVertically (); display.setFont (ArialMT_Plain_10); retard (1000); // Connectar-se a la xarxa WiFi WiFi.begin (ssid, contrasenya); while (WiFi.status ()! = WL_CONNECTED) {demora (500); }} void loop () {// ds18b20stuff ------------------- sensors.requestTemperatures (); // Envieu l’ordre per obtenir temperatures temperature_buiten = sensors.getTempC (Probe01); // temperature_buiten2 = sensors.getTempC (Probe02); // // dht11 stuff ---------------- ---- humitat flotant = dht.readHumidity (); temperatura flotant = dht.readTemperature (); if (isnan (humitat) || isnan (temperatura)) {retorn; } // coses bmp ------------------------- Cadena t = Cadena (bmp.readTemperature ()); Cadena p = Cadena (bmp.readPressure ()); // Coses OLED -------------------------- display.clear (); display.drawString (0, 10, p); // pressió bmp display.drawString (0, 24, String (temperature_buiten)); // ds18b20 display.drawString (0, 38, String (humitat)); // dht11 display.display (); // fer connexions TCP client WiFiClient; const int httpPort = 80; if (! client.connect (host, httpPort)) {return; } String url = "/ update? Key ="; url + = writeAPIKey; url + = "& camp1 ="; url + = String (temperature); // roost (DHT1) url + = "& field2 ="; url + = Cadena (humitat); // roost (DHT11) url + = "& field3 ="; url + = String (temperature_buiten); // coop temperature (DS18B20 nr 1) url + = "& field4 ="; url + = String (temperature_buiten2); // temperatura del sòl (DS18B29 nr 2) url + = "& field5 ="; url + = String (bmp.readTemperature ()); Temperatura exterior (BMP180) url + = "& field6 ="; url + = String (bmp.readPressure ()); // Airpressure (BMP180) url + = "\ r / n"; // Enviar sol·licitud al servidor client.print (Cadena ("GET") + url + "HTTP / 1.1 / r / n" + "Amfitrió:" + amfitrió + "\ r / n" + "Connexió: tancar / r / n / r / n "); retard (1000); }
……..
Pas 3: més
Actualment aquest programa només supervisa, però el que és el que impedeix afegir un sensor de llum BH1750 I2C per mesurar si és de nit o de matí o un RTC per saber l’hora del dia i per obrir i tancar la porta de la cooperativa automàticament amb ajuda de una targeta d’expansió E / S PCF8574 I2C, o com ja està al jardí, afegiu un convertidor PCF8591 o ADS1115 AD per mesurar la humitat del sòl i activar una bomba quan sigui necessari. O potser enceneu l’escalfador de la pica quan la temperatura caigui per sota de zero si hi ha un xip I2 C per a això, probablement l’ES8266 el pugui utilitzar.
Una nota important: el programa està funcionant bé, però si afegiu altres sensors a Rx o Tx, especialment si els convertiu en sortides, els pins poden recordar de sobte que no són pins GPIO. És millor dir als pins des del principi que ara són pins GPIO, i ho fa posant les següents afirmacions a la configuració:
pinMode (1, FUNCTION_3);
pinMode (3, FUNCTION_3);
Recomanat:
Comprensió del protocol IR dels comandaments a distància dels condicionadors d'aire: 9 passos (amb imatges)
Comprensió del protocol IR dels comandaments a distància dels controladors d’aire: ja fa temps que aprenc sobre protocols IR. Com enviar i rebre senyals IR. En aquest punt, l’únic que queda és el protocol IR dels comandaments a distància de CA. A diferència dels comandaments a distància tradicionals de gairebé tots els dispositius electrònics (per exemple, un televisor) on
Com es soluciona el problema dels pins de 3,3 V als discs d'etiquetes blanques de les unitats Easystore Western Digital de 8 TB: 6 passos
Com solucionar el problema dels pins de 3,3 V en discs de marca blanca que s’extreuen de les unitats Easystore de Western Digital de 8 TB: si us resulta útil, si us plau, considereu la possibilitat de subscriure-us al meu canal de Youtube per als propers tutorials de bricolatge sobre tecnologia. Gràcies
ESP8266 Ús de pins GPIO0 / GPIO2 / GPIO15: 4 passos
ESP8266 Ús de pins GPIO0 / GPIO2 / GPIO15: actualització 1 de juliol de 2018 - Nota afegida sobre la reprogramació quan GPIO0 és una sortida Aquesta és una nota molt breu sobre com utilitzar els pins GPIO0 / GPIO2 i GPIO15 al mòdul ESP8266. Actualització: comproveu també Com utilitzar els pins ESP8266-01 Introducció ESP8266 és un baix
ESP8266-NODEMCU $ 3 Mòdul WiFi # 2 - Pins sense fils que controlen la pàgina web: 9 passos (amb imatges)
ESP8266-NODEMCU $ 3 WiFi Module # 2 - Pins inalàmbrics que controlen a través de la PÀGINA WEB: Arriba un nou món d’aquesta microinformàtica i això és l’ESP8266 NODEMCU. Aquesta és la primera part que mostra com podeu instal·lar l'entorn de l'esp8266 al vostre IDE d'arduino a través del vídeo inicial i com a parts de
Connexió ISP de 6 pins a 8 pins: 4 passos
Connexió ISP de 6 pins a 8 pins: la raó per la qual he construït principalment aquest projecte ha estat programar l'ATTiny45, que té una connexió de 8 pins, mentre que el meu USBtinyISP (de Ladyada) només té una connexió de 10 i 6 pins. Després d’haver fet un cop d’ull a Internet durant unes 3-4 setmanes, no vaig trobar res de què