Lời kết
Trên đây là toàn bộ những thông tin về việc cài đặt và kết nối ESP8266 NodeMCU với Blynk. Việc kết nối này giúp cho người dùng có thể điều khiển các thiết bị IoT từ xa thông qua mạng Internet. Nếu bạn đang quan tâm đến việc tạo ra các dự án IoT đơn giản, hãy thử tìm hiểu và áp dụng các thông tin trên để bắt đầu với những ý tưởng của riêng bạn. Chúc bạn thành công!
Giới thiệu về blynk
Blynk là một nền tảng với các ứng dụng điện thoại thông minh cho phép bạn có thể dễ dàng tương tác với bộ vi điều khiển như: Arduino, Esp8266, Esp32 hoặc Raspberry qua Internet.
Blynk App là một bảng điều khiển kỹ thuật số cho phép bạn có thể xây dựng giao diện đồ họa cho dự án của mình bằng cách kéo và thả các widget khác nhau mà nhà cung cấp thiết kế sẵn.
Blynk không bị ràng buộc với một số bo hoặc shield cụ thể. Thay vào đó, nó hỗ trợ phần cứng mà bạn lựa chọn. Cho dù Arduino hoặc Raspberry Pi của bạn được liên kết với Internet qua Wi-Fi, Ethernet hoặc chip ESP8266, Blynk sẽ giúp bạn kết nối và sẵn sàng cho các dự án IoT.
Blynk Server – chịu trách nhiệm về tất cả các giao tiếp giữa điện thoại thông minh và phần cứng. Bạn có thể sử dụng Blynk Cloud hoặc chạy cục bộ máy chủ Blynk riêng của mình. Nó là mã nguồn mở, có thể dễ dàng xử lý hàng nghìn thiết bị và thậm chí có thể được khởi chạy trên Raspberry Pi.
Thư viện Blynk – dành cho tất cả các nền tảng phần cứng phổ biến – cho phép giao tiếp với máy chủ và xử lý tất cả các lệnh đến và lệnh đi.
Mỗi khi bạn nhấn một nút trong ứng dụng Blynk, thông điệp sẽ truyền đến không gian của đám mây Blynk, và tìm đường đến phần cứng của bạn.
Mọi thứ bạn cần để xây dựng và quản lý phần cứng được kết nối: cung cấp thiết bị, hiển thị dữ liệu cảm biến, điều khiển từ xa với các ứng dụng web và di động, cập nhật chương trình cơ sở qua mạng, bảo mật, phân tích dữ liệu, quản lý người dùng và truy cập, cảnh báo, tự động hóa và nhiều thứ khác hơn…
Đặc tính
- API và giao diện người dùng tương tự cho tất cả phần cứng và thiết bị được hỗ trợ
-
Kết nối với đám mây bằng cách sử dụng:
- Wifi
- Bluetooth và BLE
- Ethernet
- USB (Nối tiếp)
- GSM
- Bộ Widget dễ sử dụng
- Thao tác ghim trực tiếp mà không cần viết mã
- Dễ dàng tích hợp và thêm chức năng mới bằng cách sử dụng ghim ảo
- Theo dõi dữ liệu lịch sử qua tiện ích SuperChart
- Giao tiếp giữa thiết bị với thiết bị sử dụng Bridge Widget
- Gửi email, tweet, push notification…
Các tính năng mới liên tục được bổ sung!
Review về app Blynk new 2.0 so với phiên bản Blynk cũ
Những ưu điểm của Blynk new 2.0:
- Có thể cập nhật OTA
- Có sẵn phần thêm ESP làm thiết bị và add wifi cho ESP sử dụng
- Các button có thể thêm icon, hình ảnh vào để cá nhân hóa, thể hiện trực quan hơn, người dùng có thể dễ dạng nhận biết button đó là để điều khiển thiết bị nào.
- Không cần thêm cầu kết nối data giữa các thiết bị khác nhau ở code nữa , chỉ cần chọn nó dùng data stream nào là được, ví dụ là dùng 2 thiết bị muốn ấn bật tắt trên 1 thiết bị , nó sẽ đồng bộ hóa ngay vs thiết bị kia để hiển thị trạng thái của cả 2 là giống nhau
- Sử dụng số lượng Widget box tùy ý không bị giới hạn Enzeny như xưa, ngày xưa muốn dùng nhiều sẽ phải làm bộ Pi server, vừa tốn tiền, vừa bị lag hơn server chính hãng, dùng mấy server chia sẻ trên các nhóm cộng đồng thì mất bảo mật.
Những nhược điểm của app blynk new 2.0:
- Bản miễn phí chỉ dùng được 2 Devices trên 1 ứng dụng, Device ở đây tương tự như Project trên app cũ, app cũ có thể tạo được nhiều project
- Ngoài ra bản miễn phí còn 1 cái nữa là cái đồ thị theo dõi (Superchart) chỉ dùng được duy nhất 1 data stream ,muốn xem thêm cái khác thì phải thêm ô (Superchart ) khác nữa và sẽ khó so sánh các thông số trực quan, bản cũ sẽ dùng được 4 cái stream sẵn có, bản mới muốn có phải xài bảng tốn phí
- Không có theo dõi GPS như bảng cũ
Như vậy, theo mình thấy app mới cho người dùng doanh nghiệp là chính, phức tạp hơn cho lập trình viên vì cách setup nhiều bước hơn tuy nhiên có nhiều tính năng mới, thiết kế đẹp, có OTA là 1 lợi thế. App cũ phù hợp cho các bạn sinh viên, những ai cần nghiên cứu, các đồ án, dự án nhỏ…
Step 3: Flashing ESP8266 Firmware
You need to make the circuit shown in order to flash the firmware onto the ESP8266:
In many forums I have read that the esp8266 can be flashed without using FTDI usb to ttl converter. Instead many people have used Arduino UNO to flash the esp8266. However from my personal experience it is better to buy a FTDI USB to TTL converter/Cable as the arduino thing didn’t work for me( may be because of power issue).
Extract the esp_flasher.zip and run the application XTCOM_UTIL.
Connect the Esp8266-01 to the computer through the circuit. You need to know the right COM port which is used for communication. go to device manager and Click on ports(COM & LPT). Then note down the COM port used by the ESP8266-01.
In XTCOM_UTIL go to tools–>Config Device and select the right com port and baud rate as 9600. Click on Open. Then if the operation is Successful click on Connect. then Esp8266 will be Connected. If you encounter an error then unplug the cable and insert it again.
Inside the esp_flasher.zip file, you will find a readme.txt file containing the addresses to which each of the .bin files to be flashed. go to API Test–>flash Image download. browse the correct.bin file and enter the address corresponding the bin file and click on download.
for example: boot_v1.1.bin—————->0x00000
after the operation is successful close the XTCOM_UTIL and also unplug ESP8266( this must be done in between the flashing of each.bin file). Again reopen XTCOM_UTIL and plug Esp8266 and repeat the above steps to flash all the 4 bin files at their correct address. (remember to ground the GPIO0 at all time during flashing)
For detailed instruction, please refer to this: https://os.mbed.com/users/sschocke/code/WiFiLamp/…
Step 1: Gather Everything:
Hardware:
Arduino Uno
Esp8266-01 WiFi Module
USB to TTL serial
3.3v voltage regulator
Breadboard and Wires.
Softwares:
Arduino IDE
Blynk App
These are the things that you need. Make sure you have everything in a folder beforehand1) Arduino IDE : https://www.arduino.cc/en/Main/Software
2) Blynk Libraries (latest version): https://github.com/blynkkk/blynk-library/releases…
3) ESP8266 flasher tool: https://github.com/blynkkk/blynk-library/releases…
Hướng dẫn cài đặt NodeMCU ESP8266 WIFI
Khởi động Arduino IDE, click vào File trên thanh công cụ chọn Preferences(Ctrl+Comma).
Ở đây chúng ta phải chèn một đường Link để Arduino IDE có thể nhận Board.
- Copy Link tại đây: http://arduino.esp8266.com/stable/package_esp8266com_index.json
Bỏ đường Link vào ô được tô vàng và nhấn OK là xong.
Tiếp theo, ta vào Tools > Board > Boards Manager
Cửa sổ mở lên ta Seach Esp8266 để tải danh mục của các Board về. Nhấn Install để tiến hành cài đặt.
Cấu hình các thông số cảm biến DHT11 trên App Blynk
Để hiển thị các dữ liệu đo chúng ta vào Widget Box (+) > Click vào GAUGE để lấy các thang đo dữ liệu ra.
Nếu bạn chưa biết cách làm sao để tải App và tạo một Project trên Blynk các bạn xem bài viết bên dưới nhé.
Cài đặt các thông số chi tiết nhiệt độ, độ ẩm
Để tiến hành cài đặt các thông số cho cảm biến ta thực hiện các bước sau:
Click vào GAUGE để tiến hành cài đặt thông số.
Cài đặt thông số nhiệt độ
- Ở mục GAUGE 1: Đặt tên cho thang đo nhiệt độ (temperature).
- INPUT: Cấu hình cho PIN cần kết nối, ở đây mình chọn Virtual > V6 (0~1023) đổi lại (0~50).
- LABELS: e.g: Temp:/pin/độ c.
- REFRESH INTERVAL: Vào Push chọn tốc độ đọc cảm biến nhiệt độ (sec).
Cài đặt thông số độ ẩm
- Ở mục GAUGE 2 : Đặt tên chothang đo độ ẩm (humidity).
- INPUT: Cấu hình cho PIN cần kết nối, ở đây mình chọn Virtual > V5 (0~1023) đổi lại (0~100).
- LABELS: e.g: Temp:/pin/% (Độ ẩm đơn vị là %).
- REFRESH INTERVAL: Vào Push chọn tốc độ đọc cảm biến độ ẩm (sec).
Biểu đồ nhiệt độ, độ ẩm DHT11
Tiếp tục vào Widget Box (+) > Click vào SUPPERCHART để biểu đồ hiển thị nhiệt độ, độ ẩm ra.
Ở mục SuperChart : Đặt tên biểu đồ.
DATASTREAMS: Đặt tên cho từng biểu đồ Nhiệt độ và Độ Ẩm.
Virtual là các chân dùng để trao đổi dữ liệu giữa phần cứng với App Blynk ở đây mình chọn (V6 cho Nhiệt Độ), (V5 cho Độ Ẩm).
Để hiển thị vectơ các mức giá trị đo trên biểu đồ.
Ta vào mục Y-AXIS VALUES chuyển về nút SHOW (hiển thị) cho cả Nhiệt Độ và Độ Ẩm.
Để hiển thị thời gian cập nhật vào mục X-AXIS VALUES chuyển về nút SHOW.
Như vậy là đã xong phần cài đặt, bước tiếp theo ta tiến hành upload chương trình và xem kết quả nhé.
Hướng dẫn cài đặt và sử dụng Blynk New 2.0 với Esp8266
Yêu cầu: Ở phần mềm Arduino Ide đã cài board esp8266, thêm thư viện cho blynk mới
Tải thư viện Blynk tại đây: https://github.com/blynkkk/blynk-library
Sau khi tải vào Arduino IDE chọn Sketch -> Include library -> Add .ZIP library và chọn file vừa tải về.
Thiết lập Blynk trên máy tính:
Đầu tiền truy cập vào https://blynk.cloud/ đăng nhập, nếu chưa có tài khoản thì chọn Create new account để đăng ký. Các bạn nhập tên email vào, sau đó tích chọn Sign Up.
Họ sẽ gửi mail về cho bạn, sau đó chọn Create Pasword để tạo mật khẩu. Sau khi có tài khoản, bạn đăng nhập vào chọn New Template, nhập tên và chọn đầy đủ như hình dưới:
Sau khi tạo xong sẽ hiện giao diện bên dưới, ta copy mã Template để dán vào code, link tải code mình sẽ để ở phần dưới.
Tiếp theo, chọn Datastreams -> Virtual Pin -> nhập đầy đủ datastream của Pin -> Create
Ở ví dụ này mình làm gửi dữ liệu cảm biến nhiệt độ, độ ẩm lên Blynk nên các bạn tạo tương tự một Pin V1 là độ ẩm, và tạo V3 là Pin điều khiển Led:
Sau khi tạo Pin xong, ta chọn Web Dashboard, kéo các Gauge bên trái qua để hiển thị nhiệt độ và độ ẩm, Switch để làm công tắc bật tắt Led, một biểu đồ chart để để hiển thị nhiệt độ (bản free chỉ hiển thị được 1 biểu đồ), nhấn biểu tượng cài đặt để chọn từng Pin hiển thị phù hợp.
Sau khi chọn xong ta ấn Save để lưu cài đặt:
Tiếp theo, chọn biểu tượng Seach -> New Device để chọn thiết bị từ From template:
Chọn tên template mà bạn đã tạo -> Create, sau đó xem kết quả:
Thiết lập Blynk trên điện thoại:
Trên điện thoại sau khi tải app Blynk mới về, các bạn mở lên sau đó đăng nhập tài khoản đã tạo bên web, tên thiết bị bạn tạo lúc nãy trên web sẽ được hiển thị sẵn:
Tương tự như bản cũ, các bạn chọn biểu tượng Button để điều khiển led, Value Display để hiển thị nhiệt độ, độ ẩm… nhớ chọn chân Pin cho từng mục:
Thành quả sau khi tạo xong, các bạn có thể thay đổi màu, thiết kế giao diện cho từng dự án:
Step 4: Blynk App Setup
Download the Blynk App from Play Store and Sign In.
To Create a New Project Press + icon on the top. Give You Project Name. Choose Device as Arduino UNO Connection Type as WiFi and press Create. As soon as you Create an Auth Token will be sent to your Registered e-Mail. You Can Also send it Later in you Project Setting Page(nut Symbol)–> Devices.
To add a button press + and select Button. Press on the newly created button to edit it. Give it a name and set pin to digital D13. Toggle the mode to SWITCH. This will turn ON/OFF the IN-Built LED on the Arduino.
To control other Pins, Select the Required Pin(D3, D4… etc) in Edit Menu.
Sơ đồ đấu nối
NodeMCU ESP8266 | Cảm biến nhiệt độ, độ ẩm DHT11 |
3V3 | VCC (5V) |
GND | GND |
D4 | OUT |
Các linh kiện cần thiết cho dự án
Tên linh kiện | Số lượng | Shoppe |
NodeMCU ESP8266 | Mua ngay | |
Cảm biến nhiệt độ, độ ẩm DHT11 | Mua ngay | |
Breadboard | Mua ngay | |
Dây cắm (Đực – Đực) | Mua ngay |
Bạn sẽ học được gì
- Có kiến thức cơ bản về Robotics
- Chế tạo Robot dò đường thông minh
- Đánh thức nhà khoa học bên trong bạn
- Tìm hiểu thêm về Robotics, các thuật toán Robot tự động
- Kiến thức nền tảng để chế tạo các máy móc tự động phục vụ đời sống sinh hoạt, lao động sản xuất
- Kiến thức để chế tạo sản phẩm, tham gia các cuộc thi khoa học công nghệ trong nước và quốc tế
EBOOK ARDUINO CHO NGƯỜI MỚI BẮT ĐẦU
Những bạn mới nhập môn, người mới bắt đầu nghiên cứu về lĩnh vực IOT, muốn tìm hiểu cách cài đặt thư viện cho ESP8266?
Và sử dụng App Blynk?
Nhưng gặp nhiều khó khăn và không biết bắt đầu từ đâu.
Qua bài viết mình sẽ hướng dẫn các bạn một cách chi tiết nhất để các bạn có thể làm được và tự tay chế tạo cho mình những dự án thú vị.
Code
#define BLYNK_PRINT Serial #include
#include
#include “DHT.h” #include
#define DHTTYPE DHT11 #define dht_dpin 2 DHT dht(dht_dpin, DHTTYPE); SimpleTimer timer; char auth[] = “49d330c27974424a8d4e897eec57dfd1”; char ssid[] = “Nha Tro 4”; char pass[] = “nguyennam”; float t; float h; void setup() { Serial.begin(9600); Blynk.begin(auth, ssid, pass); dht.begin(); timer.setInterval(2000, sendUptime); } void sendUptime() { float h = dht.readHumidity(); float t = dht.readTemperature(); Serial.println(“Humidity and temperature\n\n”); Serial.print(“Current humidity = “); Serial.print(h); Serial.print(“% “); Serial.print(“temperature = “); Serial.print(t); Blynk.virtualWrite(V6, t); Blynk.virtualWrite(V5, h); } void loop() { Blynk.run(); timer.run(); }
Thư viện
- Download thư viện “DHT.h” : Tải ngay
- Download thư viện “SimpleTimer.h”: Tải ngay
- Download thư viện “BlynkSimpleEsp8266.h”: Tải ngay
Giải thích code
Bước đầu tiên chúng ta đi vào khai báo chân đọc cảm biến nhiệt độ, độ ẩm.
Ở đây mình chọn chân GPIO2 tức là chân D4 trên board NodeMCU ESP8266.
#define dht_dpin 2
Tiếp theo ta tiến hành cấu hình các thông số như Token, tên Wifi và mật khẩu Wifi.
char auth[] = “49d330c27974424a8d4e897eec57dfd1”; char ssid[] = “Nha Tro 4”; char pass[] = “nguyennam”;
Khai báo biến và đọc giá trị nhiệt độ, độ ẩm DHT11.
- Đọc nhiệt độ, độ ẩm (DHT11) sử dụng Arduino Uno: Xem ngay
float h = dht.readHumidity(); float t = dht.readTemperature();
Step 5: Programming
Open Arduino IDE.
Select board to Arduino Uno and select the right port.
DOWNLOAD THE CODE AND PASTE THE CODE IN Adruino IDE.
It is the modification of Esp8266_Shield Example Program.Replace yourAUTH with the Auth token sent to your Mail. Replace youSSID with your WiFi name and replace YourPassword with WiFi Password. Hardware serial part is commented as we are using Arduino UNO.
**In the programI have Commented Software Serial(if using Arduino Uno). I recommend you to comment the Software Serial as its unstable.
Upload the above program to the Arduino Uno board.After its Uploaded unplug the arduino from Computer.
Now you need to connect the ESP8266 to Arduino UNO.
Attachments
Blynk là gì?
Blynk là một nền tảng IoT (Internet of Things) cung cấp các công cụ để kết nối, quản lý và điều khiển các thiết bị IoT từ xa thông qua mạng Internet. Blynk được phát triển với mục đích giúp cho các nhà phát triển và những người không có kinh nghiệm trong lĩnh vực lập trình có thể tạo và quản lý các ứng dụng IoT một cách dễ dàng và nhanh chóng.
Blynk cung cấp các công cụ, ví dụ như ứng dụng di động và bộ API, giúp người dùng kết nối và điều khiển các thiết bị IoT bằng cách sử dụng các cảm biến và các tín hiệu đầu vào. Người dùng có thể tùy chỉnh giao diện người dùng để điều khiển thiết bị IoT của mình theo cách tùy chỉnh và tạo ra các hành động và tương tác phức tạp thông qua một số lượng nhỏ các lệnh mã.
Blynk cũng hỗ trợ một loạt các nền tảng phần cứng, bao gồm Arduino, Raspberry Pi, ESP8266 và nhiều nền tảng khác nữa. Blynk cho phép người dùng dễ dàng tích hợp các thiết bị IoT vào các dự án của mình mà không cần có kinh nghiệm lập trình.
Tải thư viện Blynk cho Arduino (Phiên bản Arduino IDE cũ)
Để quá trình nạp không bị báo lỗi chúng ta cần phải cài đặt thư viện cho Arduino IDE. Tại đây
Hướng dẫn tải thư viện Blynk trên Arduino IDE 2.0
Sau khi Arduino IDE cập nhật phiên bản 2.0 thì có rất nhiều sự thay đổi từ giao diện sử dụng cũng như cách upload thư viện.
Các bạn truy cập nhanh vào thanh Menu bên trái có hình cuốn sách, nhập vào ô search và từ “Blynk”, nhấn Install để tải xuống nhé. Ngoài ra các bạn có thể truy cập vào Sketch > Include Library >Manage Libraries…
Xem ngay: Blynk là gì? Hướng dẫn cài đặt và sử dụng Blynk 2.0 với ESP8266
Sơ đồ nguyên lý và Code Blynk
Tên linh kiện | Số lượng | Shopee |
NodeMCU Esp8266 | Mua ngay | |
Led | Mua ngay | |
Điện trở 220R | Mua ngay |
Code LED Blink
/************************************************************* Blynk using a LED widget on your phone! App dashboard setup: LED widget on V1 *************************************************************/ /* Fill-in information from Blynk Device Info here */ #define BLYNK_TEMPLATE_ID “TMPxxxxxx” #define BLYNK_TEMPLATE_NAME “Device” #define BLYNK_AUTH_TOKEN “YourAuthToken” /* Comment this out to disable prints and save space */ #define BLYNK_PRINT Serial #include
#include
// Your WiFi credentials. // Set password to “” for open networks. char ssid[] = “YourNetworkName”; char pass[] = “YourPassword”; WidgetLED led1(V1); BlynkTimer timer; // V1 LED Widget is blinking void blinkLedWidget() { if (led1.getValue()) { led1.off(); Serial.println(“LED on V1: off”); } else { led1.on(); Serial.println(“LED on V1: on”); } } void setup() { // Debug console Serial.begin(115200); Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass); // You can also specify server: //Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass, “blynk.cloud”, 80); //Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass, IPAddress(192,168,1,100), 8080); timer.setInterval(1000L, blinkLedWidget); } void loop() { Blynk.run(); timer.run(); }
Hướng dẫn Bật / Tắt LED trên App Blynk
Tải App Blynk
Tạo tài khoản Blynk
Để có thể sử dụng App Blynk chúng ta cần phải đăng ký một tài khoản mới. Ở đây có 2 cách đăng ký bằng Facebook hoặc tạo một tài khoản mới (Create New Account).
Mình sẽ hướng dẫn bằng cách đăng ký bằng Account.
Nhập thông tin tài khoản Gmail của các bạn. Rồi nhấn Sign Up để tiến hành đăng ký.
Sau khi đăng ký hoàn thành, chúng ta sẽ tiến hành tạo một Project mới.
Mình sẽ hướng dẫn các bạn tạo một dự ánBật/Tắt LED trên Blynk.
Các bạn Click vào dấu cộng (+) trên thanh công cụ để tiến hành tạo Project mới.
Click vào Create để hoàn tất việc tạo mới.
Blynk sẽ cấp cho các bạn một mã Token, mã này sẽ gửi trực tiếp vào Gmail mà lúc nãy bạn đăng ký.
Mã Token này dùng để chèn vào code Example của Blynk.
Để Bật/Tắt Led chúng ta cần có một nút bấm để điều khiển. Vào Widget Box (+) > Click vào Button để lấy nút nhấn ra.
Click vào Button để tiến hành cài đặt thông số.
- Ở mục Button: Đặt tên cho nút nhấn.
- OUTPUT: Cấu hình cho PIN cần kết nối, ở đây mình chọn Digital > gp16 (chân này có LED được tích hợp trên board mạch sẵn).
- MODE: có 2 chế độ PUSH (nhấn thả) và SWITCH (nhấn giữ).
- ON/OFF LABELS: Thay đổi chế đọ hiển thị cho nút nhấn (Vd: Các bạn không thích để ON/OFF có thể thay bằng BẬT/TẮT hoặc một cái tên nào mà bạn muốn).
- DESIGN: Ở phần này các bạn có thể điều chỉnh màu sắc của nút nhấn.
Như vậy là đã xong.
Bạn sẽ học được gì
- Có kiến thức cơ bản về Robotics
- Chế tạo Robot dò đường thông minh
- Đánh thức nhà khoa học bên trong bạn
- Tìm hiểu thêm về Robotics, các thuật toán Robot tự động
- Kiến thức nền tảng để chế tạo các máy móc tự động phục vụ đời sống sinh hoạt, lao động sản xuất
- Kiến thức để chế tạo sản phẩm, tham gia các cuộc thi khoa học công nghệ trong nước và quốc tế
Step 6: Circuit Setup and FInish!
ESP8266 Arduino
TX ————-> Rx
Rx ————> Tx
Gnd ————> Gnd
Vcc ————-> 3.3v
CH_PD ————–> 3.3v
After the connection is complete, plug the Arduino into the computer. Open the Serial Monitor and set baud rate to 115200.
If Everything is Correct, in the Serial Monitor you will see something like the Image Shown.
In the Blynk App, select your project and click the play button.Press the button to switch ON/OFF the LED.
Now with this the project is finished.Hope you enjoyed the tutorial. If you have any questions/ suggestions pls leave it in the comment section below. Thank you!
I used the Blynk Quickstart option to get the code as shown below:
#define BLYNK_TEMPLATE_ID “TMPLm1jltcCZ”
#define BLYNK_DEVICE_NAME “Quickstart Device”
#define BLYNK_AUTH_TOKEN “_B-lvlW8fsKzjxcXs0aRNwLHBpFyQaCS”
// Comment this out to disable prints and save space
#define BLYNK_PRINT Serial
#include
#include
#include
char auth[] = BLYNK_AUTH_TOKEN;
// Your WiFi credentials.
// Set password to “” for open networks.
char ssid[] = “***”;
char pass[] = “***”;
BlynkTimer timer;
// This function is called every time the Virtual Pin 0 state changes
BLYNK_WRITE(V0)
{
// Set incoming value from pin V0 to a variable
int value = param.asInt();
// Update state
Blynk.virtualWrite(V1, value);
}
// This function is called every time the device is connected to the Blynk.Cloud
BLYNK_CONNECTED()
{
// Change Web Link Button message to “Congratulations!”
Blynk.setProperty(V3, “offImageUrl”, “https://static-image.nyc3.cdn.digitaloceanspaces.com/general/fte/congratulations.png”);
Blynk.setProperty(V3, “onImageUrl”, “https://static-image.nyc3.cdn.digitaloceanspaces.com/general/fte/congratulations_pressed.png”);
Blynk.setProperty(V3, “url”, “https://docs.blynk.io/en/getting-started/what-do-i-need-to-blynk/how-quickstart-device-was-made”);
}
// This function sends Arduino’s uptime every second to Virtual Pin 2.
void myTimerEvent()
{
// You can send any value at any time.
// Please don’t send more that 10 values per second.
Blynk.virtualWrite(V2, millis() / 1000);
}
void setup()
{
// Debug console
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
// You can also specify server:
//Blynk.begin(auth, ssid, pass, “blynk.cloud”, 80);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
// Setup a function to be called every second
timer.setInterval(1000L, myTimerEvent);
}
void loop()
{
Blynk.run();
timer.run();
// You can inject your own code or combine it with other sketches.
// Check other examples on how to communicate with Blynk. Remember
// to avoid delay() function!
}
I got two issues which are as follows:
The current setup is not linking to Blynk. I know this because my Serial Monitor is saying “[463] WiFi module not found” and the Blynk website has not been able to establish a connection. Can anyone help please?
When uploading the code to the Arduino Uno; I am getting a warning which says “Low memory available, stability problems may occur.”. I find that weird given that I hadn’t added any additional code yet. Am I doing something wrong during the upload perhaphs?
Please note that I have put *** for char ssid[] and char pass[].
Thank you all in advance for your time and support.
Your ESP-01 is connected to the one hardware serial UART on the Uno (pins 0 & 1). You can’t use this port for anything else.
Is your ESP-01 actually configured to communicate with the Uno at this baud rate?
Note that if you choose to use a sketch which created a SoftwareSerial port to connect your ESP-01 to, instead of using the hardware UART (which then allows the hardware UART for debugging) then the SoftwareSerial library doesn’t work reliably at baud rates higher than 9600.
Whichever speed you tell the Uno to use when communicating with the ESP-01, the ESP-01 needs to be configured to communicate at the same baud rate. This is done via an AT command, not in the sketch.
// Template ID, Device Name and Auth Token are provided by the Blynk.Cloud
// See the Device Info tab, or Template settings
#define BLYNK_TEMPLATE_ID “TMPLm1jltcCZ”
#define BLYNK_DEVICE_NAME “Quickstart Device”
#define BLYNK_AUTH_TOKEN “zSQpZBaUy_veyQZhSXD9qw0yZKItJxlM”
// Comment this out to disable prints and save space
#define BLYNK_PRINT Serial
#include
#include
char auth[] = BLYNK_AUTH_TOKEN;
// Your WiFi credentials.
// Set password to “” for open networks.
char ssid[] = “********************”;
char pass[] = “*******************”;
// or Software Serial on Uno, Nano…
#include
SoftwareSerial EspSerial(2, 3); // RX, TX
// Your ESP8266 baud rate:
#define ESP8266_BAUD 38400
ESP8266 wifi(&EspSerial);
void setup()
{
// Debug console
Serial.begin(115200);
// Set ESP8266 baud rate
EspSerial.begin(ESP8266_BAUD);
delay(10);
Blynk.begin(auth, wifi, ssid, pass);
// You can also specify server:
//Blynk.begin(auth, wifi, ssid, pass, “blynk.cloud”, 80);
//Blynk.begin(auth, wifi, ssid, pass, IPAddress(192,168,1,100), 8080);
}
void loop()
{
Blynk.run();
// You can inject your own code or combine it with other sketches.
// Check other examples on how to communicate with Blynk. Remember
// to avoid delay() function!
}
As Pete has advised me; I can’t use UART (pins 0 and 1) because they are utalised by the Serial Monitor of the Arduino IDE. So I used pins 2 & 3; for RX & TX respectively.
The only remaining issue I have pending is that the ESP is not responding. Any ideas on what I have done incorrectly please?
Thank you for the info. I believe you are right. I have used the latest code from Blynk.Console as shown below:
/*************************************************************
This is a simple demo of sending and receiving some data.
Be sure to check out other examples!
*************************************************************/
// Template ID, Device Name and Auth Token are provided by the Blynk.Cloud
// See the Device Info tab, or Template settings
#define BLYNK_TEMPLATE_ID “TMPLm1jltcCZ”
#define BLYNK_DEVICE_NAME “Quickstart Device”
#define BLYNK_AUTH_TOKEN “zSQpZBaUy_veyQZhSXD9qw0yZKItJxlM”
// Comment this out to disable prints and save space
#define BLYNK_PRINT Serial
#include
#include
#include
char auth[] = BLYNK_AUTH_TOKEN;
// Your WiFi credentials.
// Set password to “” for open networks.
char ssid[] = “****************”;
char pass[] = “****************”;
BlynkTimer timer;
// This function is called every time the Virtual Pin 0 state changes
BLYNK_WRITE(V0)
{
// Set incoming value from pin V0 to a variable
int value = param.asInt();
// Update state
Blynk.virtualWrite(V1, value);
}
// This function is called every time the device is connected to the Blynk.Cloud
BLYNK_CONNECTED()
{
// Change Web Link Button message to “Congratulations!”
Blynk.setProperty(V3, “offImageUrl”, “https://static-image.nyc3.cdn.digitaloceanspaces.com/general/fte/congratulations.png”);
Blynk.setProperty(V3, “onImageUrl”, “https://static-image.nyc3.cdn.digitaloceanspaces.com/general/fte/congratulations_pressed.png”);
Blynk.setProperty(V3, “url”, “https://docs.blynk.io/en/getting-started/what-do-i-need-to-blynk/how-quickstart-device-was-made”);
}
// This function sends Arduino’s uptime every second to Virtual Pin 2.
void myTimerEvent()
{
// You can send any value at any time.
// Please don’t send more that 10 values per second.
Blynk.virtualWrite(V2, millis() / 1000);
}
void setup()
{
// Debug console
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
// You can also specify server:
//Blynk.begin(auth, ssid, pass, “blynk.cloud”, 80);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
// Setup a function to be called every second
timer.setInterval(1000L, myTimerEvent);
}
void loop()
{
Blynk.run();
timer.run();
// You can inject your own code or combine it with other sketches.
// Check other examples on how to communicate with Blynk. Remember
// to avoid delay() function!
}
Unfortuntley I am still having issues with the Wifi as shown below:
BlynkSimpleShieldEsp8266.h is one of the Blynk libraries, but your error message shows that files from the Blynk_Esp8266AT_WM library are being used by the compiler, and this is a 3rd party library.
The sketch that you posted in post#12 is designed for different hardware (the ESP WiFi shiled 101, not the ESP-01), so will never work with your hardware.
That’s probably caused by the inclusion of these libraries:
Which are needed for the 101 shield and not the ESP-01. Once you start to use the correct sketch again then you’ll have a little more free memory, but the UNO is a very slow and memort-limited board, which is one of the reasons why 99% of the Blynk regulars use a NodeMCU or ESP32, which have the advantage of having built-in WiFi anyway.
Your previous sketch attempted to use a baud rate of 38400 with a SoftwareSerial port, which I’ve already explained won’t work…
I’m fairly certain that the baud rate in your NodeMCU Software Programmer is the baud rate that is used to upload the firmware to your board, not the baud rate that the firmware is expecting AT communications once it’s been uploaded.
I’m also doubtful; about the use of this tool anyway, as:
You aren’t using a NodeMCU
Very few ESP-01s have 4MB of memory
It doesn’t show if you are uploading AT firmware to the ESP-01
Once the firmware has been uploaded, have you managed to get the ESO-01 to respond to an AT command issued via the serial monitor while issuing an AT command each time.
If this doesn’t work at any baud rate then you havent uploaded AT firmware, and it will never work with Blynk.
If it does work at one baud rate then that’s the baud rate used by your ESP-01 and if you wnat to communicate with it via a SoftwareSerial port then you need to change this (via the appropriate AT command) to 9600.
Or, you could just throw all of your prehistoric hardware in the bin and spend a couple of dollars on a NodeMCU or ESP32 instead.
Oharran, once you go into Web applications, Wifi, Blynk, etc. Arduino Uno, Nano, just don’t have enough memory. That’s why my prefered Arduino is the Mega Pro, as it has a small footprint as well, a ton of pins and good memory. Otherwise you would have to go with an ESP or other…
I would always suggest that if you are using an IoT application then you should use an IoT capable board.
The NodeMCU or Wemos D1 Mini is perfect if you one a small number of GPIOs and a single analog pins, or an ESP32 if you need more pins.
@PeteKnight you are right. I made a number of mistakes which are as follows:
I hadn’t set the ESP to 9600 as I originally thought. Also the code was calling up the incorrect Baud. This is fixed now.
I used the incorrect wiring diagram as well as I wired it in correctly. I mixed up my Rx with my Tx.
Last but not least; you are right by going back to the correct code; the seize of the file shrunk significantly. @John93 thank you for pointing me in the right direction with respect to the code and spotting the errors.
Please find the code that worked for connecting the Arduino Uno to the ESP8266:
#define BLYNK_TEMPLATE_ID “TMPLm1jltcCZ”
#define BLYNK_DEVICE_NAME “Quickstart Device”
#define BLYNK_AUTH_TOKEN “Bc9oGKDnWWoSaRTbyI8EHpZypG6XS2Z5”
#define BLYNK_PRINT Serial
#include
#include
char auth[] = BLYNK_AUTH_TOKEN;
// Your WiFi credentials. Set password to “” for open networks.
char ssid[] = “****************”;
char pass[] = “****************”;
#include
SoftwareSerial EspSerial(2, 3); // RX, TX
#define ESP8266_BAUD 9600 // Your ESP8266 baud rate:
ESP8266 wifi(&EspSerial);
void setup()
{
// Debug console
Serial.begin(9600);
// Set ESP8266 baud rate
EspSerial.begin(ESP8266_BAUD);
delay(10);
Blynk.begin(auth, wifi, ssid, pass);
// You can also specify server:
//Blynk.begin(auth, wifi, ssid, pass, “blynk.cloud”, 80);
//Blynk.begin(auth, wifi, ssid, pass, IPAddress(192,168,1,100), 8080);
}
void loop()
{
Blynk.run();
// You can inject your own code or combine it with other sketches.
// Check other examples on how to communicate with Blynk. Remember
// to avoid delay() function!
}
The wiring of the Arduino Uno to the ESP as follows:
Once again thank you all for being such an awesome community; helping a complete stranger out.
How to connect the esp8266 module to wifi using arduino uno board? I am using the code below to connect to the wifi, the connection seems successful to the esp8266, but nothing happens.
The code:
/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
#include
#include
#include
#include
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = “a7ZaEsKeAcWypXYhgGCI4cB_KDtrBb8K”;
// Your WiFi credentials.
// Set password to “” for open networks.
char ssid[] = “wifi”;
char pass[] = “pass”;
#define DHTPIN 3 // What digital pin we’re connected to
// Uncomment whatever type you’re using!
//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22, AM2302, AM2321
//#define DHTTYPE DHT21 // DHT 21, AM2301
DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;
// This function sends Arduino’s up time every second to Virtual Pin (5).
// In the app, Widget’s reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void sendSensor()
{
float h = dht.readHumidity();
float t = dht.readTemperature(true); // or dht.readTemperature(true) for Fahrenheit
if (isnan(h) || isnan(t)) {
Serial.println(“Failed to read from DHT sensor!”);
return;
}
// You can send any value at any time.
// Please don’t send more that 10 values per second.
Blynk.virtualWrite(V5, h);
Blynk.virtualWrite(V6, t);
}
void setup()
{
// Debug console
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
dht.begin();
// Setup a function to be called every second
timer.setInterval(1000L, sendSensor);
}
void loop()
{
Blynk.run();
timer.run();
}
@iuliana_ast please try and post in the right section of the forum you posted in installation and troubleshooting, which if you bothered to read the description of that section is NOT for your projects.
Board:
Connection:
Full list of supported hardware is
Template ID:
Template Name:
Auth Token:
Example:
Please give us a Github star!
WARNING!
Some sketches may contain errors. Please check your code carefully and
...
Board:
Connection:
Full list of supported hardware is
Template ID:
Template Name:
Auth Token:
Example:
Please give us a Github star!
WARNING!
Some sketches may contain errors. Please check your code carefully and
...
Giám sát nhiệt độ, độ ẩm bằng App Blynk sử dụng NodeMCU ESP8266
Việc giám sát nhiệt độ, độ ẩm trên điện thoại di động. Giờ đây không còn khó khăn nữa?
Việc App Blynk ra đời với một nền tản mạnh mẽ giúp mọi người có thể tạo ra nhiều dự án hay ho.
Mà không cần phải lập trình bằng những đoạn code phức tạp.
Trong bài viết hôm nay mình sẽ hướng dẫn các bạn cách để hiển thị các thông số của cảm biến DHT11 lên Blynk.
Và cách lấy dữ liệu đọc được từ cảm biến nhé.
Truyền dữ liệu từ phần cứng lên App Blynk.
Một số lưu ý:
Trong quá trình Upload mà bị báo lỗi
#include
thì các bạn làm như sau:
Các bạn vào đường dẫn.
C:\Users\Administrator\Documents\Arduino\libraries\Blynk_Release_v0.6.1\libraries
Sau đó các bạn Copy toàn bộ thư viện ra bỏ vào chổ này nhé:
C:\Users\Administrator\Documents\Arduino\libraries
Vì qua nhiều lớp nên Arduino IDE không nhận được thư viện các bạn cài vào lúc trước.
Lời kết
Qua bài hôm nay các bạn biết cách làm thế nào để gửi dữ liệu đọc được từ cảm biến nhiệt độ, độ ẩm DHT11 lên Blynk.
Để nhận được nhiều kiến thức mới các bạn Đăng ký để nhận được thông báo sớm nhất.
Tham gia Cộng đồng Arduino KIT để cùng nhau thảo luận và chia sẽ kiến thức về lập trình Arduino.
Nếu các bạn thấy bài viết bổ ích nhớ Like và Share cho mọi người cùng đọc nhé.
Chúc các bạn thành công.
Trân trọng.
KHÓA HỌCCHẾ TẠO ROBOT DÒ ĐƯỜNG
Nạp Code vào NodeMCU ESP8266 WIFI
Các bạn nhấn vào đường Link để Copy ví dụ nhé: Click vào đây
Ở phía tay trái vùng mình đã khoanh đỏ các bạn chọn đúng các thông số như trên màn hình nhé.
Các bạn lấy mã Token lúc nãy gửi về Gmail paste vào mục Auth Token nhé.
Sau khi đã cấu hình xong các thông số các bạn nhấn vào Copy example bên phía tay phải để bỏ vào Arduino IDE.
Tiếp hành nạp code thôi, các bạn khởi động Arduino IDE lên và paste ví dụ vừa rồi vào trong shetch trong Arduino.
Ở vùng mình khoanh đỏ các bạn thêm thông tin WIFI của mình vào nhé.
- ssid: Tên WIFI.
- pass: Mật khẩu WIFI nhé.
Như vậy là xong rồi đó.
Các bạn chọn tên cho Board NodeMCU 1.0 (ESP-12E Module).
Các bạn nhớ chọn cổng COM nhé.
Upload chương trình và chờ đợi thành quả nhé.
Sơ đồ kết nối và code tham khảo:
Các sản phẩm bạn cần cho ví dụ này:
Module Thu Phát Wifi ESP8266 NodeMCU Lua CP2102, ESP-12F Ai-Thinker x1
Module Cảm Biến Độ Ẩm Nhiệt Độ DHT22 x1
Module 1 Relay Với Opto Cách Ly Kích H/L (5VDC) x1
Sơ đồ kết nối mạch:
Code tham khảo: https://drive.google.com/drive/folders/1VdOt5U214K7W3gcn_AGho4NL1z1oQUo2?usp=sharing
Kết quả: Ở app Blynk mới này các bạn có thể truy cập bằng trình duyệt web có thể xem data và điều khiển thiết bị như trên điện thoại, dữ liệu được đồng bộ cả hai, ví dụ khi bạn điều khiển đèn bằng điện thoại, trạng thái đèn cũng sẽ được cập nhật trên giao diện web và ngược lại.
Hướng dẫn cài đặt ESP8266 NodeMCU và kết nối với Blynk
Step 2: Installing Arduino IDE and Libraries
Install the latest version of Arduino IDE.
Open Arduino IDE and go to file-> preferences-> in additional board manager URL type – http://arduino.esp8266.com/stable/package_esp8266…
Go to tools -> boards -> Board Manager –> and install the esp8266 package found at last. (optional)
Extract the blynk library zip file and copy the contents inside library folder in the zip file into –
user documents–> Arduino –> Libraries
Keywords searched by users: arduino uno esp8266 blynk
Categories: Phổ biến 20 Arduino Uno Esp8266 Blynk
See more here: kientrucannam.vn
See more: https://kientrucannam.vn/vn/