Mục lục:

Cảm biến mở rộng Nodemcu ESP8266 cho Weewx: 8 bước (có hình ảnh)
Cảm biến mở rộng Nodemcu ESP8266 cho Weewx: 8 bước (có hình ảnh)

Video: Cảm biến mở rộng Nodemcu ESP8266 cho Weewx: 8 bước (có hình ảnh)

Video: Cảm biến mở rộng Nodemcu ESP8266 cho Weewx: 8 bước (có hình ảnh)
Video: ESP8266 : Hướng dẫn cách mở rộng chân Analog bằng IC 74HC4501N 2024, Tháng mười một
Anonim
Cảm biến mở rộng Nodemcu ESP8266 dành cho Weewx
Cảm biến mở rộng Nodemcu ESP8266 dành cho Weewx

Đây là hướng dẫn để thêm Cảm biến vào phần mềm trạm thời tiết weewx.

Nếu bạn chưa weewx, bạn có thể tìm hiểu một số thứ trong hướng dẫn này.

bạn cần một số kiến thức cơ bản về mã Arduino và cách tải lên trên thiết bị.

Bạn tìm thông tin weewx tại đây:

Những gì bạn xây dựng là 2 Thiết bị:

1 Thiết bị gửi Nhiệt độ và Độ ẩm đến phần mềm weewx.

1 Thiết bị gửi Nhiệt độ đất ở các độ sâu khác nhau đến phần mềm weewx.

Thiết bị đầu tiên của chúng tôi là cảm biến BME 280.

Thiết bị thứ hai của chúng tôi là một chuỗi 3 cảm biến Temperatur DS18B20. (Có thể bổ sung thêm nếu thích).

Hãy bắt đầu:

Bước 1: Những gì bạn cần…

Những gì bạn cần…
Những gì bạn cần…
Những gì bạn cần…
Những gì bạn cần…
Những gì bạn cần…
Những gì bạn cần…

Weewx thiết lập và chạy + truy cập vào máy chủ weewx. (ví dụ một PI 3 mâm xôi).

2 mô-đun Nodemcu ESP8266

3 cảm biến DS18B20 trở lên

1 bộ cảm biến kết hợp BME 280

1 Ống nhôm hoặc loại tương tự có đường kính 10mm và 1mm độ dày thành và ca. Dài 1 mét

1 Vỏ chống thấm nước với đệm cáp và đai ốc khóa.

1 Nguồn điện 5V (Ví dụ: bộ tải di động).

Một số dây và vật hàn.

Bạn tìm cảm biến BME280 và các mô-đun Nodemcu trên ebay.

Đối với ống nhôm, tôi chọn một cửa hàng kim khí địa phương

Đối với DS18B20 và vỏ chống nước, tôi sử dụng www.reichelt.de

www.reichelt.de/DS-18B20/3/index.html?ACTI…

www.reichelt.de/EL-FK-110/3/index.html?ACT…

và nhóm dây cáp có đai ốc khóa

www.reichelt.de/Kabelverschraubungen-Bopla…

Đối với bme280, bạn có thể tùy chọn sử dụng hộp phân nhánh

www.reichelt.de/Installationsmaterial/EL-D…

Bước 2: Bắt đầu với thiết lập phần cứng cảm biến BME 280

Bắt đầu với thiết lập phần cứng cảm biến BME 280
Bắt đầu với thiết lập phần cứng cảm biến BME 280

Hàn dải trong BME280.

Sau đó kết nối BME với Nodemcu:

BME VIN đến 3,3V

BME GND sang GND

SCL đến D4

SDA đến D3

Nếu muốn, bạn có thể đặt Thiết bị trong một hộp, nhưng hãy đảm bảo rằng một số lỗ trong vỏ để các giá trị độ ẩm và nhiệt độ chính xác.

Bước 3: Mã BME 280 Nodemcu ESP8266

Mã BME 280 Nodemcu ESP8266
Mã BME 280 Nodemcu ESP8266
Mã BME 280 Nodemcu ESP8266
Mã BME 280 Nodemcu ESP8266
Mã BME 280 Nodemcu ESP8266
Mã BME 280 Nodemcu ESP8266

Đối với mã, bạn có thể sử dụng kho lưu trữ github của tôi:

github.com/Landixus/BME280_TO_SERVER_WEEWX

Tệp ino cần một số chèn từ bạn:

Địa chỉ IP của máy chủ weewx hoặc URL của bạn

và tuyến đường mà bạn có tệp php, hãy đảm bảo rằng khu vực đó có thể ghi được.

tôi chọn dir public_html vì nó là một máy chủ gia đình.

nếu bạn muốn sao chép kho lưu trữ git và đã cài đặt git trên máy chủ của mình, bạn có thể sao chép bằng lệnh:

"git clone" https://github.com/Landixus/BME280_TO_SERVER_WEEWX"

Bây giờ chúng ta cần thực hiện một số thứ trên máy chủ weewx của mình.

Bạn cần tạo đường dẫn đến cài đặt của mình!

trong

/ home / weewx / public_html

tạo một dữ liệu thư mục

trong thư mục dữ liệu, hãy tạo một bme.txt, ví dụ với:

nano bme.txt

tệp phải trống.

làm cho nó có thể ghi được với:

chmod -R 777 bme.txt

(bạn không bao giờ làm điều này trên máy chủ có thể truy cập internet!)

trong thư mục

/ home / weewx / public_html

bạn đặt bme.php của repo github của tôi.

Bí quyết là tệp INO gửi giá trị đến bme.php và bme.php ghi dữ liệu trong bme.txt

Tiếp theo, chúng tôi cần thêm dịch vụ vào weewx

đặt bme.py trong thư mục

/ home / weewx / bin / user

mở weewx.conf của bạn trong thư mục

/ home / weewx

luôn tốt để có một bản sao lưu trước khi chỉnh sửa tệp này!

đi xuống dòng Engine và làm cho dòng giống của tôi:

[Động cơ]

# Phần này chỉ định các dịch vụ sẽ được chạy. họ đang

# được nhóm theo loại và thứ tự dịch vụ trong mỗi nhóm

# xác định thứ tự mà các dịch vụ sẽ được chạy.

data_services = user.pond. PondService, user.bme.bme

khởi động lại weewx với:

sudo /etc/init.d/weewx dừng

sudo /etc/init.d/weewx start

với lệnh

tail -f / var / log / syslog

bạn có thể tìm lỗi hoặc thành công trong logfile, tìm kiếm một giá trị đầu ra bme: found của…

Hãy cho máy chủ của bạn vài phút để tạo, trong weewx.conf "của tôi" cứ sau 5 phút sẽ có một đầu ra.

Nếu bạn có thông báo lỗi, hãy kiểm tra đường dẫn của bạn.

Nếu bạn có các giá trị, bạn có thể đi đến hiển thị nó trên trang web:

mở skin.conf trong

/ home / weewx / skin / Standard

đi đến:

# Cái này có lẽ là dành riêng cho đài của tôi! Thêm

extraTemp3 = BME1 Nhiệt độ Độ ẩm1 = Độ ẩm BME1

lưu tệp và mở trong cùng một thư mục

index.html.tmpl

tìm một dòng:

#if $ day.extraTemp..

#end nếu

sau #end đầu tiên nếu bạn tìm thấy, hãy đặt Cảm biến BME của bạn với:

^^ xin lỗi nhưng không thể viết cái này thành văn bản được:(Lưu file và thoát.

không cần phải khởi động lại weewx.

Bây giờ bạn cần cung cấp NODEMCU ESP8266 với tệp Arduino.

Đừng quên thiết lập wifi và địa chỉ của bạn trong tệp.

Sau khi tải, hãy kiểm tra đầu ra nối tiếp để tìm lỗi.

Sau một thời gian ngắn, bạn sẽ thấy các giá trị trên trang web weewx của mình.

Bước 4: Thành công Thiết bị cảm biến BME280 + Khắc phục sự cố

Thành công Thiết bị cảm biến BME280 + Khắc phục sự cố
Thành công Thiết bị cảm biến BME280 + Khắc phục sự cố
Thành công Thiết bị cảm biến BME280 + Khắc phục sự cố
Thành công Thiết bị cảm biến BME280 + Khắc phục sự cố

Một số lời khuyên cho bạn:

Mở thêm 1 bảng điều khiển bằng putty

trên 1 bảng điều khiển thực hiện các thay đổi của bạn và trên bảng điều khiển khác đọc nhật ký hệ thống của bạn trực tiếp với:

tail -f / var / log / syslog

Nếu bạn gặp lỗi, hãy xem logfile của bạn trước.

Đầu ra của bạn sẽ giống với đầu ra của tôi:

Bước 5: Thiết lập phần cứng Soilsensor

Thiết lập phần cứng Soilsensor
Thiết lập phần cứng Soilsensor
Thiết lập phần cứng Soilsensor
Thiết lập phần cứng Soilsensor
Thiết lập phần cứng Soilsensor
Thiết lập phần cứng Soilsensor

Đối với Cảm biến DS18B20, chúng ta cần tạo Hệ thống bus với một số dây và hàn.

Kiểm tra DS18B20 của bạn

DATA, GND, VCC

Giữa VCC và DATA, bạn cần một Điện trở 4,7K. Nó là đủ nếu bạn có điện trở ở DS18B20 đầu tiên

Các DS18B20 còn lại mắc song song với nhau.

Đo chiều dài cho nhu cầu của bạn. Hàn một chuỗi lại với nhau, tôi đã cố định các chốt bằng ống co lại.

Đối với KIỂM TRA, bạn kết nối DATA với D3 và VCC với VCC (3.3V) và GND với GND.

Đối với tùy chọn ngủ sâu, bạn cần gắn một cầu nối giữa RST và D0 (GPIO16)

Bạn không nên đặt dây xích vào ống nhôm ngay bây giờ, hãy thực hiện các bài kiểm tra của bạn trước!

Bước 6: Mã DS18B20 Nodemcu ESP8266

Mã DS18B20 Nodemcu ESP8266
Mã DS18B20 Nodemcu ESP8266

Đối với mã, bạn có thể sử dụng kho GITHUB của tôi:

github.com/Landixus/multipleDS18B20WeeWX

Ngoài ra, tệp ino cũng cần bạn chèn thêm một số nội dung: Địa chỉ IP của máy chủ weewx hoặc URL của bạn và đường dẫn bạn đã đặt tệp php, hãy đảm bảo rằng khu vực có thể ghi được. Tôi chọn public_html dir vì nó là máy chủ gia đình.

Nếu bạn muốn sao chép kho lưu trữ git và đã cài đặt git trên máy chủ của mình, bạn có thể sao chép bằng lệnh git clone

Bây giờ chúng ta cần thực hiện một số thứ để tất cả đều hoạt động trên máy chủ weewx của chúng ta.

Bạn cần tạo đường dẫn đến cài đặt của mình trong

/ home / weewx / public_html

tạo một thư mục "dữ liệu" trong thư mục dữ liệu tạo một tệp ds18b20.txt, ví dụ: nano ds18b20.txt thì txt phải là emtpy. làm cho nó có thể ghi bằng chmod -R 777 ds18b20.txt (bạn không bao giờ làm điều này trên máy chủ có thể truy cập internet!) trong thư mục / home / weewx / public_html bạn đặt ground.php của đại diện github của tôi. Bí quyết là tệp INO gửi các giá trị đến ground.php và ground.php ghi dữ liệu trong ds18b20.txt, tiếp theo chúng ta cần thêm dịch vụ vào weewx đặt ds18b20.py trong thư mục / home / weewx / bin / người sử dụng

mở weewx.conf của bạn trong thư mục / home / weewx

luôn tốt để có một bản sao lưu trước khi chỉnh sửa tệp này!

xuống dòng:

[Động cơ]

# được nhóm theo loại và thứ tự dịch vụ trong mỗi nhóm

# xác định thứ tự mà các dịch vụ sẽ được chạy.

prep_services = weewx.engine. StdTimeSynch, data_services = user.pond. PondService, user.bme.bme, user.ds18b20.ds18b20 thêm nội dòng sau dấu phẩy

"user.ds18b20.ds18b20" sẽ giống như dòng trên ^^

khởi động lại weewx với:

sudo /etc/init.d/weewx dừng

sudo /etc/init.d/weewx start

Với lệnh tail -f / var / log / syslog, bạn có thể tìm trong logfile để tìm lỗi hoặc tìm kiếm thành công để tìm đầu ra ds18b20: giá trị tìm thấy của Hãy cho máy chủ của bạn vài phút để tạo, trong weewx.conf của tôi cứ sau 5 phút sẽ xuất hiện đặt. Nếu bạn có thông báo lỗi, hãy kiểm tra đường dẫn của bạn. Nếu bạn có các giá trị, bạn có thể truy cập để hiển thị nó trên trang: mở

skin.conf trong / home / weewx / skin / Standard đi tới:

# Cái này có lẽ dành riêng cho trạm của tôi!

cộng

đấtTemp1 = DS18B201

đấtTemp2 = DS18B202

đấtTemp3 = DS18B203

lưu tệp và mở trong cùng một thư mục index.html.tmpl, hãy tìm một dòng:

#if $ day.extraTemp..…

#end nếu

sau #end đầu tiên nếu bạn thấy hãy đặt Cảm biến GroundSensor của mình với:

^^ xin lỗi nhưng không thể đặt nó dưới dạng văn bản: (lưu tệp và thoát. không cần khởi động lại weewx. Bây giờ bạn cần cung cấp NODEMCU ESP8266 cùng với tệp Arduino.

Đừng quên thiết lập wifi và địa chỉ của bạn trong tệp. Sau khi tải, hãy kiểm tra đầu ra nối tiếp để tìm lỗi.

Sau một thời gian ngắn, bạn sẽ thấy các giá trị trên trang web weewx của mình.

Bước 7: Soilsensor thành công và khắc phục sự cố

Soilsensor thành công và khắc phục sự cố
Soilsensor thành công và khắc phục sự cố

Nếu bạn đã làm việc và thấy các giá trị, sau đó đi ra ngoài và đặt ống nhôm xuống đất.

Một cách hay là bạn cho keo nóng vào 1 bên của ống rồi ép ống lại với nhau, sau đó bạn có phần đầu đẹp để mang xuống đất dễ dàng hơn.

Trước tiên, bạn hãy đặt đường ống của bạn xuống đất, bạn có thể dùng một tấm gỗ đóng búa mềm.

Nếu đường ống đủ sâu, bạn có thể đặt dây xích ds18b20 và dây cấp nguồn vào hộp chống thấm.

Đảm bảo rằng wifi của bạn đang hoạt động tại nơi này!

Nếu bạn không biết cảm biến sâu bao nhiêu, có 2 khả năng.

Tôi thử nghiệm giai đoạn đặt 1 ds18b20 giữa ngón tay của bạn, nhiệt độ tăng cao hơn cho cái này.

Khi đường ống đã được nối đất thì normaly là giá trị Cao nhất tại điểm sâu nhất.

Bước 8: Kết thúc

Kết thúc
Kết thúc

Chỉ là kết thúc

Đăng câu hỏi của bạn và thể hiện nhiệt độ cơ bản của bạn trong các bình luận!

Để được trợ giúp thêm, hãy tham gia Nhóm google weewx trên:

groups.google.com/forum/#!forum/weewx-user

Đề xuất: