![](https://duino4projects.com/wp-content/uploads/2022/01/I2C-With-the-ESP8266-01.jpg)
سلام به همگی ! با این آموزش، مجموعهای از پروژهها را مینویسم و مستند میکنم که ویژگیهای مخفی مختلف (تبعنایی ناشناخته) ماژول WiFi کوچک ESP8266-01 را ذکر و کاوش میکند.
آیا می دانستید که ESP8266-01 از ارتباطات I2C پشتیبانی می کند؟ بله درست است، این ماژول کوچک که بدون مراقبت در گوشه ای از نیمکت الکترونیکی شما قرار دارد، این قابلیت را دارد که از این پروتکل ارتباطی شگفت انگیز پشتیبانی کند. این ماژول عمدتاً برای اتصال و ارائه اتصال WiFi به یک پروژه با استفاده از ارتباط سریال شامل پین های Tx و Rx ماژول استفاده می شود. اما در واقع این ماژول ارزان به خودی خود یک میکروکنترلر بسیار توانا است که می تواند به عنوان پروژه های مستقل نیز مورد استفاده قرار گیرد.
در این دستورالعمل، پروتکل ارتباطی I2C و رابط نمایشگر OLED را بررسی می کنیم تا برخی انیمیشن ها و داده های سفارشی را نیز نشان دهیم.
پس بیایید بدون تأخیر بیشتر وارد نظریه و در نهایت یک کاربرد عملی شویم که استعدادهای پنهان این دوست کوچک را نشان می دهد!
مرحله 1: اول: بررسی دیتاشیت
![](https://duino4projects.com/wp-content/uploads/2021/06/Checking-the-Datasheet.jpg)
میکروکنترلر اصلی ماژول ESP8266-01 ESP8266EX Espressif است که در مقایسه با میکروکنترلرهای محبوبتر در آردوینو بسیار قدرتمند است.
این چیز کوچک دارای مشخصات زیر است:
- CPU: پردازنده 32 بیتی Tensilica L106
- 1 مگابایت حافظه قابل برنامه ریزی!
- طیف خوبی از پروتکل های ارتباطی مانند: I2S، I2C، UART و SPI
- همچنین دارای ویژگی PWM و جالب اینکه یک ADC نیز دارد!
بسیار خوب، صحبت های خوب کافی است. آیا این به طور دقیق از I2C پشتیبانی می کند؟ بله، و نگاهی سریع به برگه داده نیز این ویژگی را تایید می کند.
در این مرحله من عکسهای فوری بخشهای دیتاشیت را پیوست کردهام که به وضوح قابلیت ارتباط و پینهای مورد نیاز برای اتصالات I2C را ذکر میکند.
I2C یک پروتکل ارتباطی بسیار قدرتمند است و فقط از 2 پین برای برقراری ارتباط استفاده می کند:
- SDA (این پین داده است )
- SCL (یا SCK در برخی موارد، این پین ساعت است)
سیستم هایی که از طریق I2C متصل می شوند دارای یک نوع توپولوژی ارتباطی اصلی هستند. در اینجا ما می توانیم چندین Master و چندین دستگاه Slave نیز داشته باشیم. اما چگونه یک دستگاه اصلی به طور خاص با یک برده خاص ارتباط برقرار می کند؟ خب در اینجا هر دستگاه یک آدرس منحصر به فرد دارد که می تواند برای دسترسی (یا ارتباط) با آن دستگاه خاص استفاده شود. این دستگاه می تواند یک دستگاه خروجی باشد، مانند صفحه نمایش های بسیار محبوب OLED یا همچنین می تواند یک دستگاه ورودی مانند MPU6050 یا سنسور BMP180 باشد.