سلام
نه بوت لودر رو فقط از طریق spi میتونید روش بریزید
یه avr پروگرامر اگر دارید جواب کارتون رو میده
نمایش نسخه قابل چاپ
من اگه بخوام از اردوینو یک سری اطلاعات بگیرم توسط سریال با esp8266، میشه تک تک اتصالات به پین های اردوینو رو به esp8266 وارد کرد تا از اونا بگیره اطلاعات؟ چیزی دراین مورد پیدا نکردم
سلام
راستش درست منظورتون رو متوجه نشدم
اگر منظورتون اینه که بتونید از GPIO های esp به جای آردوینو استفاده کنید جوابش اینه که بسته به پروتکلی که داره استفاده میشه تا حد زیادی شدنیه .
اگر spi یا i2c بخواید ساپرت می کنه
اگه سریال بخواید علاوه بر سریال سخت افزاری یه سریال نرم افزاری هم ساپرت می کنه .
اگر منظورتون چیز دیگه ای بوده بفرمایید تا پاسخ بدم .
برای این کار باید پین دیتای سنسور رو هم به esp بدید هم به آردوینو
اما به نظر من این که با هردو تا پردازنده داده سنسور رو بخونید کار مفیدی نیست .
داده رو با آردوینو بخونید با سریال بفرستید برای Esp . تو خود Esp هم کد بزنید که با داده سریال دریافتی قصد دارید چه کار کنید.
Arduino Wireless Temperature LCD Display (nRF24L01+ DHT11) | Elec-Cafe.Com
اینی که شما گذاشتین از فرستنده ای به فرستنده ی دیگه س
چطوری از طریق پرت سریال چندتا داده بفرستم و اونارو با esp دریافت کنم
راستی مال رله هم کنترلی نمیکنه روش
پین esp رو وصل میکنم و برنمشو میریزم
حتی دستور دادنی مینویسه Relay On یا off ولی عمل نمیکنه و اون رله همیشه روشنه! خاموشش نمیکنه
نباید مستقیم وصل شه به پینش یا ایراد جای دیگه س؟
اول در مورد رله با هم قضیه رو حل کنیم :
من با این کد دارم از یه رله 3 ولت تست میگیرم :
سیم بندیم هم به این شکله :کد:int Relay = 14;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(Relay, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(Relay, HIGH); // turn the Relay on (HIGH is the voltage level)
delay(3000); // wait for a second
digitalWrite(Relay, LOW); // turn the Relay off by making the voltage LOW
delay(3000); // wait for a second
}
nodemcu رله GND DC- 3.3 DC+ 14(D5) IN
رله ای که استفاده می کنم اینه :
ماژول رله 3.3 ولت یک کاناله KEEPONIC با قابلیت تنظیم سطح ولتاژ تریگر
بردمم اینه:
برد توسعه NodeMcu به همراه ماژول وایفای ESP8266 با مبدل CP2102
همین کارو کردم
البته ماژول رله من 4 کاناله
دوباره چراغ رله روشن میمونه
ولی وقتی دقت میکنم چراغ مربوط به اون رله هر سه ثانیه کمرنگ و پررنگ میشه
یعنی اون 3 ثانیه که باید رله رو روشن کنه ، چراغ رله پررنگ روشن میشه، و 3 ثانیه بعد بجای اینکه رله رو خاموش کنه فقط چراغش کم نور تر میشه.
مشکلم با یه 547 حل شد!
یه سوال
برای هر رله باید یدونه از این ترانزیستورها بزارم؟!
خب بریم سراغ ادامه ش
چطوری از سریال اردوینو چندتا داده رو بفرستم رو esp و دریافت کنه
برقراری اربتاط سریال بین آردوینو و ESP خیلی خیلی راحت تر از اون چیزیه که فکر می کنه .
این دو تا کد رو به تریتب روی UNO و روی esp آپلود کن :
سمت UNO:
و این کد رو سمت esp :کد:
#include <SoftwareSerial.h>
SoftwareSerial UNO(10, 11); // RX, TX
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
UNO.begin(9600);
UNO.println("Hello, world?");
}
void loop() { // run over and over
if (UNO.available()) {
Serial.write(UNO.read());
}
if (Serial.available()) {
UNO.write(Serial.read());
}
}
حالا هر دو سمت کنسول رو باز کن . هر داده ای که تو کنسول آردوینو بنویسی تو کنسول esp8266 چاپ میشه و هر داده ای که تو کنسول esp8266 بنویسی تو کنسول آردوینو چاپ میشه . به همین راحتیکد:
#include <SoftwareSerial.h>
SoftwareSerial esp8266(4, 5, 128);
void setup() {
Serial.begin(9600);
esp8266.begin(9600);
}
void loop() {
if (esp8266.available()) {
Serial.write(esp8266.read());
}
if (Serial.available()) {
esp8266.write(Serial.read());
}
}
تو این کدها به جای این که بیایم از پینهای سریال اصلی آردوینو و esp8266 استفاده کنیم از پین های سریال نرم افزاری استفاده کردیم . شماره پینهایی که استفاده شدن تو هدر برنامه معلوم هستن .
درمورد رله هم با با رله 4 کانال هم تست کردم .
ماژول رله 5 ولت چهار کاناله
با این کد :
هم با nodemcu تست کردم هم با esp-12 معمولیکد:/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
This example code is in the public domain.
*/
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = D0;
int led1 = D1;
int led2 = D2;
int led3 = D3;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(led1, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(led2, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(led3, HIGH); // turn the LED on (HIGH is the voltage level)
delay(3000); // wait for a second
digitalWrite(led, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(led1, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(led2, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(led3, LOW); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
}
با nodemcu خیلی قشنگ کار می کنه .هر 4 تا رله رو همزمان با هم روشن خاموش می کنم بدون هیچ مشکلی.
وقتی 3.3 میدم به عنوان VCC یه مقدار ضعیف تر عمل می کنه اما با vcc 5 ولت بهتر کار می کنه .
با esp-12 افتضاح بود .
مشکلش اینجا بود که پاور رله رو 3.3 داده بودم مشترک با esp-12 شما با ترانزیستور کارت رو حل کردی من با جدا کردن پاور رله از esp
اگر بتونی پاور رله ات رو یه 5 ولت جداگانه بدی نیازی به ترانزیستور نخواهی داشت .
چطوری 5 ولت بدم از پایه ش؟
و چطوری از پورت سریال داده بگیره و بفرسته؟
اگه داری ازesp-12 استفاده می کنی خودت باید یه 5 ولت مجزا تهیه کنی . مثلا از این آداپتورهای 5 ولت بگیری سرشو کات کنی و از سیم های قرمز و مشکیش استفاده کنی.
اگربتونی از Nodemcu استفاده کنی با میکرو USB بهش پاور میدی و از پایه vin اش ولتاژ می گیری.
************************************************** ****************************
برای پورت سریال هم باید کنسول آردوینو هر دو طرف ( آردوینو و esp رو ) باز کنی و تو قسمت بالاییش هر چی میخوای بنویسی Send رو بزنی.
اگه خواستی بگو از نحوه کامند دادنش برات فیلم بگیرم
اره esp12 هستش
نتونستم 5 ولت مجزا بدم، نفهمیدم باید به پینش پنج ولت بدم؟ نسوزه؟
به رله هم 5 ولت مجزا دادم باز نشد
************************************************** **************************
سریال مانیتور میگین؟
کامند که نمیخوام بفرستم، میخوام دوتا پورت اردوینو رو سریال کنم مثلا 2 و 3، و متصل کنم به esp
بعد esp بتونه از پورت سریال به اردوینو وصل شه اطلاعاتی از سنسور هارو دریافت کنه
به نظرم باید تو اردوینو برنامه بنویسم که بفرسته از طریق پورت سریال و esp هم دریافت کنه
ولی چجوریشو نمیدونم.
یه سوال بی ربط هم دارم.
دوتا سیم انداختم تو اب که یکیش - و اون یکی +
هروقت اب داشت این دوتا به هم متصل میشن به خاطر رسانا بودن اب و یک سری اتفاقات میوفته در این صورت.
مشکلی که دارم اینه که چون مسی هستن سیما بعد یه مدت از بین میرن :D
راه حلی دارین برای این؟ سیم الومینیومی هست؟
در مورد رله منظور من پین vcc رله هست که باید به 5 ولت وصل بشه .
چون قراره Esp دستور بفرسته برای رلهو از طرف رله چیزی نمیاد نه نمیسوزه
************************************************** ********************
کدی که من فرستادم صرفا یه راهنمایی بود که بتونی از طریق کنسول داده بفرستی .
میتونی به جای کنسول خودت هر داده ای رو که میخوای بفرستی با دستور Serial.print بفرستی
************************************************** ********************
میتونی از سیم های فولادی استفاده کنی ( البته یه ایدس نمیدونم اصلا منطقیه یا نه )
هرکاری کردم نشد
برای esp چی باید بنویسم که تک تک دریافت کنه، دما ، رطوبت و... رو
*****************************
سیم فولادی اینترنت گشتم نبودشما سراغ دارین؟
بیشتر کابل فولادی بود :D
یجور سنسور میسازم سطح آب رو مشخص کنه، سیم مسی از بین میره تو آب.
*****************************
سنسور DS18B20 ضد آبه، ینی میشه اونم فرو کرد تو آب؟ خراب نشه؟ :D
سلام
آره میتونی استفاده کنی از این دو تا سنسور
سنسور دما ، ضد آب با پوشش استیل ضد زنگ - دماسنج DS18b20
سنسور دما ضد آب LM35DZ دارای پوشش استیل ضد زنگ
*****************************
گفتم که یه ایدس . خودم تا حالا دنبالش نبودم.
*****************************
کد من رو تونستی راه بندازی ؟
تونستی با کنسول داده رد و بدل کنی. اول این کار رو بکن تا کد رو با هم پیش ببریم .
اتصالات رو زدم
RX - TX
Tx- RX
البته همون پین هایی که تعریف کردیم برای اردوینو و esp
و کدهارو تو هردوش اپلود کردم
سریال رو که باز میکنم هیچی نمینویسه فقط یک سری مربع با سرعت هی نوشته میشه...
حتی فرصت نمیده چیزی بنویسی
و چراغ Tx اردوینو همینطور روشن میمونه
چطوری هم زمان سریال هردوشو باز کنم؟ من نفهمیدم
خب انجام دادم ممنون بابت راهنمایی
ورژن اردوینو من 1.6 هست دوتا سریال باهم باز نمیکنه
بجاش تو همون کدی که برای آردوینو دادین، کد تست DHT رو اضافه کردم و بجای serial.print ، که هر 2 ثانیه اطلاعات دما و رطوبت رو چاپ میکنه، Uno.write نوشتم. و وصل کردم esp و کنسول esp رو باز کردم
یعنی Dht وصل کردم به اردوینو uno
اردوینو uno رو وصل کردن به esp از طریق سریال
و esp رو به pc و کنسول رو باز کردم
اطلاعات دما و رطوبت رو نشون نمیده، بجاش یک سری نوشته های چرتوپرت هر 2 ثانیه چاپ میکنه.
این یعنی ارتباط سخت افزاری برقرار شد ولی فکر کنم ناخوانا بودن اطلاعات بخاطر 9600 باشه.
حالا چطوری چندتا داده رو باهم بفرستم به esp و esp اونهارو بفرسته به وب سرور و خودش هم یک سری کارها انجام بده مثلا اگه دما بیشتر از 30 شد رله 1 روشن کنه؟
اول باید بفهمیم چرا داده ناخوانا میاد
این که هر دو ثانیه یه بار داره میاد یعنی میفهه که دیتا داره میاد.
این که داده نامفهوم چاپ می کنه بزرگترین علتش بادریت هست که مچ نیست .
اگر یقین دارید که بادریت ها درسته ( که به نظرم بعید و دوباره چک کنید ) سعی کنید یه string بفرستید مثلا Uno.write کنید salam رو . ببیندی باز هم داده عجیب غریب دریافت می کنید .
سلام . باید عرض کنم من هم مشکل دوستمون Smead رو دارم .
هر دو برنامه ای که برای UNO و ESP8266 رو گذاشتید آپلود کردم . هزار بار هم باد ریت ها رو چک کردم . ولی روی سریال UNO هر چی مینویسم روی سریال ESP8266 فقط یه مشت نوشته نامفهوم میاد .
خواهش میکنم خودتون یه چک کنید ببینید اشکال از کجاست
سلام . باید عرض کنم من هم مشکل دوستمون Smead رو دارم .
هر دو برنامه ای که برای UNO و ESP8266 رو گذاشتید آپلود کردم . هزار بار هم باد ریت ها رو چک کردم . ولی روی سریال UNO هر چی مینویسم روی سریال ESP8266 فقط یه مشت نوشته نامفهوم میاد .
خواهش میکنم خودتون یه چک کنید ببینید اشکال از کجاست
ببینید من هم میخوام با استفاده از ورودی های آنالوگ uno یه سری اطلاعات اعداد رو که از سنسورهام میخونم برای ESP8266 ارسال کنم . همونطور که خودتون هم میدونید این ماژول وای فای فقط یک ورودی آنالوگ داره که برای من کافی نیست . من خیلی جلو رفتم و اطلاعاتم رو واسه سرورم ارسال میکنم و اونها رو توی اینترنت مانیتور میکنم . فقط الان باید بتونم ماژول وای فای رو که همه چیش کامله به UNO متصل کنم که به تعداد بیشتری ورودی آنالوگ دسترسی داشته باشم . به همین دلیل تمام پستهای این لینک رو خوندم و کارهایی رو که گفتین دنبال کردم . فقط این ارتباط سریال رو نیتونم برقرار کنم . اگه لطف کنید و راهنمایی بفرمایید کمک بزرگی به من میکنید .
این رو هم اضافه کنم که من از nodmcu دارم استفاده میکنم
سلام من مخام یه ماژولماژول esp8266 مدل wemos d1 رو بهیه برد اردینو uno وصل کنم....
میشه اتصالات سخت افزاری و بگید؟؟ چه پین هایی رو باید به هم وصل کنم؟؟/
سلام خسته نباشید
من مخام با اتصال esp8266 به اردینو با یک سرور ارتباط برقرارکنم یعنی یه سری اطلاغات به سرور میفرستم و سرور به من پاسخ میده.
الان ماژول esp8266-01 رو به اردینو وصل کردم
به پین شماره ۳ متصل شود
TX به پین شماره ۲ متصل می*شود
VCC به ۳٫۳ولت متصل شود ( به هیچ عنوان به ۵ ولت متصل نشود )
GND به GND آردوینو
پین RESET و همجنین CH_PD نیز به ۳٫۳ ولت منصل شود
GPIO-0 و GPIO-2 بدون اتصال باشند
الان چند مشکل وجو دارد ماژول با ارسال at ، ok را ارسال میکند ولی وقتی دستور" AT+CWJAP="ssid","pwd رو به مانیتور ارسال میکنم اررو میده و مدام خطوطی نامفهوم رو نمایش میده ؟؟
میشه بگید مشکل از کجاست؟؟
ایا باید برنامه روی esp8266 ریخته شود؟؟؟چه فرقی بین برزنامه که میریزی روی ماژول و at command ها وجود داره؟؟
جایی خوندم که نباید از 3.3 اردینو استفاده کنم به برد اسیب می رسونه درسته؟؟؟میتونم از چند باتری قلمی و رگولاتور lf33 استفاده کنم؟؟
اگه نخام دستورات at command رو در سریال مانیتور بنویسم فقط در متن برنامه نوشته بشه درسته جواب میده ؟؟؟
سلام
منم این کارو کردم و از دستورات at استفاده نکردم یکم پیچیده بود برام
یه کد روش اپلود کردم که به راحتی به وای فای و یک سرور متصل میشه و دیتا میفرسته و دریافت میکنه. عالیه
اگه خواستین بزارم اینجا
بهتره یگ رگولاتور 3.3 ولت وصل کنید به ورودیش و راحت استفاده کنید یا از برد توسعه یافته ورژن 12 استفاده کنین خودش رگولاتور و پروگرامر داره
برای وصل شدن به موبایل میتونید از برنامه IOTmanager استفاده کنین خوبه
سوال داشتین باز درخدمتم
سلام ممنون میشه برنامه رو بذارید یه کم راهنماییم کنید خیلی مستاصلم
سلام، اگر شما صرفا میخواین داده از esp8266 ارسال و دریافت کنین به سرور، برای مثال esp شما از طریق سنسور DHT میزان دما و رطوبت رو به سرور ارسال کنه و شما با ارسال کردن داده از طریق سرور بخواین esp یک کاری انجام بده" این آسونه، از طریق پروتکل MQTT که بعضی سایتها سرویس ارائه میکنند میتونین انجام بدین که از همه جا قابل دسترس هست.
ولی اگر بخواین کارهای پیچیده تری انجام بدین، به فرض esp داده ای که از DHT دریافت میکنه بفرسته به سرور، و سرور عملیاتی رو اون داده انجام بده و پاسخ بفرسته به esp، اون وقت بحث جداست و شما خودتون باید یک سرور MQTT (به اصطلاح broker) بسازین که این خودش یه پروژه ایه!
درمورد پروتکل MQTT توضیحی بدم؛
این پروتکل برای ارتباط میان چندین دستگاه یا اپ یا حالا هرچی از طریق اینترنت و یا شبکه محلی استفاده میشه که قابلیت اینو داره هزاران دستگاه در یک زمان و با سرعت بالا به هم متصل باشند و دیتا ردوبدل کنند و شرکت های زیادی از این نوع ارتباط استفاده میکنن مثل خیلی از برنامه های مسنجر و...، و به دلیل قابلیت هایی که داره در اینترنت اشیا و شهر هوشمند استفاده میشه و خواهد شد.
این پروتکل شامل سه بخش هست:
Publish برای ارسال داده
Subscribe برای دریافت داده
و broker که بخش اصلی هست پل ارتباط میان sub و publish است و درواقع سرورمونه.
شما بایستی یک اکانت broker بسازین که این شامل ادرس یا ip، پورت ، username, password و عنوان ارتباط (مثلا mymqtt) برای ارتباط چنددستگاه در یک بخش میباشد.
توجه کنین که دونوع MQTT broker داریم در سایتها، یکی public که امنیتی نداره و هرکسی میتونه اطلاعات رو بخونه و اطلاعات سرور عوض میشه. و دیگری privet که ارتباط امن میان دستگاه و بروکر ایجاد میکنه و فقط خودتون میتونین بخونین و اطلاعات سرور تغییر نمیکنه و همیشه هست که معمولا پولیه، بجز سایت cloudmqtt که خدمات رایگان privet ولی محدود هم داره. و اگه بخواین از خدمات بیشتر استفاده کنین باید هزینه کنین.
حالا وقتی شما یک بروکر ساختین باید اطلاعاتش رو وارد esp8266 کنین تا به سرور متصل شه و از دستور publish برای ارسال داده مثل همون print و از subscribe برای دریافت داده از سرور استفاده کنین.
مثلا esp از سنسور DHT هر 5 ثانیه میزان دما و رطوبت رو publish کنه رو broker، و شما هرکجا که باشین با اتصال به سرور اون دیتا رو میتونین دریافت (subscribe) کنین و یا پاسخ بدین (publish) و esp8266 اون رو دریافت کنه (subscribe) برای انجام عملیات.
حتی شما میتونین یک وبسایت یا اپ بسازین تا متصل شه به همون سرور و دسترسی آسانتر و گرافیکی داشته باشین به دیتاها، مثل برنامه IOT manager که یکی از بهترین برنامه ها برای اندروید و iOS هست در این زمینه.
موفق باشین.
من یه esp8266 ورژن 12 رو دارم که به هر طریقی که خواستم فایل بین رو بریزم توش نشد و در 99 درصد ارور میده کسی میتونه کمکم کنه ؟؟/
سلام و خسته نباشید
آیا امکان این وجود داره که توی ماژول NODMCU ESP8266 برای تعریف ssid , pass از طریق سریال اینها رو تعریف کرد
اینجوری کار پرتابل میشه