Orodha ya maudhui:

Kutumia Pini 4 za ESP8266-01: 3 Hatua
Kutumia Pini 4 za ESP8266-01: 3 Hatua

Video: Kutumia Pini 4 za ESP8266-01: 3 Hatua

Video: Kutumia Pini 4 za ESP8266-01: 3 Hatua
Video: Введение в плату разработки NodeMCU ESP8266 WiFi с примером HTTP-клиента 2024, Novemba
Anonim
Kutumia Pini 4 za ESP8266-01
Kutumia Pini 4 za ESP8266-01
Kutumia Pini 4 za ESP8266-01
Kutumia Pini 4 za ESP8266-01
Kutumia Pini 4 za ESP8266-01
Kutumia Pini 4 za ESP8266-01

Kumbuka: Mradi huu kimsingi ni ugani wa mafunzo ya mapema ambayo yalitumia tu pini 2. Idadi ndogo (4) ya pini za GPIO kwenye ESP8266-01 inaweza kuonekana kama kikwazo, kwa matumizi yoyote mazito. njia nzuri inawezekana sana kufanya mengi na pini hizo 4. Katika baadhi ya maagizo yangu ya hivi karibuni, nimeonyesha utumiaji wa DHT11 DS18B20, OLED, RTC na BMP180 na ESP8266-01. Katika hii kufundisha niliamua kutumia sensorer 4 na onyesho, wakati pia nikipakia data iliyopatikana kwa Thingspeak. Kwa kweli inapanua mradi wa ufuatiliaji wa mazingira ndani na karibu na banda langu la kuku. Ndio, unaweza kuita kituo hiki cha hali ya hewa, lakini ni kuonyesha tu matumizi ya pini 4, unaweza kutengeneza kitu kingine kwa njia hii nitatumia pini 2 kwa I2C (BMP180 na OLED) pini 1 kwa sensorer 2 DS18B20 kupitia Ingawa ESP8266-01 sasa ina pini zake zote kutumika, bado ninaweza kuongeza sensorer zaidi (au watendaji) kupitia itifaki ya OneWire na / au kupitia itifaki ya I2C. Kwa hivyo, tunahitaji nini: BOM

  • ESP8266-01
  • 2x DS18B20
  • 1x DHT11
  • 1x BMP180
  • OLED (hiari)

na mazoezi ya mkate, 3.3 V PSU na waya zingine za ubao wa mkate na hesabu ya Thingspeak

Maneno kadhaa kuhusu BOM:

  • Kwa wazi mradi huo ni juu ya kutumia pini ndogo za ESP8266-01, lakini ikiwa bado unahitaji kununua moja, unaweza kuzingatia ESP8266-12 ambayo ina pini zaidi.
  • DHT11A bei rahisi unyevu wote na sensorer ya joto. Sio sahihi sana lakini itafanya. Ikiwa bado unahitaji kununua moja, unaweza kuchagua DHT22 ambayo inadhaniwa ni sahihi zaidi, lakini pia unaweza kuchagua AMS2321. Hiyo ni aina ya DHT22 ambayo inafaa kwa I2C, na hivyo kuachilia pini nyingine
  • Joto la BMP180 na shinikizo la hewa. Ni mrithi wa BMP085, lakini pia sasa ina washirika wengine. Kuna (ya bei rahisi) BMP280, lakini pia unaweza kuchagua BME280 ambayo hupima joto, upepo hewa na unyevu. Kwa njia hiyo unaweza kuokoa kwenye sensor ya DHT / AMS
  • OLEDI ilitumia tu hiyo kwa haraka niliweza kuona ikiwa sensorer zilisomwa, lakini unaweza pia kuziangalia kwenye Thingspeak. OLED ni ndogo sana hata hivyo kuchapisha maadili yote yaliyosomwa

Hatua ya 1: Mzunguko

Mzunguko
Mzunguko

Pini 4 za ESP8266 hazijaonyeshwa kama vile kwenye PCB, na picha nyingi zinaonyesha wazi GPIO0 na GPIO2. Walakini ESP826-01 ina pini ya GPIO1 (pini ya Tx) na pini ya GPIO3 (pini ya Rx).i itakuwa ikitumia pini hizo kama ifuatavyo

  • GPIO0 -> siri ya SDA ya bandari ya I2C
  • GPIO1 -> DHT11
  • GPIO2-> pini ya SCL ya bandari ya I2C
  • GPIO3-> Basi la OneWire

Kama moduli zangu za I2C tayari zina vifaa vya kupinga, sitaongeza vipingaji vya I2C vya pullup hapo. DS18B20 bado inahitaji kontena la kuvuta ambalo nilitumia 4k7, lakini sio muhimu sana, 10k pia ni nzuri. DHT11 inadhaniwa pia inahitaji kontena la kuvuta lakini nimeona ifanye kazi bila moja pia. kuongeza kipinga cha 4k7 hakubadilisha usomaji wowote, kwa hivyo niliiacha. Moduli nyingi za pini 3 za DHT11, tayari zina 10 k iliyouzwa kwenye moduli. Niligundua tu kuwa sikuchora muunganisho wa OLED. Hiyo ni kwa sababu niliiunganisha tu kwa hundi ya haraka, lakini ikiwa unataka kuiongeza, ni suala tu la kuunganisha SDA na SDA na SCL na SCL… na kufanya mazoezi ya ardhini na pini za Vcc kwa wenzao.

Hatua ya 2: Programu

Mpango huo ni moja kwa moja. Kwanza inaweka maktaba na sensorer. Iunganisha DHT11 kubandika 1 (Tx) na basi ya OnWire kwa DS18B20 kubandika 3 (Rx). Ili kutumia zaidi ya 1 DS18B20 sensor kwenye basi ya OneWire, unahitaji kujua 'anwani yao ya kipekee'. Ikiwa hauna hiyo basi unahitaji mpango wa kusoma anwani hizo. Fanya hivyo kwenye arduino kwa urahisi. Katika programu hiyo bado lazima utoe hati zako za WiFi na vile vile API ya kuandika kwa Kituo chako cha Thingspeak

/*

Shamba 1 temp roost (DHT11) Shamba 2 roost roost (DHT11) shamba 3 Coop joto (DS18B20) shamba 4 joto la udongo (DS18B20) uwanja 5 Airpressure (bmp180) shamba 6 Joto la nje (bmp180) * * / # pamoja na # pamoja # https://www.pjrc.com/teensy/td_libs_OneWire., 2); #fafanua DHTPIN 1 // GPIO1 (Tx) #fafanua DHTTYPE DHT11 #fafanua ONE_WIRE_BUS 3 // GPIO3 = Rx const char * ssid = "YourSSID"; const char * password = "Neno lako la siri"; const char * mwenyeji = "api.thingspeak.com"; const char * writeAPIKey = "W367812985"; // tumia yako kuandikaApi // DHT11 vitu vinaelea joto_buiten; joto la kuelea_buiten2; DHT dht (DHTPIN, DHTTYPE, 15); // DS18b20 vitu OneWire oneWire (ONE_WIRE_BUS); // oneWire mfano wa kuwasiliana na vifaa vyovyote vya OneWire DallasTemperature sensors (& oneWire); // Pita anwani ya mfano wetu mmoja kwa Joto la Dallas. KifaaAdressress Probe01 = {0x28, 0x0F, 0x2A, 0x28, 0x00, 0x00, 0x80, 0x9F}; Kifaa cha Anwani Probe02 = {0x28, 0x10, 0xA4, 0x57, 0x04, 0x00, 0x00, 0xA9}; // bmp180 vitu Adafruit_BMP085 bmp; usanidi batili () {// I2C stuff Wire.pins (0, 2); Waya.anza (0, 2); // Anzisha sensorer // dht 11 vitu dht. Anza (); // sensorer za vitu vya ds18b20. anza (); sensorer. Usuluhishi (Probe02, 10); // vitu vya bmp180 ikiwa (! bmp.begin ()) {// Serial.println ("Hakuna BMP180 / BMP085"); // wakati (1) {}} // OLED stuff display.init (); onyesha.flipScreenVertically (); onyesha.setFont (ArialMT_Plain_10); kuchelewesha (1000); // Unganisha kwenye mtandao wa WiFi WiFi.anza (ssid, password); wakati (WiFi.status ()! = WL_CONNECTED) {kuchelewa (500); }} kitanzi batili () {// ds18b20stuff ------------------- sensorer.requestTemperatures (); // Tuma amri kupata joto la joto_buiten = sensorer.getTempC (Probe01); // joto_buiten2 = sensorer.getTempC (Probe02); // // dht11 mambo ------------ ---- unyevu wa kuelea = dht. soma Unyenyekevu (); joto la kuelea = dht. Joto Joto (); ikiwa (isnan (unyevu) || isnan (joto)) {kurudi; } // vitu vya bmp ------------------ Kamba p = Kamba (bmp.readPressure ()); // Vitu vya OLED -------------------------- onyesho.safi (); onyesha DrawString (0, 10, p); // bmp shinikizo onyesha. onyesha (); // fanya unganisho la TCP mteja wa WiFiClient; const int httpPort = 80; ikiwa (! mteja.connect (mwenyeji, httpPort)) {kurudi; } Kamba url = "/ update? Key ="; url + = andikaAPIKey; url + = "& uwanja1 ="; url + = Kamba (joto); // roost (DHT1) url + = "& field2 ="; url + = Kamba (unyevu); // roost (DHT11) url + = "& field3 ="; url + = Kamba (joto_buiten); // joto la coop (DS18B20 nr 1) url + = "& field4 ="; url + = Kamba (joto_buiten2); // joto la mchanga (DS18B29 nr 2) url + = "& field5 ="; url + = Kamba (bmp.readTemperature ()); Joto la nje (BMP180) url + = "& field6 ="; url + = Kamba (bmp.readPressure ()); // Shinikizo la hewa (BMP180) url + = "\ r / n"; // Tuma ombi kwa mteja wa mteja.print (Kamba ("GET") + url + "HTTP / 1.1 / r / n" + "Jeshi:" + mwenyeji + "\ r / n" + "Uunganisho: karibu / r / n / r / n "); kuchelewesha (1000); }

……..

Hatua ya 3: Zaidi

Hivi sasa mpango huu unafuatilia tu, lakini ni nini kinachokuzuia kuongeza kitovu cha taa cha BH1750 I2C kupima ikiwa ni jioni au asubuhi au RTC kujua wakati wa siku na kufungua na kufunga mlango wa banda moja kwa moja kwa msaada wa kadi ya upanuzi ya PCF8574 I2C I / O, au kama ilivyo tayari kwenye bustani, ongeza kibadilishaji cha PCF8591 au ADS1115 AD kupima unyevu wa mchanga na kuwezesha pampu inapohitajika. Au labda kuwasha hita ya bonde la maji wakati joto hupungua chini ya sifuri ikiwa kuna chip ya I2 C kwa hiyo, ESP8266 inaweza kuitumia.

Ujumbe muhimu ingawa: Programu kama inavyofanya kazi vizuri, lakini ikiwa unaongeza sensorer zingine kwa Rx au Tx, haswa ukizifanya kuwa matokeo, pini zinaweza kukumbuka ghafla sio pini za GPIO. Ni bora kuambia pini kutoka mwanzo kuwa sasa ni pini za GPIO. Moja hufanya hivyo kwa kuweka taarifa zifuatazo katika usanidi:

pinMode (1, FUNCTION_3);

pinMode (3, FUNCTION_3);

Ilipendekeza: