WiFi-module ESP8266 ESP07 voor domotica. WiFi ESP8266 is een nieuwe stap in het ontwerp van thuisapparaten met een draadloze interface. Conclusies over ESP8266


Miniatuur WiFi-modules ESP8266 zijn behoorlijk aantrekkelijk voor systemen slim huis En domotica. Ze worden ook wel ‘NRF24L01-moordenaars’ genoemd.
Ik heb later aanpassingen aan ESP07 en ESP12 besteld, die verschillend zijn kleinere maten En een groot aantal afgeleide GPIO's, waarvoor geen "hacks" nodig zijn om er extra I/O-poorten in te gebruiken.

Deze modules zijn ontwikkeld Chinees bedrijf

Specificaties:

  • WI-FI: 802.11 b/g/n met WEP, WPA, WPA2.
  • Bedrijfsmodi: Client (STA), Access Point (AP), Client+Access Point (STA+AP).
  • Voedingsspanning 1,7..3,6 V.
  • Stroomverbruik: tot 215mA, afhankelijk van de bedrijfsmodus.
  • Aantal GPIO's: 16.
  • Flash-geheugengrootte 512 kb.
  • Data-RAM 80 kB
  • RAM-instructies - 32 kb.
Over wijzigingen van ESP8266-modules

Ik heb de modules in januari besteld.
Prijs - $3,78, - $4,24. Ik heb het gekocht als beloning voor het beoordelen van een artikel. Aangekomen in 31 dagen in verzegelde zakken







ESP8266 ESP-07




ESP8266 ESP-12




Het opnieuw tot leven wekken van de module duurde behoorlijk lang
Om dit te doen, moet u er 3,3V op toepassen. Bovendien trekken de stabilisatoren op USB/UART-converters geen stroom uit deze module, waardoor externe voeding nodig is.

RXD, TXD en GND zijn via de computer verbonden.

Als resultaat heb ik het volgende circuit op een breadboard gemonteerd:

Hier kwam ik meteen de volgende moeilijkheid tegen: de steek van de gaten op de ESP07 is 2 mm, en niet 2,5 zoals de pinconnectoren die in Arduino en andere plaatsen worden gebruikt.
Ik moest draden aan het breadboard solderen





Ik heb onmiddellijk de RESET-knop en de GPIO0-jumper naar aarde gebracht, waardoor de module naar de firmware-downloadmodus schakelt. En ik heb de stroom op de module aangesloten

Daarna lanceerde ik het CollTerm-programma en ontving een module-uitnodiging met een snelheid van 9600.
De AT+GMR-opdracht heeft 0020000904 uitgegeven (SDK-versie - 0020, AT-versie - 0904)


Voor degenen die te lui zijn, zoals ik, om met AT-opdrachten om te gaan, is er een tool waarmee je dit allemaal kunt configureren.

Ik heb de firmware gedaan. Omdat dit programma werkt alleen met COM1-COM6, ik moest mijn COM33 wijzigen van USB/UART-converter naar COM6 in Apparaatbeheer.

Vervolgens is het installeren van de firmware niet moeilijk: open de poort en maak verbinding. De snelheid wordt automatisch geselecteerd. Het belangrijkste is om niet te vergeten GPIO0 met aarde te verbinden (hier heb ik een speciale jumper voor). De snelheid wordt automatisch geselecteerd. Soms kwam de verbinding niet tot stand. Het indrukken van de RESET-knop tijdens de verbinding hielp.



Nu kunt u verbinding maken met de module
In dit programma kunt u bestanden voor de LUA-tolk in ESP laden en zowel afzonderlijke opdrachten als scripts van deze tolk uitvoeren.


Ik kon de druk-/temperatuurmodule BMP180 gebruiken die was aangesloten op GPIO2 en GPIO0

Om dit te doen, heb ik het bestand bmp180.lua gedownload van de kant-en-klare modules die bij de firmware van GITHUB zijn geleverd
En dan wordt het bestand init.lau uitgevoerd wanneer de ESP8266 opstart
tmr.alarm(1, 5000, 1, function() print("ip: ",wifi.sta.getip()) bmp180 = require("bmp180") bmp180.init(4, 3) tmr.stop(1) -- einde alarmstop)

Het uitvoeren van het programma zonder de timer te vertragen resulteerde in een onveranderlijke fout.
Na het opnieuw opstarten, coderen
bmp180.read(OSS) t = bmp180.getTemperature() p = bmp180.getPressure() -- temperatuur in graden Celsius en Farenheit print("Temperatuur: "..(t/10.." C") -- druk in verschillende eenheden print("Druk: "..(p * 75 / 10000.." mmHg")

Voer de huidige druk en temperatuur uit naar de console.

Maar ik kon deze parameters niet in de webservermodus uitgeven. Het heeft allemaal te maken met een gebrek aan geheugen. De webserver en BMP180 werkten afzonderlijk, maar samen crashten ze
PANIEK: onbeveiligde fout bij aanroep van Lua API (fout bij laden van module "bmp180" uit bestand "bmp180.lua": niet genoeg geheugen)
Of er vielen stukjes LUA-code op de console.

Het was niet mogelijk om ter plekke te moderniseren.

Mijn verdere pad was om mijn firmware op een eigen SDK te bouwen, zoals . Maar dat is een ander verhaal. Laat ik zeggen dat de firmware zonder problemen werd geassembleerd, maar dat de noodlottige BMP180 niet kon worden gelanceerd.

Conclusies

  • ESP8266-modules zijn erg goedkope oplossingen voor het bouwen van een smart home-netwerk en andere domotica met behulp van WiFi
  • Deze modules zijn zeer geschikt om de NRF24L01+ te vervangen in combinatie met Arduino en andere “populaire” controllers.
  • Om als onafhankelijke controller te kunnen werken, heeft de ESP8266 weinig bronnen en nogal ruwe firmware
  • Het programmeren van ESP-modules is een nogal arbeidsintensief proces dat voor beginners intimiderend kan zijn
  • Over het geheel genomen is de ESP8266 veelbelovend. Ik wacht op de ontwikkeling van firmware en ontwikkeltools, maar voorlopig zal ik ze gebruiken in combinatie met andere controllers (behalve )))

Tot op heden Wi-Fi-kosten modules streeft naar centen dankzij de ontwikkeling van . Hierdoor kun je thuisapparaten op niveau ontwikkelen Wi-Fi-technologie. Wat levert dit ons op? In feite is veel praktisch hetzelfde als het internet zelf, naast al het andere. Wanneer een apparaat wordt gemaakt, heeft het nu dus toegang tot het netwerk en internet (als het op het netwerk aanwezig is), wat betekent dat het apparaat in theorie toegankelijk is voor elk ander apparaat dat zich op het netwerk bevindt of met internet is verbonden. Nog maar vijf jaar geleden konden jij en ik niet eens dromen van een dergelijk niveau van huishoudelijke apparaten.

Ik besloot een apparaat te maken dat sensorgegevens naar internet zou sturen, waardoor het mogelijk zou zijn om metingen overal in de stad, het land of op het land via internet te volgen.

Bij het kiezen van de ESP8266 WiFi-module leunde de keuze dus op het ESP-07-model met connectiviteit externe antenne ontvangen beter signaal binnen gekocht Chinese online winkel GearBest. In dit geval hebben we de antenne zelf nodig (ik heb me niet druk gemaakt over kleinigheden, maar elke andere met een RP-SMA-connector op WiFi-frequenties is voldoende), een connector om de antenne op de module aan te sluiten, en, indien nodig, een verlengsnoer voor de antenne. Plus de nodige sensoren.

Om mee te werken module ESP-07 Er werd een printplaat gemaakt volgens het volgende schema:

De schakeling bestaat uit drie hoofdblokken: een 3,3 volt spanningsregelaar VR1 met noodzakelijke elementen(de verstelbare versie van de stabilisator kan vervangen worden door ams1117 3v3 met uitzondering van weerstanden R1 en R3), het benodigde blok voor het programmeren van de WiFi-module is gemaakt op basis van de USB-UART interface converter CH340G met de nodige bedrading van de chip (CH340G kan worden vervangen door andere microschakelingen met de overeenkomstige functionaliteit door de bedrading te vervangen door een vervangbare chip), de WiFi-module zelf, evenals de noodzakelijke elementen voor de werking en programmering ervan. Om naar de programmeermodus te gaan, moet u op de S2 Prog-knop drukken en de module opnieuw opstarten, of de stroom uit- en weer inschakelen terwijl u de S2 Prog-knop ingedrukt houdt. Download vervolgens met behulp van de software op uw pc de firmware naar de WiFi-module. Nadat de firmware is voltooid, start u de module opnieuw op, maar zonder op de S2 Prog-knop te drukken - op deze manier werkt de module in de hoofdmodus. Bij gebruik van een externe antenne biedt het bord ruimte voor het bevestigen van de antennebeugel. De beugel zelf kan de eenvoudigste configuratie hebben. Voor aansluiting op een computer wordt een mini-USB-connector gebruikt.

Om de antenne op de ESP-07 aan te sluiten, gebruikt u een IPX naar RP-SMA-kabel. Omdat ik voor mezelf de 18 dB GDI-8218-antenne heb gekozen, ziet het met sensoren gemonteerde apparaat er behoorlijk bedreigend uit. Bij gebruik van meerdere sensoren moet je uiteraard alles met elkaar verbinden broodplank Als je slechts één BMP280-sensor gebruikt om de weerparameters te monitoren (meet temperatuur, druk en vochtigheid), dan ziet het circuit er mooier uit. Bovendien is het bord voor ESP8266 gemaakt als universeel gereedschap, dus als je het bewerkt en ervoor zorgt dat sensoren rechtstreeks op het bord worden geïnstalleerd, krijgt het circuit een compacter en esthetischer uiterlijk.

Het gebruik van een antenne in deze vorm is niet altijd handig, dus voor het gemak kunt u een RP-SMA man-vrouw-verlengkabel voor de antenne gebruiken om deze op een handige plaats vast te zetten of eenvoudigweg ten opzichte van het hele circuit te verplaatsen.

Een alternatief voor een dergelijk bord kunnen fabrieksnodemcu-kaarten of adapterkaarten voor PLS/PBS-contacten zijn. Deze laatste hebben slechts een paar weerstanden die nodig zijn om de module in te schakelen en een plek voor een spanningsstabilisator (niet inbegrepen). Vanwege hun zeer minimale aard was het voor mij niet handig om dergelijke borden te gebruiken (tenzij als onderdeel van een ander apparaat dat is uitgerust met een connector voor een dergelijk bord).

Om verbinding te maken met de sensormodule kunt u alle vrije GPIO's van de module gebruiken. Om metingen te verkrijgen van de parameters die we nodig hebben, kunnen alle sensoren in elke configuratie worden gebruikt, die hieronder zullen worden besproken. Ik heb DS18B20-sensoren gebruikt in het metersondeformaat (het is handig om de temperatuur buiten of een vloeistof te controleren, omdat deze als waterdicht wordt beschouwd), BMP180 voor monitoring atmosferische druk en AM2302 voor controle van de luchtvochtigheid binnenshuis. Vergeet de benodigde bedrading van de sensoren niet als je ze niet gebruikt in de vorm van modules met al het nodige: DS18B20 is met een pull-up weerstand verbonden met de power plus (10 kOhm weerstand tussen de 1-draads pin en de power plus), vergelijkbaar met AM2302 (DHT22), moeten sensoren die op de I 2 C-bus werken ook pull-up-weerstanden hebben op de SCL- en SDA-contacten.

Om het resultaat te bereiken, is het echter noodzakelijk om firmware te schrijven zodat het apparaat precies werkt zoals we het nodig hebben. Met voorbereide ideeën werd bij het zoeken naar een SDK voor de ESP8266 een online firmware-ontwerper (of online compiler) gevonden, waarvoor geen programmeerkennis vereist is (in de meeste functies)! Om toegang te krijgen tot de firmware-assemblage is registratie vereist, anders is dit menu helemaal niet beschikbaar. Zonder registratie kunt u alleen “quick start”-firmware downloaden.

Het enige wat we nodig hebben is om de vakjes met de nodige functies aan te vinken en de firmware voor de ESP8266-module te compileren, te downloaden (hier moeten we er rekening mee houden dat het modulegeheugen niet onbeperkt is en selecteren noodzakelijke functies, aangezien alle functionaliteit van de online compiler nog steeds niet in één apparaat past).

Flash vervolgens de module met behulp van het nodemcu-flasher-programma (programma-instellingen hieronder in de screenshots) (sluit het apparaat via USB aan op de pc). Bij het knipperen mag er niets op de UART-pinnen van de module (GPIO1, GPIO3) worden aangesloten, anders wordt de module mogelijk niet geflasht. Als u van plan bent iets op deze pinnen aan te sluiten, moet u dit gedurende de looptijd van de firmware uitschakelen. Na het flashen van de firmware starten we de module opnieuw op of schakelen we de stroom uit en weer in - afhankelijk van de instellingen zal de module verbinding maken met het netwerk of een eigen toegangspunt creëren. Het apparaat is klaar voor instellingen en gebruik!

Als de WiFi-module al met andere firmware is gebruikt, wordt aanbevolen om, voordat u de hoofdfirmware schrijft, de firmware op te schrijven met een leeg formulier (bestand in de applicaties).

Stel de instellingen in voor de ESP-07-module (zoals de praktijk laat zien, heeft het instellen van de flashgeheugengrootte geen invloed op de gebruikte sample; blijkbaar wordt de juiste waarde automatisch ingesteld):

Geef het pad naar het firmwarebestand op:

Specificeer COM-poort geïnstalleerd tijdens het verbinden voor deze module en druk op de Flash-knop (als alles correct is gedaan, wordt de firmware in de module geladen):

Wacht tot de firmware is voltooid:

Voordat u de firmware compileert, is het handig om de standaardinstellingen in te stellen op de online compilerpagina, waar u de naam van het toegangspunt moet invoeren en WiFi-wachtwoord router (sectie " Systeem" aan het einde van de functionaliteitsselectielijst voordat u de firmware assembleert). Bovendien kunt u een statisch IP-adres voor het apparaat instellen. Hiervoor kunt u in systeem functies U moet het vakje naast “ Standaardinstellingen» en klik op het tandwiel om een ​​menu te openen waarin deze gegevens indien nodig worden ingevoerd. In dit geval zal het WiFi-apparaat na het inschakelen automatisch verbinding maken met de router. Nadat u deze hebt ingeschakeld, opent u de browser en voert u in de adresbalk het IP-adres in van het apparaat waarmee deze zich op het netwerk heeft geregistreerd. Wij bevinden ons erin WiFi-menu apparaten waar u niet alleen de parameters van de sensoren binnen het netwerk kunt bewaken, maar ook andere functies kunt configureren die u hebt geselecteerd voordat u de firmware assembleert.

Als u de standaardinstellingen niet maakt voordat u de firmware assembleert, dan wordt er, wanneer u deze voor de eerste keer inschakelt (na het flashen van de firmware moet u 3 keer op de resrt-knop op de module drukken met een interval van 1 seconde), een toegangspunt zal worden gecreëerd hamessmart op het adres 192.168.4.1 . Met behulp van een telefoon of laptop moet u verbinding maken met een toegangspunt en via een browser naar dit adres gaan, instellingen uitvoeren en indien nodig opnieuw configureren Stationmodus bij instellingen Voornaamst(Log in om naar het menu te gaan , wachtwoord 0000 ), waarbij u ook de naam van het punt invoert WiFi-toegang router en wachtwoord.

Eerst moet u de instellingen in het menu invoeren Voornaamst(veld Configuratie bevat links voor instellingen en configuratie van geselecteerde functies).

Om het menu te openen, moet u uw gebruikersnaam en wachtwoord invoeren. 0000 . Hier kunt u de instellingen voor beveiliging, tijd en netwerkverbinding beheren. Om de ingevoerde instellingen op te slaan, drukt u op de knop Set.

Keer terug naar het hoofdmenu en volg de link Hardware. Hier activeren en configureren we de sensoren die op de module worden aangesloten (beschikbaarheid diverse sensoren in dit menu wordt bepaald door hun keuze bij het samenstellen van de firmware - als u vóór het compileren niets selecteert, zijn deze functies niet beschikbaar in de firmware zelf). Voor sensoren die via de I2C-bus werken, moet u gemeenschappelijk instellen voor alle apparaten GPIO. Waarom gebruikelijk? Met de I2C-bus kunt u meerdere apparaten parallel aansluiten. Elk dergelijk apparaat heeft zijn eigen adres, en zodra het masterapparaat dit adres verzendt, weet het slave-apparaat met dit adres dat er nu gegevens mee worden uitgewisseld, terwijl de andere apparaten op de bus inactief zijn. Voor het aansluiten van DHT11/22 vochtigheidssensoren wordt een aparte modulepoot gebruikt, deze wordt ingesteld in de instellingen van dit menu. Om de DS18B20-sensor in te schakelen, moet u ook een afzonderlijke GPIO-pin instellen. Vervolgens, vergeet niet om de ingevoerde instellingen op te slaan, naar het hoofdmenu gaan en de 1-draads link volgen.

In dit menu klikt u op Lijst wissen en scannen, waarna het zou moeten verschijnen Identiteitskaart sensor DS18B20. En pas daarna zal de temperatuursensor werken.

Om analoge sensoren aan te sluiten, kunt u een ADC (de enige pin ADC WiFi-module). Dit is de ingebouwde ADC van de module met een bitcapaciteit 10 bits (1023 monsters) met referentiespanning 1,024 V. Als de sensor een uitgangsspanningsniveau heeft dat groter is dan deze waarde, is het noodzakelijk om een ​​spanningsdeler te gebruiken die gebruik maakt van weerstanden met een bekende deelcoëfficiënt. De resulterende waarde van de ADC zal met deze factor verschillen van de werkelijke waarde. Veel analoge sensoren zijn in de handel verkrijgbaar als modules op basis van de LM393. Het werkingsprincipe van dergelijke modules is dat trimmerweerstand de referentiespanning voor de comparator (LM393) is ingesteld, en zodra de impact op de sensor de spanning aan de ingang van de comparator verhoogt, waardoor deze groter wordt dan de referentie, wordt er een logische eenheid gegenereerd aan de uitgang van deze module . Zo kunt u de responsdrempel van de sensor (of beter gezegd de module van deze sensor) aanpassen en het bereiken van deze drempel eenvoudig registreren met behulp van GPIO ESP8266 geconfigureerd voor invoer. Ga hiervoor naar het hoofdmenu en klik op de GPIO-link. Stel in dit menu het pinnummer en de bedieningsmodus ervoor in en sla deze op. De lezingen zullen zijn als " 0 " of " 1 " - de drempel is bereikt of niet, de actie heeft plaatsgevonden of niet.

Volg nu de link om sensormetingen op internet weer te geven Servers of DDNS afhankelijk van de geselecteerde internetverbindingsmethode. In eerste instantie was ik van plan om hiervoor de dienst narodmon.ru te gebruiken, die de sensormetingen van alle gebruikers die deze dienst gebruiken rechtstreeks op de kaart weergeeft. Daarnaast heeft deze dienst applicaties en widgets voor mobiele apparaten en pc, wat erg handig is. Registreer u voor deze service (het is volledig gratis) met behulp van Identiteitskaart(zie screenshot hieronder - link Servers velden Configuratie).

Dienst mensenodmon(populair toezicht) slaat sensormetingen maximaal 1 jaar op en stelt u in staat sensorstatistieken voor een bepaalde periode samen te stellen naast andere functionaliteit.

Na alle manipulaties in WiFi-instellingen modulegegevens worden naar een externe dienst gestuurd voor het monitoren en opslaan van sensorindicatoren, die overal ter wereld met internettoegang kunnen worden bekeken. De hoofdpagina van de module is beschikbaar in lokaal netwerk en geeft de meetwaarden van alle aangesloten sensoren weer. Het gewenste effect is bereikt.

Uiteraard biedt de online compiler nog vele andere functies: het aansluiten van diverse displays, e-mail verzenden of sms (verplicht gsm-module Voor sms'en zonder internetdiensten), maatwerk logische bewerkingen, bediening van diverse randapparatuur via GPIO en PWM, opname gecontroleerde parameters naar een SD-geheugenkaart en nog veel meer. Als één module niet genoeg is, kun je er meerdere maken, binnenin werken ze als één geheel gedeeld netwerk dankzij de functies van virtuele sensoren en virtuele GPIO (het ene apparaat ontvangt sensormetingen van het andere KRIJG verzoek). Als er simpelweg niet genoeg invoer-/uitvoerpoorten zijn, zijn er functies voor het aansluiten van poortuitbreidingen. Sommige functionaliteit is alleen beschikbaar in Pro-modus firmware, die is geactiveerd startpagina via de GET PRO-link. Om te activeren moet u een code invoeren. Deze is niet gratis, maar kost slechts een symbolisch bedrag en kan worden verkregen in persoonlijke rekening online compilerwebsite.

Voor instellingen is het belangrijk om de GPIO van de module (als de ESP-07 op het bord is gesoldeerd, zijn de pinaanduidingen niet zichtbaar) niet te verwarren met normaal gebruik:

Naast alles kunnen de overige terminals van de module worden aangesloten op een display waarop we de waarden van weersensoren gaan weergeven. De ontwerper ondersteunt ILI9341 - TFT LCD-schermen van 240x320 die werken via een SPI-interface.

Bij het samenstellen van de firmware specificeren we op welke GPIO-pinnen CS en DC van het display zullen worden aangesloten (het instellingenmenu wordt opgeroepen op de designerwebsite bij het selecteren van functies door op het tandwiel te klikken naast de functie die we nodig hebben). De overige pinnen moeten als volgt worden aangesloten: MOSI - GPIO13, SCK - GPIO14, reset en LED zijn verbonden met de plus van de vcc-voeding, en dienovereenkomstig vcc en gnd met de plus en min van de voeding (we nemen voeding van de WiFi-module 3,3 volt).

Hier schakelen we TFT in, draaien indien nodig het display 90 graden en stellen in welke lijnen ( Lijn 0, Lijn2...) welke informatie we zullen weergeven. Met functie ingeschakeld Tijd en NTP in systeemconstructorfuncties met NTP-servers tijdsinformatie wordt verzameld via internet, waardoor ons apparaat een nauwkeurige klok wordt die niet hoeft te worden aangepast. Wij produceren huidige tijd naar het display en nog een paar weerparameters om het display in te vullen. Om dit in het veld te doen Lijn selecteren selecteer een regel, daarnaast selecteren we de parameter die we op deze regel zullen weergeven, hieronder selecteren we indien nodig datacentrering, lettergrootte en letterkleur. Klik Set en de instelling wordt opgeslagen. Het lettertype is alleen van het eenvoudige lettertype. De selectie van voorbereide parameters is vrij klein, maar voldoende, maar met behulp van de stringconstructor kunt u alle parameters in elke configuratie weergeven.

Bij het artikel hoort een bestand printplaat voor de ESP-07-module, firmware met een blanco formulier, firmware met verschillende functionaliteiten voor de ESP-07, wat documentatie, een stuurprogramma voor USB-programmering voor de CH340G-chip, een programma voor het flashen van de ESP8266.

Lijst met radio-elementen

Aanduiding Type Denominatie Hoeveelheid OpmerkingWinkelMijn notitieblok
IC1 ESP8266-moduleESP-071 Naar notitieblok
IC2 USB-interface-ICCH340G1 Naar notitieblok
VR1 Lineaire regelaar

AMS1117-ADJ

1 Naar notitieblok
VD1 Schottky-diode

1N5819

1 Naar notitieblok
R1 Weerstand

3 kOhm

1 1206 Naar notitieblok
R2, R7-R9 Weerstand

10 kOhm

4 0805 Naar notitieblok
R3 Weerstand

1,8 kOhm

1 1206 Naar notitieblok
R4 Weerstand

1 kOhm

1 0805 Naar notitieblok
R5, R6 Weerstand

390 Ohm

2 0805 Naar notitieblok
C1 Condensator10 µF1 aan boord van keramiek 1206 Naar notitieblok
C7 Condensator22 µF1 tantaal + 2,2 µF keramiek 1206 Naar notitieblok
C6 Condensator100 µF1 tantaal

Verschillende implementatieopties voor de ESP8266-module zijn hier meer dan eens besproken, en terecht. Deze kleine chip ter grootte van een muntje met WiF aan boord kan zowel als toegangspunt als als client werken en kan op elke manier worden geprogrammeerd - en wordt voor een paar dollar verkocht.

Voordat we tijd hadden om te wennen aan het idee dat op een cent Arduino, Attiny of STM allerlei interessante ambachten kunnen worden gemaakt - net als apparaten met WiFi en krachtige processors bij 80 megahertz werden ze concurrenten in prijs. (Verdorie, mijn processor staat in de eerste eigen computer was iets sneller, hoe oud ben ik).

Eén probleem: alle apparaten met ESP8266 die door mijn handen gingen, waren erg lastig, het aansluiten ervan was lastig. Maar de Chinese industrie hoorde ons en deed het bijna goed :)

Waarom we “liefhebben” verschillende opties ESP8266:

  • Ze worden aangedreven door 3,3 volt, in plaats van de meer gebruikelijke vijf
  • Op piekmomenten hebben ze een stroom nodig van maximaal 320 mA, wat de mogelijkheden van conventionele USB-TTL-converters te boven gaat.
  • De afstand tussen de borduitgangen is meestal niet de standaard 2,54 mm, maar precies 2 mm - wat solderen tot een ingewikkeld avontuur maakt
  • Er is slechts één versie van het bord met een pinafstand van 2,54 mm (“ESP8266-01”), maar deze heeft een minimum aan bruikbare pinnen
  • Door het sluiten van de contacten wordt de chip in de programmeermodus geschakeld, wat vaardigheid vereist. Of het solderen van de knop
  • Met Reset hetzelfde probleem: schakel de stroom uit of soldeer de knop
En toen bracht de Chinese industrie “ESP8266-12E” uit onder de naam “Witty Cloud”:

Het bord is een “sandwich” van twee. Op de bovenste laag (links op beide foto's) bevindt zich de ESP8266-chip zelf, daaronder bevindt zich de connector microUSB-voeding en een spanningsregelaar AMS1117-3.3, wiens taak het is om 5 volt om te zetten in 3,3. Volgens de datasheet heeft de regelaar stromen tot 0,8A, dus dit is ruim voldoende om de chip van stroom te voorzien. Daar - Reset-knop opnieuw opstarten.
Om iets te hebben om de lege hoeken van het bord te bezetten, plaatsten de Chinezen daar een RGB-LED en een fotoresistor, waarover later meer.

Op de onderste laag van de "sandwich" (rechts afgebeeld) bevindt zich een volwaardige MicroUSB, een CH340G-chip en de knoppen "Flash" (firmwaremodus) en "Reset".

“Sandwich” geeft meer bewegingsvrijheid. U kunt de “sandwich” aansluiten op de computer in de onderste (volledige) USB-aansluiting, herprogrammeer het - en integreer het vervolgens alleen in uw ambacht bovenste deel, waardoor u bespaart op de grootte van de behuizing.

Bovendien kan de onderkant van de “sandwich” worden gebruikt om zelfgemaakte modules te programmeren. Ik heb zelf de rondslingerende ESP8266-12- en ESP8266-07-modules op niet erg succesvolle adapterkaarten gesoldeerd voor $ 0,22 en AMS1117-regelaars "op het snot" aangesloten - beide werkten zonder problemen en bleken honderd procent compatibel te zijn qua connectoren en knoppen:

Oké, genoeg geprezen over de module, laten we iets nuttigs doen. De pagina van de verkoper adverteert met een soort SDK en zelfs een soort Chinese ‘cloud’ voor apparaten gebaseerd op ESP8266 en Android, hoewel er (bijna) geen informatie over te vinden is in het Engels. Als dat zo is, laten we ze dan opgeven, laten we lanceren Arduino-IDE 1.6 en laten we naar de instellingen gaan.

In het venster “Aanvullende URL’s” voegt u de regel https://arduino.esp8266.com/package_esp8266com_index.json in. Open vervolgens “Boards manager” en voer “ESP8266” in de zoekbalk in. Klik op Installeren en wacht totdat maar liefst 130 megabytes aan pakketten zijn gedownload:

Laten we de "sandwich" op de computer aansluiten in de onderste (volledige) MicroUSB-connector. Windows zou de USB-TTL-converter "CH340G" moeten detecteren en deze moeten toewijzen virtuele haven. Het is deze poort die we zullen aangeven Arduino-instellingen IDE. De overige instellingen zijn:

Laten we de elementaire code in het geheugen opslaan

#erbij betrekken const char* ssid = "??? naam van uw WiFi-punt ???"; const char* wachtwoord = "??? wachtwoord???"; WiFiServer-server(80); void setup() ( Serial.begin(115200); WiFi.begin(ssid, wachtwoord); while (WiFi.status() != WL_CONNECTED) ( delay(500); Serial.print("."); ) server. begin(); Serial.print("IP-adres van onze module: "); Serial.println(WiFi.localIP()); void loop() ( WiFiClient-client = server.available(); if (!client) ( return ; ) while(!client.available())( delay(1); ) client.flush(); Hallo van esp8266!\n"; client.print(s); vertraging(1); )

Houd er rekening mee dat u tijdens het knipperen niet op de Flash-knop hoeft te drukken; het bord regelt alles zelf.

Na nieuw programma Gegoten in de ESP8266, kan deze worden losgekoppeld van de computer en zelfs van stroom worden voorzien via een powerbank. Het onderste deel van de “sandwich” kan losgemaakt worden; dit is niet meer nodig.

Ofwel met Arduino-hulp seriële monitor (poortsnelheid - 115200), of in de webinterface van de router kijken we naar het IP-adres dat we hebben ontvangen WiFi-thuisnetwerk onze ESP8266. Open dit adres in de browser van uw computer of telefoon:

Ons apparaat is verbonden met thuisnetwerk, bracht de webserver naar voren en reageert op ons.

Weet u zeker dat uw apparaat werkt? Laten we verder gaan. Om het voor iets nuttigs in het dagelijks leven te kunnen gebruiken, is het interessant om er ‘vrienden mee te maken’, bijvoorbeeld met een relais. Het is waar dat klassieke 5-volt-relais per definitie niet langer nodig zijn - het risico is te groot dat de spanning van 3,3 volt niet voldoende zal zijn om de elektromagneet aan het anker te laten trekken. Daarom nemen we een solid-state relais van Omron voor $ 1,90. Volgens het gegevensblad is de spanning die we hebben voldoende om duidelijk te kunnen werken:

De “plus” en “min” verbinden we met de VCC en GND contacten van de bovenste laag van de “sandwich”, en de derde signaaldraad naar bijvoorbeeld het GPIO 2 contact kun je als programma nemen de WiFiWebServer-schets, die bij de Arduino-bibliotheek is gevoegd, of gebruik het programma van de collega Bespaar13 van samopal.pro/wifi-power-esp8266/

Voor de test nam ik een eenvoudige halogeenlamp van 20 W en klikte deze naar hartenlust aan:

De bediening vindt plaats in een fractie van een seconde nadat het commando is gegeven. Om de betrouwbaarheid te controleren, heb ik een eenvoudige teller in de code geplaatst en een eenvoudig bat-bestand geschetst waarmee de lamp met een pauze per seconde aan en uit werd gezet. Ik heb er een aantal geopend extra ramen, van waaruit het IP-adres van de module met eindeloos begon te bombarderen ping-opdracht. Na een paar uur overschreed de aan-uitteller de 19 duizend, maar alles werkte - wat enig vertrouwen geeft in de betrouwbaarheid van het apparaat.

Als je tot nu toe hebt gelezen, maar de gedachte “dit is allemaal ingewikkeld” in je hoofd ronddraait, dan heb ik iets leuks voor je.

Vergeet niet dat ik dat vermeld heb Chinese fabrikant“voor verandering”, heb je een RGB-LED en een fotoresistor op het bord geplaatst? Je kunt ermee experimenteren, ook als je geen andere sensoren of andere randapparatuur hebt.

Bij deze optie moet u moeite doen en de Arduino IDE starten precies één keer.


Het applicatiescherm is een leeg veld waarop u elementen kunt plaatsen, zoals op een dashboard. Probeer eerst "zeRGBa" en "gauge":

Geef in de zebra-instellingen op dat de driekleurige LED op het bord is aangesloten op pinnen 12 (groen), 13 (blauw) en 15 (rood):

Geef in de “gauge”-instellingen op dat de fotoresistor op het bord is aangesloten op de analoge ingang “adc0”:

Activeer wat je hebt gebeeldhouwd door op de knop aan de rechterkant te klikken bovenste hoek. Je zult zien dat de gele indicator verandert afhankelijk van het lichtniveau, en dat de RGB-LED op de “sandwich” van kleur verandert als je in het zebrapad prikt:

De praktijk leert dat kinderen dit ding erg leuk vinden. Het is één ding om de games van anderen op een tablet te spelen, het is iets anders om zelf een ‘afstandsbediening’ te maken en te schilderen en iets tastbaars te besturen. Het is voldoende om het voorbereidende gedeelte in Arduino op zich te nemen en vervolgens te laten zien hoe je het moet gebruiken, verschillende LED's, knoppen of onderdelen zoals een analoge LM35-temperatuursensor te voorzien - ze zullen je "speelgoed" onmiddellijk wegnemen en je kind zal bezig zijn voor een lange tijd. Je wordt niet aan je oren afgetrokken, het is gecontroleerd.

Voor snelle creatie De prototypes van Blynk bleken ook erg handig: het is gemakkelijker om daar knoppen en schakelaars te schetsen dan om je eigen webinterface te bouwen. De bespaarde tijd kan worden groter voordeel besteden aan het samenstellen van een ander vaartuig.

Cv

Voor een prijs van iets meer dan 200 roebel krijg je een zeer krachtig en volledig onafhankelijk apparaat waarop je allerlei nuttige dingen voor je huis kunt programmeren - en via wifi kunt bedienen.

De “sandwich” bleek verrassend succesvol. Hij is minder dan een dollar duurder dan de kale ESP8266-12, maar bespaart je een hoop tijd en gedoe. Een hoop draden en een breadboard zijn niet nodig.

Het idee om vooraf een LED en fotosensor op het bord te installeren is zeer succesvol. Zelfs als je niets anders hebt dan een module en een MicroUSB-kabel, kun je in ieder geval eerst iets proberen en genieten van de aankoop. Als ze niet nodig zijn voor het eindproduct, soldeer ze dan gewoon of knip ze af.

Voor deze prijs is de "sandwich" een duidelijke concurrent Arduino Nano en maakt het zeer onnodig Bluetooth-modules(type HC-05) en nog meer - NRF24L01+ radiomodules.

Ik betrapte mezelf en verbrak bijna de traditie: