Stap 2: Beste truc – Use I2C
De beste truc om extra ingangen in de ESP8266-01 is een I2C-interface gebruiken.
Een keuze is het gebruik van GPIO0 en GPIO2 als de I2C-bus.
De pullup weerstanden die nodig zijn om de module te starten correct verdubbelen kunnen als de I2C bus pull-up weerstanden en anderzijds, slaaf, onderdelen op de bus zijn open collector en dus moeten niet trekken de bus naar beneden op power-up. Echter in sommige gevallen slaven, vooral die met batterij back-up, kan vastgelopen en de bus ingedrukt. In die gevallen zal u moet isoleren van de bus tot de ESP8266 via de opstart fase krijgt.
U kunt dit probleem voorkomen door met behulp van TX en RX voor de I2C-bus
Een paar dingen op te merken:
- GPIO1 (TX) wordt gebruikt als de Data lijn, want je altijd sommige debug output op GPIO1 op de macht krijgt omhoog. Er is geen manier om deze uitvoer onderdrukt, maar de Clock lijn (RX) zal worden opgeheven zodat geen van deze gegevens zal worden geklokt aan de slaven
- Bij het programmeren de ESP8266, is de RX-lijn verbonden met de programmer's uitvoer. Aan het eind van de programmering de ESP8266 opnieuw wordt opgestart en 330 bescherming weerstand voorkomt RX kortsluiting de programmer's uitgang station.
- De I2C serie weerstanden bieden vergelijkbare bescherming voor de TX, RX uit Broek op de I2C-bus
De ESP8266 is 3,3 v apparaat gebruik dus bij voorkeur 3.3V I2C slaven. Veel, maar niet alle, I2C-apparaten zijn 3,3 v zijn deze dagen. "In het algemeen, in een systeem waar één apparaat bij een hogere spanning dan een ander is, het wellicht mogelijk om verbinding maken met de twee apparaten via I2C zonder enig niveau verschuiven circuits ertussen. De truc is de pull-up weerstanden verbinden met de laagste van de twee spanningen." (SparkFun I2C tutorial) Voor een mengsel van 5V en 3,3 v apparaten verbinden met de pullup weerstanden de 3,3 v lijn, zoals hierboven weergegeven.
Met behulp van I2C is een geweldige manier om een meerkanaals A-naar-D-converter toevoegen aan de ESP8266-01 die niet de Eén ADC-aansluiting van de onderliggende module blootstellen doet. Bijvoorbeeld met behulp van Adafruit 12 bits I2C 4 kanaal ADC of voor analoge uitgang Van SparkFun I2C DAC Breakout-MCP4725 board. Veel andere soorten sensoren zijn ook verkrijgbaar met I2C bussen.
Zie http://www.i2c-bus.org/i2c-primer/common-problems... voor meer informatie van de I2C problemen te overwinnen. Zie ook Betrouwbare opstarten voor I2C batterij back RTC voor een korte methode om duidelijk de bus te helpen