مقدمه
آنچه در این آموزش یاد می گیرید
- اتصال سنسور ESP8266 به اینترنت و جمع آوری اطلاعات از یک صفحه ی وب
- انتقال اطلاعات دریافتی به آردوینو و تحلیل آن ها.
- جمع آوری اطلاعات یک شبکه ی اجتماعی مثل اینستاگرام.
- ساخت یک شاخص عقربه ای برای نمایش سرعت لایک ها برحسب لایک بر دقیقه
ماژول ESP8266 چیست؟
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرم افزارهای مورد نیاز
سرعت سنج لایک اینستاگرام: سیم بندی
سرعت سنج لایک اینستاگرام: کد
برای این پروژه باید دو کد جداگانه بنویسید. یکی برای آپلود کردن روی خود ماژول ESP8266 و دیگری برای آپلود کردن روی آردوینو.
کدی که روی ماژول وای فای می ریزید برای اتصال و گرفتن اطلاعات از سایت اینستاگرام و کدی که روی آردوینو می ریزید برای تحلیل این اطلاعات و چرخاندن موتور است.
کد زیر را روی آردوینوی خود آپلود کنید. اگر اولین بار است که از آردوینو استفاده می کنید، مراحل زیر را دنبال کنید:
- به آدرس www.arduino.cc/en/Main/Software رفته و نرم افزار IDE را متناسب با سیستم عامل خود دانلود و نصب کنید.
- نرم افزار Arduino IDE را اجرا کنید. تمام کد های پیش فرض را پاک کرده و کد زیر را به جای آن کپی کنید.
- نوع آردوینو خود را از پنجره ی Tools و قسمت Board انتخاب کنید.
- پورتی که (COM) آردوینو به آن متصل است را در پنجره ی Tools انتخاب کنید.
- دکمه ی Upload (شکلی که شبیه فلش است) را بزنید تا کد شما روی آردوینو آپلود شود.
- شما با موفقیت کد خود را روی آردوینو ریختید.
#include "Servo.h"
Servo myservo;
String inputString = ""; // a String to hold incoming data
boolean stringComplete = false; // whether the string is complete
long flike;
long like;
long mlike;
void setup() {
// initialize serial:
Serial.begin(115200);
myservo.attach(9);
// reserve 200 bytes for the inputString:
inputString.reserve(200);
}
void loop() {
// print the string when a newline arrives:
if (stringComplete) {
flike=like;
like=inputString.toInt();
Serial.println(like);
// clear the string:
inputString = "";
stringComplete = false;
}
mlike=like-flike;
mlike=mlike*20;
//Serial.print(mlike);
if (mlike==0) {mlike = 0;}
if (mlike==1) mlike = 20;
if (mlike<=10 && mlike>1) mlike = map(mlike, 1, 10, 20, 50);
if (mlike<=30 && mlike>10) mlike = map(mlike, 10, 30, 50, 70);
if (mlike<=50 && mlike>30) mlike = map(mlike, 30, 50, 70, 90);
if (mlike<=70 && mlike>50) mlike = map(mlike, 50, 70, 90, 110);
if (mlike<=100 && mlike>70) mlike = map(mlike, 70, 100, 110, 130);
if (mlike<=200 && mlike>100) mlike = map(mlike, 100, 200, 130, 150);
if (mlike<=500 && mlike>200) mlike = map(mlike, 200, 500, 150, 170);
if (mlike<=1000 && mlike>500) mlike = map(mlike, 500, 1000, 170, 180);
myservo.write(mlike);
//Serial.print(" ");
//Serial.println(mlike);
delay(15);
}
/*
SerialEvent occurs whenever a new data comes in the hardware serial RX. This
routine is run between each time loop() runs, so using delay inside loop can
delay response. Multiple bytes of data may be available.
*/
void serialEvent() {
while (Serial.available()) {
// get the new byte:
char inChar = (char)Serial.read();
// add it to the inputString:
inputString += inChar;
// if the incoming character is a newline, set a flag so the main loop can
// do something about it:
if (inChar == '\n') {
stringComplete = true;
}
}
}
کتابخانه ی زیر را دانلود کرده و آن را نصب کنید.
برای نصب کتابخانه ها، از پنجره ی Sketch و بخش Include Library، گزینه ی Add .ZIP Library را انتخاب کنید و فایل کتابخانه ای که دانلود کردید را انتخاب کنید.
سپس کد زیر را روی ماژول وای فای بریزید. اگر تاکنون به صورت مستقیم ماژول وای فای را پروگرام نکردید، به آموزش زیر مراجعه کنید.
راهنمای کامل مبتدیان برای استفاده از ماژول ESP8266 با Arduino IDE
کتابخانههای مورد نیاز:
#include "InstagramStats.h"
#include "ESP8266WiFi.h"
#include "WiFiClientSecure.h"
#include "JsonStreamingParser.h"
char ssid[] = "Electropeak.com"; // your network SSID (name)
char password[] = "electropeak1928374650"; // your network key
WiFiClientSecure client;
InstagramStats instaStats(client);
unsigned long delayBetweenChecks = 1000; //mean time between api requests
unsigned long whenDueToCheck = 0;
//Inputs
String userName = "arduino.cc"; // Replace your Username
void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
IPAddress ip = WiFi.localIP();
}
void getInstagramStatsForUser() {
InstagramUserStats response = instaStats.getUserStats(userName);
Serial.println(response.followedByCount);
}
void loop() {
unsigned long timeNow = millis();
if ((timeNow > whenDueToCheck)) {
getInstagramStatsForUser();
whenDueToCheck = timeNow + delayBetweenChecks;
}
}
سرهم بندی
یک گام جلوتر
چند پیشنهاد برای ارتقای پروژه:
- کتابخانه ی InstagramStats را طوری ویرایش کنید که بتوانید اطلاعات دیگر مثل تعداد فالور ها و … را بخوانید.
- سرعت خواندن اطلاعات را کمتر کنید تا مصرف اینترنت کاهش یابد.
Comments (2)
سلام
لینک آموزش آپلود روی ماژول وای فای ایراد دارد
ممنون
سلام دوست عزیز
ممنون از توجهتون. لینک اصلاح شد.