สารบัญ:

Extension Sensors Nodemcu ESP8266 สำหรับ Weewx: 8 ขั้นตอน (พร้อมรูปภาพ)
Extension Sensors Nodemcu ESP8266 สำหรับ Weewx: 8 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Extension Sensors Nodemcu ESP8266 สำหรับ Weewx: 8 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Extension Sensors Nodemcu ESP8266 สำหรับ Weewx: 8 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: #209 How to Hack your 433 MHz Devices with a Raspberry and a RTL-SDR Dongle (Weather Station) 2024, พฤศจิกายน
Anonim
เซ็นเซอร์ขยาย Nodemcu ESP8266 สำหรับ Weewx
เซ็นเซอร์ขยาย Nodemcu ESP8266 สำหรับ Weewx

นี่เป็นคำแนะนำในการเพิ่มเซ็นเซอร์ให้กับซอฟต์แวร์สถานีตรวจอากาศ weewx

หากคุณยังไม่มี weewx คุณสามารถเรียนรู้บางสิ่งในบทช่วยสอนนี้

คุณต้องมีความรู้พื้นฐานเกี่ยวกับโค้ด Arduino และวิธีอัปโหลดบนอุปกรณ์

คุณพบข้อมูล weewx ได้ที่นี่:

สิ่งที่คุณสร้างคือ 2 อุปกรณ์:

1 อุปกรณ์ส่งอุณหภูมิและความชื้นไปยังซอฟต์แวร์ weewx

1 อุปกรณ์ส่งอุณหภูมิดินของพื้นดินที่แตกต่างกันไปยังซอฟต์แวร์ weewx

อุปกรณ์แรกของเราคือเซ็นเซอร์ BME 280

อุปกรณ์ที่สองของเราคือห่วงโซ่ของเซ็นเซอร์อุณหภูมิ DS18B20 3 ตัว (สามารถเพิ่มเติมได้ถ้าต้องการ)

เริ่มกันเลย:

ขั้นตอนที่ 1: สิ่งที่คุณต้องการ…

สิ่งที่คุณต้องการ…
สิ่งที่คุณต้องการ…
สิ่งที่คุณต้องการ…
สิ่งที่คุณต้องการ…
สิ่งที่คุณต้องการ…
สิ่งที่คุณต้องการ…

Weewx เริ่มทำงาน + เข้าถึงเซิร์ฟเวอร์ weewx (เช่น ราสเบอร์รี่ PI 3)

2 โมดูล Nodemcu ESP8266

เซนเซอร์ DS18B20 3 ตัวขึ้นไป

1 BME 280 คอมโบเซนเซอร์

1 ท่ออลูมิเนียมหรือใกล้เคียงที่มีเส้นผ่านศูนย์กลาง 10 มม. และความหนาของผนัง 1 มม. และโดยประมาณ ยาว 1 เมตร

1 กล่องกันน้ำพร้อมต่อมสายเคเบิลและน็อตล็อค

1 5V แหล่งพลังงาน (เช่น ตัวโหลดมือถือ)

สายไฟและอุปกรณ์บัดกรีบางส่วน

คุณพบเซ็นเซอร์ BME280 และโมดูล Nodemcu บนอีเบย์

สำหรับท่ออลูมิเนียม ผมเลือกร้านฮาร์ดแวร์ในพื้นที่

สำหรับ DS18B20 และเคสกันน้ำ ฉันใช้ www.reichelt.de

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

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

และกลุ่มของเคเบิลแกลนด์พร้อมน็อตล็อค

www.reichelt.de/Kabelverschraubungen-Bopla…

สำหรับ bme280 คุณสามารถใช้การแตกกิ่งก้านได้

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

ขั้นตอนที่ 2: เริ่มต้นด้วยการตั้งค่าฮาร์ดแวร์เซ็นเซอร์ BME 280

เริ่มต้นด้วยการตั้งค่าฮาร์ดแวร์เซ็นเซอร์ BME 280
เริ่มต้นด้วยการตั้งค่าฮาร์ดแวร์เซ็นเซอร์ BME 280

บัดกรีแถบใน BME280

จากนั้นเดินสาย BME ไปที่ Nodemcu:

BME VIN เป็น 3.3V

BME GND เป็น GND

SCL เป็น D4

SDA เป็น D3

หากคุณต้องการ คุณสามารถใส่อุปกรณ์ในเคสได้ แต่ต้องแน่ใจว่ามีรูบางรูอยู่ในเคส เพื่อให้ค่าความชื้นและอุณหภูมิถูกต้อง

ขั้นตอนที่ 3: รหัส BME 280 Nodemcu ESP8266

รหัส BME 280 Nodemcu ESP8266
รหัส BME 280 Nodemcu ESP8266
รหัส BME 280 Nodemcu ESP8266
รหัส BME 280 Nodemcu ESP8266
รหัส BME 280 Nodemcu ESP8266
รหัส BME 280 Nodemcu ESP8266

สำหรับรหัสคุณสามารถใช้ที่เก็บ github ของฉัน:

github.com/Landixus/BME280_TO_SERVER_WEEWX

ไฟล์ ino ต้องการส่วนแทรกจากคุณ:

ที่อยู่ IP ของเซิร์ฟเวอร์ weewx หรือ URL

และเส้นทางที่คุณมีไฟล์ php ตรวจสอบให้แน่ใจว่าพื้นที่นั้นสามารถเขียนได้

ฉันเลือก public_html dir เพราะเป็นโฮมเซิร์ฟเวอร์

หากคุณต้องการโคลนที่เก็บ git และติดตั้ง git บนเซิร์ฟเวอร์ของคุณ คุณสามารถโคลนด้วยคำสั่ง:

"git โคลน"https://github.com/Landixus/BME280_TO_SERVER_WEEWX"

ตอนนี้เราจำเป็นต้องทำบางสิ่งบนเซิร์ฟเวอร์ weewx ของเรา

คุณต้องสร้างเส้นทางไปยังการตั้งค่าของคุณ!

ใน

/home/weewx/public_html

สร้างโฟลเดอร์ data

ในโฟลเดอร์ data ให้สร้าง bme.txt ตัวอย่างเช่นด้วย:

นาโน bme.txt

ไฟล์ควรว่างเปล่า

ทำให้สามารถเขียนได้ด้วย:

chmod -R 777 bme.txt

(คุณไม่เคยทำสิ่งนี้บนเซิร์ฟเวอร์ที่เข้าถึงอินเทอร์เน็ตได้!)

ในโฟลเดอร์

/home/weewx/public_html

คุณใส่ bme.php ของ github repo ของฉัน

เคล็ดลับคือไฟล์ INO ส่งค่าไปที่ bme.php และ bme.php เขียนข้อมูลใน bme.txt

ต่อไปเราต้องเพิ่มบริการใน weewx

ใส่ bme.py ลงในโฟลเดอร์

/home/weewx/bin/user

เปิด weewx.conf ของคุณในโฟลเดอร์

/home/weewx

การสำรองข้อมูลก่อนแก้ไขไฟล์นี้เป็นเรื่องที่ดีเสมอ!

ไปที่บรรทัด Engine และทำให้บรรทัดดูเหมือนของฉัน:

[เครื่องยนต์]

# ส่วนนี้ระบุบริการที่ควรเรียกใช้ พวกเขาคือ

#จัดกลุ่มตามประเภทและลำดับบริการภายในแต่ละกลุ่ม

# กำหนดลำดับที่จะเรียกใช้บริการ

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

รีสตาร์ท weewx ด้วย:

sudo /etc/init.d/weewx stop

sudo /etc/init.d/weewx start

ด้วยคำสั่ง

tail -f /var/log/syslog

คุณสามารถค้นหาข้อผิดพลาดหรือความสำเร็จในล็อกไฟล์ ค้นหาผลลัพธ์ bme: ค่าที่พบของ…

ให้เวลาเซิร์ฟเวอร์ของคุณในการสร้างผลลัพธ์ใน weewx.conf "ของฉัน" ทุกๆ 5 นาที

หากคุณมีข้อความแสดงข้อผิดพลาด ให้ตรวจสอบเส้นทางของคุณ

หากคุณมีค่าคุณสามารถไปแสดงบนหน้าเว็บได้:

เปิด skin.conf ใน

/home/weewx/skins/มาตรฐาน

ไปที่:

# อันนี้น่าจะเป็นเฉพาะสถานีของฉัน! add

extraTemp3 = BME1 TemperatureextraHumid1 = BME1 ความชื้น

บันทึกไฟล์และเปิดในโฟลเดอร์เดียวกัน

index.html.tmpl

มองหาบรรทัด:

#ถ้า $day.extraTemp..

#จบถ้า

หลังจาก #end แรก หากคุณพบให้ใส่ BME Sensor ของคุณด้วย:

^^ ขออภัย ไม่สามารถใส่เป็นข้อความได้:(บันทึกไฟล์และออก

ไม่จำเป็นต้องรีสตาร์ท weewx

ตอนนี้คุณต้องป้อน NODEMCU ESP8266 ด้วยไฟล์ Arduino

อย่าลืมตั้งค่า wifi และที่อยู่ในไฟล์

หลังจากโหลดแล้ว ให้ตรวจสอบเอาต์พุตแบบอนุกรมเพื่อหาข้อผิดพลาด

หลังจากช่วงเวลาสั้นๆ คุณจะเห็นค่าบนเว็บไซต์ weewx ของคุณ

ขั้นตอนที่ 4: อุปกรณ์เซ็นเซอร์ BME280 สำเร็จ + การแก้ไขปัญหา

สำเร็จอุปกรณ์เซ็นเซอร์ BME280 + การแก้ไขปัญหา
สำเร็จอุปกรณ์เซ็นเซอร์ BME280 + การแก้ไขปัญหา
สำเร็จอุปกรณ์เซ็นเซอร์ BME280 + การแก้ไขปัญหา
สำเร็จอุปกรณ์เซ็นเซอร์ BME280 + การแก้ไขปัญหา

เคล็ดลับสำหรับคุณ:

เปิดมากกว่า 1 คอนโซลผ่าน putty

ใน 1 คอนโซลทำการเปลี่ยนแปลงของคุณและในคอนโซลอื่นอ่าน syslog ของคุณแบบสดด้วย:

tail -f /var/log/syslog

หากคุณมีข้อผิดพลาด ให้ดูที่ไฟล์บันทึกของคุณก่อน

ผลลัพธ์ของคุณควรคล้ายกับของฉัน:

ขั้นตอนที่ 5: การตั้งค่าฮาร์ดแวร์ Soilsensor

การติดตั้งฮาร์ดแวร์เซ็นเซอร์ดิน
การติดตั้งฮาร์ดแวร์เซ็นเซอร์ดิน
การติดตั้งฮาร์ดแวร์เซ็นเซอร์ดิน
การติดตั้งฮาร์ดแวร์เซ็นเซอร์ดิน
การติดตั้งฮาร์ดแวร์เซ็นเซอร์ดิน
การติดตั้งฮาร์ดแวร์เซ็นเซอร์ดิน

สำหรับเซ็นเซอร์ DS18B20 เราจำเป็นต้องสร้างระบบบัสด้วยสายไฟและการบัดกรี

ตรวจสอบ DS18B20. ของคุณ

ข้อมูล, GND, VCC

ระหว่าง VCC และ DATA คุณต้องมีตัวต้านทาน 4.7K ก็เพียงพอแล้วถ้าคุณมีตัวต้านทานที่ DS18B20. ตัวแรก

DS18B20 อีกเครื่องหนึ่งขนานกัน

วัดความยาวตามความต้องการของคุณ ประสานโซ่เข้าด้วยกันฉันยึดหมุดด้วยท่อหด

สำหรับการทดสอบ คุณต้องเชื่อมต่อ DATA กับ D3 และ VCC กับ VCC (3.3V) และ GND กับ GND

สำหรับตัวเลือกการนอนหลับลึก คุณต้องแนบสะพานเชื่อมระหว่าง RST และ D0 (GPIO16)

ตอนนี้ไม่ควรใส่โซ่ลงในท่ออลูมิเนียม ทำการทดสอบก่อน!

ขั้นตอนที่ 6: รหัส DS18B20 Nodemcu ESP8266

รหัส DS18B20 Nodemcu ESP8266
รหัส DS18B20 Nodemcu ESP8266

สำหรับรหัสคุณสามารถใช้ที่เก็บ GITHUB ของฉัน:

github.com/Landixus/multipleDS18B20WeeWX

นอกจากนี้ ไฟล์ ino ต้องการการแทรกจากคุณ: ที่อยู่ IP ของเซิร์ฟเวอร์ weewx หรือ URL และเส้นทางที่คุณใส่ไฟล์ php ตรวจสอบให้แน่ใจว่าพื้นที่นั้นสามารถเขียนได้ ฉันเลือก public_html dir เพราะเป็นโฮมเซิร์ฟเวอร์

หากคุณต้องการโคลนที่เก็บ git และติดตั้ง git บนเซิร์ฟเวอร์ของคุณ คุณสามารถโคลนด้วยคำสั่ง git clone

ตอนนี้เราจำเป็นต้องทำบางสิ่งที่ใช้งานได้ทั้งหมดบนเซิร์ฟเวอร์ weewx ของเรา

คุณต้องสร้างเส้นทางไปยังการตั้งค่าของคุณใน

/home/weewx/public_html

สร้างโฟลเดอร์ "data" ในโฟลเดอร์ data สร้าง ds18b20.txt เช่น nano ds18b20.txt txt ควรเป็น emtpy ทำให้สามารถเขียนได้ด้วย chmod -R 777 ds18b20.txt (คุณไม่เคยทำสิ่งนี้บนเซิร์ฟเวอร์ที่เข้าถึงอินเทอร์เน็ตได้!) ในโฟลเดอร์ /home/weewx/public_html คุณใส่ ground.php ของตัวแทน github ของฉัน เคล็ดลับคือไฟล์ INO ส่งค่าไปที่ ground.php และ ground.php เขียนข้อมูลใน ds18b20.txt ต่อไปเราต้องเพิ่มบริการใน weewx ใส่ ds18b20.py ในโฟลเดอร์ /home/weewx/bin/ ผู้ใช้

เปิด weewx.conf ของคุณในโฟลเดอร์ /home/weewx

การสำรองข้อมูลก่อนแก้ไขไฟล์นี้เป็นเรื่องที่ดีเสมอ!

ลงไปที่บรรทัด:

[เครื่องยนต์]

#จัดกลุ่มตามประเภทและลำดับบริการภายในแต่ละกลุ่ม

# กำหนดลำดับที่จะเรียกใช้บริการ

prep_services = weewx.engine. StdTimeSynch, data_services = user.pond. PondService, user.bme.bme, user.ds18b20.ds18b20 เพิ่มอินไลน์หลังเครื่องหมายจุลภาค

"user.ds18b20.ds18b20" ควรมีลักษณะเหมือนบรรทัดบน^^

รีสตาร์ท weewx ด้วย:

sudo /etc/init.d/weewx stop

sudo /etc/init.d/weewx start

ด้วยคำสั่ง tail -f /var/log/syslog คุณสามารถดูข้อผิดพลาดใน logfile หรือค้นหาผลลัพธ์ที่สำเร็จ ds18b20: ค่าที่พบของ Give your server บางนาทีในการสร้าง ใน weewx.conf ของฉันทุกๆ 5 นาที ใส่. หากคุณมีข้อความแสดงข้อผิดพลาด ให้ตรวจสอบเส้นทางของคุณ หากคุณมีค่าคุณสามารถไปแสดงบนหน้า: open

skin.conf in /home/weewx/skins/Standard ไปที่:

# อันนี้น่าจะเฉพาะสถานีของฉัน!

เพิ่ม

ดินTemp1 = DS18B201

อุณหภูมิดิน2 = DS18B202

ดินTemp3 = DS18B203

บันทึกไฟล์และเปิดในโฟลเดอร์เดียวกัน index.html.tmpl มองหาบรรทัด:

#ถ้า $day.extraTemp.. …

#จบถ้า

หลังจาก #end แรก หากคุณพบว่าใส่ GroundSensor Sensor ด้วย:

^^ ขออภัย ไม่สามารถใส่สิ่งนี้เป็นข้อความ:(บันทึกไฟล์และออก ไม่จำเป็นต้องรีสตาร์ท weewx ตอนนี้คุณต้องป้อน NODEMCU ESP8266 ด้วยไฟล์ Arduino

อย่าลืมตั้งค่า wifi และที่อยู่ในไฟล์ หลังจากโหลดแล้ว ให้ตรวจสอบเอาต์พุตแบบอนุกรมเพื่อหาข้อผิดพลาด

หลังจากช่วงเวลาสั้นๆ คุณจะเห็นค่าบนเว็บไซต์ weewx ของคุณ

ขั้นตอนที่ 7: เซ็นเซอร์วัดความสำเร็จและการแก้ไขปัญหา

เซ็นเซอร์วัดความสำเร็จและการแก้ไขปัญหา
เซ็นเซอร์วัดความสำเร็จและการแก้ไขปัญหา

หากคุณมีงานทั้งหมดและเห็นค่าแล้วให้ออกไปข้างนอกแล้ววางท่ออลูมิเนียมลงดิน

วิธีที่ดีคือทากาวร้อนที่ด้านหนึ่งของท่อแล้วกดท่อเข้าด้วยกัน คุณจะได้ท๊อปที่สวยงามเพื่อให้ลงพื้นได้ง่ายขึ้น

วางท่อของคุณลงบนพื้นก่อน คุณสามารถทุบให้นุ่มด้วยแผ่นไม้ได้

หากท่อลึกเพียงพอ คุณสามารถใส่โซ่ ds18b20 และสายไฟในกล่องกันน้ำได้

ตรวจสอบให้แน่ใจว่า wifi ของคุณทำงานที่นี่!

หากคุณไม่รู้ว่าเซ็นเซอร์ใดลึกแค่ไหน มีความเป็นไปได้ 2 อย่าง

ฉันทดสอบเฟสใส่ 1 ds18b20 ระหว่างนิ้วของคุณ อุณหภูมิจะสูงขึ้นสำหรับอันนี้

เมื่อท่ออยู่ในพื้นดินแล้ว Normaly คือค่าสูงสุดที่ลึกที่สุด

ขั้นตอนที่ 8: เสร็จสิ้น

เสร็จสิ้น
เสร็จสิ้น

แค่ตอนจบ

โพสต์คำถามของคุณและแสดงอุณหภูมิพื้นของคุณในความคิดเห็น!

สำหรับความช่วยเหลือเพิ่มเติม เข้าร่วม weewx google Groups บน:

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

แนะนำ: