صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از 1 به 10 از 14
Like Tree5 لایک

موضوع: ورودی آنالوگ با ماژول وایفای esp8266 ؟؟

  1. #1
    Junior Member
    تاریخ عضویت
    May 2015
    نوشته ها
    28

    ورودی آنالوگ با ماژول وایفای esp8266 ؟؟

    سلام. من ماژول ESP8266 مدل 01 اش رو دارم و چیزی که همونطور که میدونین کلا 8 پایه ازش بیرون اومده.
    اما مدل هایی رو Nodemcu زده رو نقشه اش که نگاه بکنی یه ورودی ADC0 هم داره!
    خواستم ببینم که:
    1. اولا این واقعا ورودی آنالوگ به دیجیتاله دیگه؟! اساسا این ویژگی داشتن ورودی آنالوگ، مربوط به ورژنیه که Nodemcu زده، یا خود چیپ ESP8266 همچین آپشنی داره؟
    2. اگه مربوط به خود چیپه ، من نمیتونم یجوری پایه اش رو بکشمش بیرون که دیگه پول اضافی خرج نکنم؟
    3. میشه به کمک این ADC و بدون استفاده از هیچ واسطی ( میکرو، آردیونو، و ... ) سیگنال آنالوگ(مثلا صوت) رو بهش داد که اون دیجیتال شده اش رو از طریق وایفای ارسال کنه؟!
    4.بفرض اینکه این حالت شدنی باشه و بشه صرفا با اتصال سریال از طریق IDE آردوینو پروگرمش کرد، چه تنظیماتی باس اعمال بشه؟ هنوز هم فرض رو بر این بگذارین که میخوام پایه ADC رو هرجور شده از رو برد بکشیم بیرون
    5. حالا بفرضیکه این موارد با مدل 01 نشد، از تولیدات NodeMcu کدومش رو باس از سایت بخرم؟

    * کلا اگه بتونم Headless کارمو را بندازم ترجیح داره به اینکه متعلقات بهش اضافه کنم


    ================================================== =
    پی نوشت !
    خب بنظر میرسه من قسمتی از جواب هام رو گرفتم! با اینحال ممنون میشم دوستانی که تجربه اش رو کردن رد یا تاییدش کنن

    ج1 : بله ، ورودی آنالوگ به دیجیتاله و این رو هم بلطف خود چیپ ESP8266 داره!
    ج2 : چرا میشه ! ولی قدری دست ظریف میخواد و اعصاب لطیف ) اینم راهنماش :
    سوالای 3 و 4 که کلیدی ترن هنوز بی جوابن




    بروزرسانی (8 مرداد) :
    مبدل آنالوگ به دیجیتال داخلی ESP8622 از نوعه SAR هستش ( رزولیشن و سرعت نمونه گیری متعادل) ، 10 بیتیه و رنجه ولتاژ قابل اندازه گیریش 0 تا 1 ولته. اطلاعات بیشتر
    با این حساب در بهترین حالت دقت ماژول، 1 میلی ولته و ازونجایی که عموم صداهای استخراج شده از میکروفون ( بدون تقویت) رنجی زیر 10 میلی ولت دارن، برای تقویت صدا ، نیاز به یه پیش تقویت حداقل 10 برابری احساس میشه تا صدا با دقت قابل قبولی دیجیتال بشه. این کار رو ماژول ارزونقیمت Max9812 هم میتونه براتون انجام بده. البته یحتمل حذف DC خروجی ماژول با کوپلاژ خازنی و و بایاسینگ مناسب روی 0.5 ولت هم لازمتون بشه.
    ویرایش توسط ratin : 07-29-2016 در ساعت 03:47 PM دلیل: بروز رسانی

  2. #2
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    دو تا سوال اولتون که اوکی
    اما در مورد سوال های بعدیتون
    Esp یه مشکلی داره و اونم این هست که وقتی سیگنال آنالوگ میگیره و داره به دیجیتال کانورت می کنه نمیتونه همزمان داده ای رو به صورت وایفای بفرسته و میگن که وایفایش قطع میشه
    این چیزیه که تو خیلی فروم های خارجی نوشتن و اگر اینطوری باشه کاری که شما میخوای انجام بدی کلا منتفی میشه
    چون حجم حافظه انقد پایینه که به صدا نمیرسه

    من باز هم تحقیق می کنم
    لایک کردن

  3. #3
    Senior Member
    تاریخ عضویت
    Dec 2013
    محل سکونت
    ایران - شیراز
    نوشته ها
    220
    سلام من این مورد رو چک کردم چون خودم هم همین کار رو می خوام انجام و به خوبی هم کار کرد.

    #include <arduino.h>
    #include <esp8266wifi.h>
    #include <esp8266wifimulti.h>
    #include <esp8266httpclient.h>
    #include <wifiudp.h>

    const int analoginpin = a0;
    unsigned int localport = 4000;
    int sensorvalue = 0;

    char ssid[30] = "your-ssid";
    char key[30] = "your-key";

    wifiudp udp;

    void write_string_val(string val){
    int len = val.length();
    for(int i=0;i<len;i++){
    udp.write(val[i]);
    }
    udp.endpacket();
    }

    void wifi_connect(){
    wifi.begin(ssid, key);
    wifi.mode(wifi_sta);
    byte dis = 0;
    byte endd = 0;
    while (wifi.status() != wl_connected) {
    delay(500);
    dis++;
    endd++;
    if (endd == 45){break;}
    if (dis == 15){
    wifi.disconnect();
    dis = 0;
    wifi.begin(ssid, key);
    wifi.status();
    }
    }
    }

    void setup() {
    serial.begin(9600);
    udp.begin(localport);

    wifi_connect();
    }

    void loop() {
    sensorvalue = analogread(analoginpin);
    serial.print("sensor = " );
    serial.println(sensorvalue);

    udp.beginpacket({192,168,1,50}, 6000);
    write_string_val(string(sensorvalue));
    delay(10);
    }
    روی سنسور mq-2 با esp8266 سری 07
    لایک کردن

  4. #4
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط solxsado نمایش پست ها
    سلام من این مورد رو چک کردم چون خودم هم همین کار رو می خوام انجام و به خوبی هم کار کرد.



    روی سنسور mq-2 با esp8266 سری 07
    اگه دارید لاگ می کنید یعنی حرفی که زدن اصلا درست نیست و یا شاید به خاطر Delay ای که گذاشتید باشه
    delay ای هم که گذاشتید 10 واسه دیتا خوبه

    جالب شد صدا رو خودم در اولین فرصت تست کنم

  5. #5
    Junior Member
    تاریخ عضویت
    May 2015
    نوشته ها
    28
    ممنون!
    من خودممم خیلی این دو روز راجبش خوندم و برام واقعا جالب شده.
    عالی نیس قطعا، ولی یه مینیمم سیستمی ازش درمیاد که تو خیلی جاها کارآیی داره.

    راستی من پایه adc مدل 01 رو ازش کشیدم بیرون! سخت بود ولی شد :))))

    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: photo893284899454298039.jpg
مشاهده: 213
حجم: 87.1 کیلو بایت


    میدونم چیزی مشخص نیس، زیر بار چسبی که روش ریختم مدفون شده! ولی مجبورم بودم!
    لایک کردن

  6. #6
    Junior Member
    تاریخ عضویت
    May 2015
    نوشته ها
    28
    بینهایت ممنون! اگه رو صدا و خصوصا رو این مدل 01 که من سیمشو کشیدم بیرون! هم شدنی بشه عالی میشه!
    فعلا که لنگ یه مبدل کوفتی سریالم که تا همین دیروز بود تو بساطم و الان نیس.
    الان داشتم تحقیق میکردم ببینم نمیشه با همین پروگرمر usbasp یجوری! ولی یحتمل نشه . دستکم بدون واسطه نمیشه. :/

  7. #7
    Junior Member
    تاریخ عضویت
    May 2015
    نوشته ها
    28
    نقل قول نوشته اصلی توسط solxsado نمایش پست ها
    سلام من این مورد رو چک کردم چون خودم هم همین کار رو می خوام انجام و به خوبی هم کار کرد.

    روی سنسور mq-2 با esp8266 سری 07
    دمتون گرم.
    کدتون بخوبی کار کرد. فقط همین مشکل که انجمن ، حروف بزرگ انگلیسی رو کوچیک میکنه باعث شد پیر بشم تا کد تصحیح بشه و اجرا شه )
    من از ماژول ESP-01 استفاده کردم که خودم سیم ADC رو از پایه 6 اش کشیده بودم بیرون.

    حالا چند سوال :

    1. من نویز قابل توجهی تو خروجی میبینم! برای شما هم همچین چیزی هست؟ مثلا وقتی صاف وصلش میکنم به زمین، و انتظار دارم فقط صفر نشون بده ، رقص مقادیر داره بین 0 و 1 و 2 و گاها 3 ! بنظرتون چرا؟
    2. من صدا رو هم باهاش ارسال کردم، دستکم رو درگاه سریال که بدرستی نشون میداد مقادیر رو . ولی دقیقا نمیدونستم با چی مقادیر رو روبستر وایفای ببینم، یا بشنوم؟
    شما خودتون سمت گیرنده وایفایتون چی دارین که داده هارو دریافت کنین؟ همین نرم افزار سریال پورت اندروید، یا چیز بهتری؟

  8. #8
    Senior Member
    تاریخ عضویت
    Dec 2013
    محل سکونت
    ایران - شیراز
    نوشته ها
    220
    Packet Sender
    با این نرم افزار
    لایک کردن

  9. #9
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    این که مستقیم گراند می کنی ولی داره مقدار بر می گردونه نشون میده یه مشکل سخت افزاری این وسط وجود داره .
    این مشکل میتونه از سیمی باشه که استفاده کردی .
    یا ممکنه به خاطر لحیم کاری ای باشه که انجام دادی
    این قسمت داستان با یه سری سعی و خطا کم میشه
    این که ماکزیمم تا 3 میره نشون میده نویزت زیاد قوی نیست اما خب باز هم خطا ایجاد می کنه.

    ************************************************** *********

    برای دریافت هم میتونی بفرستیش روی وایفای و توی هر دیوایسی که به وایفای وصله اونجا دیکد کنی
    میتونه لپتاپت باشه
    میتونه اندروید باشه
    نرم افزارهای مختلفی براش نوشتن
    ویرایش توسط magmagmary : 08-06-2016 در ساعت 09:41 AM
    لایک کردن

  10. #10
    Junior Member
    تاریخ عضویت
    May 2015
    نوشته ها
    28

    افزایش نرخ نمونه بردای adc در esp8622

    ممنون از توضیحاتون . من این مشکل نویز رو بالاخره باهاش کنار اومدم. چون هم دامنه اش کم بود، هم با OverSampling و 10 بیت رو رشوندم به 13 بیت تقریبا مشکل رو مرتفع شده میدونم.
    مشکل حادی که الآن بوجود اومده سر نرخ نمونه برداری ـه !!!

    طبق اندازه گیری های من تبدیل ADC تو این ماژول برای هر نمونه حدود 95 میکرو ثانیه زمان میبره.
    و این ینی اگه بخوایم هیچگونه OverSampling ای هم روش نزنیم، ماکزیمم نرخ نمونه برداری که میتونیم بهش برسیم 1000/0.95 ینی 10 کیلو هستش!
    خب با این نرخ نمونه برداری نمیشه صدای چندان خوبی دریافت کرد. دیگه ساده ترین فرمت های صوتی هم دیگه نرخ 44100 رو دارن. :|

    با توجه به کریستال 25 مگاهرتزی که رو ماژول هست، طبعا مبدل داخلی باید بتونه نرخ نمونه برداری بیشتری رو هم فراهم کنه !
    الان اتمگا32 با کریستال 16 مگ، تا 1 مگ سرعت کلاک ADC داره ( با PreScaler=16) .
    تو این سرعت اتمگا32 هر نمونه رو بعد 20 میکرو ثانیه تولید میکنه که میشه 50 کیلو نرخ نمونه برداری! و این برای نمونه برداری برای صدا خیلی خوبه.

    حالا چجوری میشه که اینکه کریستالش ازونم سریعتره، سرعت نمونه برداریش اینقدر کمتر از اتمگا باشه؟!
    خب یحتمل بخاطر اینکه ضریب PreScaler گنده ای براش گذاشتن.
    حالا سوال من اینه که :

    میشه این ضریب کذایی رو ، یا اصلا نه! یکراست خود سرعت نرخ نمونه رو ، بشه تعییر داد تا به سرعتای نمونه برداری بیشتری برسیم؟!



    #بروزرسانی ( 17 مرداد) :
    با تغییر CPU Frequency از منوی Tools آردینو IDE از 80 به 160 ، نرخ نمونه برداری بهتر شد ! سرعت تولید نمونه از 95 رسیده به 81 . و نرخ نمونه برداری به 12.3 کیلو.
    ولی هنوزم کمه
    ویرایش توسط ratin : 08-06-2016 در ساعت 08:51 PM دلیل: بروزرسانی

صفحه 1 از 2 12 آخرینآخرین

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO