สารบัญ:

สถานีตรวจอากาศ NaTaLia: สถานีตรวจอากาศพลังงานแสงอาทิตย์ Arduino ทำอย่างถูกวิธี: 8 ขั้นตอน (พร้อมรูปภาพ)
สถานีตรวจอากาศ NaTaLia: สถานีตรวจอากาศพลังงานแสงอาทิตย์ Arduino ทำอย่างถูกวิธี: 8 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: สถานีตรวจอากาศ NaTaLia: สถานีตรวจอากาศพลังงานแสงอาทิตย์ Arduino ทำอย่างถูกวิธี: 8 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: สถานีตรวจอากาศ NaTaLia: สถานีตรวจอากาศพลังงานแสงอาทิตย์ Arduino ทำอย่างถูกวิธี: 8 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: DIY Solar weather station - สถานีตรวจวัดคุณภาพอากาศ พลังงานแสงอาทิตย์ 2024, กรกฎาคม
Anonim
สถานีตรวจอากาศ NaTaLia: สถานีตรวจอากาศพลังงานแสงอาทิตย์ Arduino ดำเนินการอย่างถูกวิธี
สถานีตรวจอากาศ NaTaLia: สถานีตรวจอากาศพลังงานแสงอาทิตย์ Arduino ดำเนินการอย่างถูกวิธี
สถานีตรวจอากาศ NaTaLia: สถานีตรวจอากาศพลังงานแสงอาทิตย์ Arduino ดำเนินการอย่างถูกวิธี
สถานีตรวจอากาศ NaTaLia: สถานีตรวจอากาศพลังงานแสงอาทิตย์ Arduino ดำเนินการอย่างถูกวิธี

หลังจาก 1 ปีของการดำเนินงานที่ประสบความสำเร็จใน 2 สถานที่ที่แตกต่างกัน ฉันกำลังแบ่งปันแผนโครงการสถานีตรวจอากาศพลังงานแสงอาทิตย์ของฉันและอธิบายว่ามันพัฒนาเป็นระบบที่สามารถอยู่รอดได้จริง ๆ ในช่วงเวลาที่ยาวนานจากพลังงานแสงอาทิตย์ได้อย่างไร หากคุณทำตามคำแนะนำของฉันและใช้วัสดุเดียวกันกับในรายการ คุณสามารถสร้างสถานีตรวจอากาศพลังงานแสงอาทิตย์ซึ่งจะใช้งานได้หลายปี ที่จริงแล้วปัจจัยเดียวที่จำกัดระยะเวลาในการใช้งานคืออายุการใช้งานของแบตเตอรี่ที่คุณใช้อยู่

ขั้นตอนที่ 1: การทำงานของสถานีตรวจอากาศ

1, เครื่องส่งสัญญาณ: กล่องติดตั้งกลางแจ้งพร้อมแผงโซลาร์เซลล์ซึ่งส่ง telemetry สภาพอากาศ (อุณหภูมิ, ความชื้น, ดัชนีความร้อน, ความแรงของแสงอาทิตย์) ไปยังหน่วยรับในร่มเป็นระยะ

2, ตัวรับ: หน่วยในร่มที่ทำจาก Raspberry PI 2 + Arduino Mega มีตัวรับสัญญาณ RF 433 Mhz ที่เชื่อมต่อเพื่อรับข้อมูล ในการตั้งค่าของฉัน เครื่องนี้ไม่มีฟังก์ชันการแสดงผล LCD ในพื้นที่ มันวิ่งไปอย่างไม่ใส่ใจ โปรแกรม C หลักดูแลการรับข้อมูลขาเข้าจาก Arduino ผ่านซีเรียล จากนั้นบันทึกข้อมูลลงในไฟล์ข้อความ และทำให้ข้อมูลที่ได้รับล่าสุดพร้อมใช้งานผ่าน telnet สำหรับอุปกรณ์อื่นๆ เพื่อสืบค้น

สถานีควบคุมไฟในบ้านของฉันโดยการอ่านค่าโฟโตรีซีสเตอร์ (ซึ่งจะกำหนดว่าข้างนอกเป็นกลางวันหรือกลางคืน) ตัวรับไม่มีหัวในกรณีของฉัน แต่คุณสามารถปรับเปลี่ยนโปรเจ็กต์เพื่อเพิ่มจอ LCD ได้อย่างง่ายดาย หนึ่งในอุปกรณ์ที่ใช้ แยกวิเคราะห์ และแสดงข้อมูลสภาพอากาศจากสถานีคือโครงการอื่นของฉัน: Ironforge the NetBSD Toaster

ขั้นตอนที่ 2: เวอร์ชันแรก

รุ่นแรก
รุ่นแรก
รุ่นแรก
รุ่นแรก
รุ่นแรก
รุ่นแรก
รุ่นแรก
รุ่นแรก

มีโครงการพลังงานแสงอาทิตย์จำนวนมากบนอินเทอร์เน็ต แต่หลายโครงการทำผิดพลาดทั่วไปว่าระบบจะใช้พลังงานจากแบตเตอรี่มากขึ้นเมื่อเวลาผ่านไป ซึ่งแผงโซลาร์เซลล์สามารถเติมเต็มได้ โดยเฉพาะอย่างยิ่งในช่วงฤดูหนาวที่มืดครึ้มและมืดครึ้ม

เมื่อคุณออกแบบระบบพลังงานแสงอาทิตย์ สิ่งเดียวที่สำคัญคือการใช้พลังงาน บนส่วนประกอบทั้งหมด: mcu, เครื่องส่งสัญญาณวิทยุ, ตัวควบคุมแรงดันไฟฟ้า ฯลฯ

การใช้คอมพิวเตอร์ขนาดใหญ่เช่น Raspberry Pi หรืออุปกรณ์ WiFi ที่หิวโหยอย่าง ESP เพื่อรวบรวมและขนส่งข้อมูลสภาพอากาศสองสามบิตจะเกินความสามารถ แต่อย่างที่ฉันจะแสดงในบทช่วยสอนนี้ แม้แต่บอร์ด Arduino ขนาดเล็กก็เช่นกัน

สิ่งที่ดีที่สุดคือการวัดกระแสระหว่างกระบวนการสร้างของคุณด้วยมิเตอร์หรือขอบเขตเสมอ (มีประโยชน์เมื่อคุณพยายามวัดเดือยเล็กๆ ในการใช้งานระหว่างการดำเนินการในช่วงเวลาสั้นมาก (มิลลิวินาที))

ในภาพแรก คุณสามารถเห็นสถานีแรกของฉัน (Arduino Nano Based) และบอร์ด Arduino Barebone Atmega 328P ตัวที่สอง

เวอร์ชันแรกแม้ว่าจะทำงานได้อย่างสมบูรณ์ (การตรวจสอบสภาพแวดล้อมและการส่งข้อมูลทางวิทยุ) มีการใช้พลังงานสูงเกินไป ~ 46mA และทำให้แบตเตอรี่หมดในเวลาไม่กี่สัปดาห์

ทุกรุ่นใช้แบตเตอรี่ต่อไปนี้:

18650 6000mAh ป้องกัน Li-ion แบตเตอรี่ คณะกรรมการป้องกันในตัว

อัปเดตเกี่ยวกับแบตเตอรี่ ScamFire เหล่านี้ แม้ว่านี่จะเป็นคำสั่งที่ค่อนข้างเก่า แต่ฉันก็ยังรู้สึกว่าจำเป็นต้องแก้ไขเนื่องจากแบตเตอรี่ปลอมนี้ อย่าซื้อแบตเตอรี่ดังกล่าว หาข้อมูลของคุณเองเกี่ยวกับแบตเตอรี่ LION/LIPO อื่นๆ แบตเตอรี่ 3.7V ทั้งหมดจะใช้งานได้กับโครงการนี้

ในที่สุดฉันก็มีเวลาที่จะหักล้างแบตเตอรี่ ScamFire เพื่อดูว่าความจุจริงเป็นอย่างไร ดังนั้น เราจะทำการคำนวณ 2 แบบควบคู่ไปกับความจุจริงและความจุ "ที่โฆษณา"

อย่างแรกเลย นั่นคือสิ่งหนึ่งที่แบตเตอรี่นี้เป็นของปลอมและไม่มีอะไรที่พวกเขาอ้างว่าเป็นความจริง เวอร์ชันใหม่นั้นแย่ยิ่งกว่าที่พวกเขาคัดลอกของปลอมโดยทิ้งวงจรป้องกัน 2 เซ็นต์ ดังนั้นจึงไม่มีอะไรจะหยุดแบตเตอรี่ให้เหลือศูนย์ได้

บทความเล็ก ๆ เกี่ยวกับแบตเตอรี่ LION/LIPO:

TLDR:

สิ่งนี้หมายความว่าแรงดันไฟฟ้าสูงสุดของเซลล์คือ 4.2v และแรงดันไฟฟ้า "ปกติ" (เฉลี่ย) คือ 3.7V

ตัวอย่างเช่น นี่คือโปรไฟล์ของแรงดันไฟฟ้าสำหรับแบตเตอรี่ 'คลาสสิก' 3.7V/4.2V แรงดันไฟฟ้าเริ่มต้นที่สูงสุด 4.2 และลดลงอย่างรวดเร็วเหลือประมาณ 3.7V ตลอดอายุการใช้งานแบตเตอรี่ส่วนใหญ่ เมื่อคุณกด 3.4V แบตเตอรี่จะหมดและที่ 3.0V วงจรตัดไฟจะตัดการเชื่อมต่อแบตเตอรี่

การวัดของฉันโดยใช้โหลดจำลอง:

ชาร์จแบตเตอรี่แล้ว: 4.1V

ตั้งค่าคัทออฟเป็น: 3.4V

การจำลองการโหลด: 0.15A (อุปกรณ์ของฉันมีปัญหาเล็กน้อยกับการทำงานที่ต่ำกว่านี้)

ความจุที่วัดได้: 0.77Ah ให้ฟรี 0.8 Ah ซึ่งเป็น 800mAh แทน 6000mAh ที่โฆษณาไว้!

เนื่องจากแบตเตอรี่นี้ไม่มีแม้แต่วงจรป้องกัน ฉันจึงสามารถลดระดับลงได้โดยอิสระ แต่ที่ 3.4V หลังจาก 10 นาที มันก็พังลงไปที่ 3.0V แล้ว

ดังนั้น ด้วยการคำนวณอย่างง่าย แบตเตอรี่จึงมี:

ทฤษฎี

แรงดันแบตเตอรี่ =3.7V

กำลัง =3.7x6000= 22000 mWh

จริง

แรงดันแบตเตอรี่ =3.7Vกำลัง =3.7x800= 2960 mWh

เวอร์ชัน: 0.1 ARDUINO NANO BASED

แม้จะใช้ไลบรารี LowPower แต่ Arduino nano ก็กินไฟ ~ 16 mA (ในโหมดสลีป) -> FAIL

ทฤษฎี

Pavg=VxIavg =5Vx16mA= 80 mW

อายุการใช้งานแบตเตอรี่ = 22000/80 = 275 ชั่วโมง = ประมาณ 11 วัน

RealPavg=VxIavg =5Vx16mA= 80 mW

อายุการใช้งานแบตเตอรี่ = 800/80 = 10 ชั่วโมง

รุ่น: 0.2 Atmega 328P แบร์โบน

พลังงานที่ใช้โดย ATmega328 ขึ้นอยู่กับสิ่งที่คุณกำลังทำอยู่ เพียงแค่นั่งอยู่ที่นั่นในสถานะเริ่มต้นก็สามารถใช้ 16mA @ 5V ในขณะที่ทำงานที่ 16MHz

เมื่อ ATmega328P อยู่ในโหมดแอ็คทีฟ มันจะรันคำสั่งหลายล้านคำสั่งต่อวินาทีอย่างต่อเนื่อง นอกจากนี้ On-board Peripherals Analog to Digital Converter (ADC), Serial Peripheral Interface (SPI), Timer 0, 1, 2, Two Wire Interface (I2C), USART, Watchdog Timer (WDT) และ Brown-out Detection (BOD) กินไฟ

เพื่อประหยัดพลังงาน ATmega328P MCU รองรับโหมดสลีปจำนวนมากและสามารถปิดอุปกรณ์ต่อพ่วงที่ไม่ได้ใช้ได้ โหมดสลีปจะแตกต่างกันไปในส่วนที่ยังคงทำงานอยู่ ตามระยะเวลาการนอนหลับและเวลาที่จำเป็นในการปลุก (ช่วงตื่น) โหมดสลีปและอุปกรณ์ต่อพ่วงที่แอ็คทีฟสามารถควบคุมได้ด้วยไลบรารีสลีปและพลังงานของ AVR หรือให้กระชับยิ่งขึ้นด้วยไลบรารีพลังงานต่ำที่ยอดเยี่ยม

ไลบรารี Low-Power นั้นใช้งานง่ายแต่ทรงพลังมาก คำสั่ง LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF); ทำให้ MCU อยู่ใน SLEEP_MODE_PWR_DOWN เป็นเวลา 16 ms ถึง 8 s ขึ้นอยู่กับอาร์กิวเมนต์แรก มันปิดการใช้งาน ADC และ BOD โหมดปิดเครื่องหมายความว่าฟังก์ชันชิปทั้งหมดถูกปิดใช้งานจนกว่าจะมีการขัดจังหวะครั้งถัดไป นอกจากนี้ ออสซิลเลเตอร์ภายนอกจะหยุดทำงาน เฉพาะการขัดจังหวะระดับบน INT1 และ INT2 การขัดจังหวะการเปลี่ยนพิน การจับคู่ที่อยู่ TWI/I2C หรือ WDT หากเปิดใช้งาน จะสามารถปลุก MCU ได้ ดังนั้นด้วยข้อความเดียว คุณจะลดการใช้พลังงานให้เหลือน้อยที่สุด สำหรับ 3.3 V Pro Mini ที่ไม่มีไฟ LED จ่ายไฟ และไม่มีตัวควบคุม (ดูด้านล่าง) ที่กำลังรันคำสั่ง การใช้พลังงานคือ 4.5 μA ซึ่งใกล้เคียงกับที่กล่าวไว้ในแผ่นข้อมูล ATmega328P สำหรับการปิดเครื่องเมื่อปิดเครื่องโดยเปิดใช้งาน WDT 4.2 μA (เอกสารข้อมูลที่เชื่อมโยงในแหล่งที่มา) ดังนั้นฉันจึงค่อนข้างมั่นใจว่าฟังก์ชัน powerDown จะปิดทุกอย่างที่เป็นไปได้อย่างสมเหตุสมผล ด้วยคำสั่ง LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF); WDT จะถูกปิดใช้งานและคุณจะไม่ตื่นขึ้นจนกว่าจะมีการขัดจังหวะ

ดังนั้นด้วยการตั้งค่าแบร์โบน เราจึงสามารถใส่ชิปเข้าสู่โหมดสลีปเป็นเวลา 5 นาที ในขณะที่ใช้พลังงานเพียงเล็กน้อย (0.04 mA โดยไม่มีอุปกรณ์ต่อพ่วง) อย่างไรก็ตาม นี่เป็นเพียงชิป Atmega 328P ที่มีคริสตัลออสซิลเลเตอร์และไม่มีอะไรอื่น บูสเตอร์แรงดันที่ใช้ในการกำหนดค่านี้เพื่อเพิ่มแรงดันแบตเตอรี่จาก 3.7V -> 5.0 V ยังกินไฟ 0.01 mA

การระบายแรงดันคงที่หนึ่งตัวคือตัวต้านทานภาพถ่ายที่เพิ่มเข้ามาทำให้การบริโภคในโหมดสลีปเพิ่มขึ้นเป็น 1 mA โดยรวม (ซึ่งรวมถึงส่วนประกอบทั้งหมด)

สูตรคำนวณการใช้ที่แม่นยำของอุปกรณ์ทั้งในโหมดสลีปและโหมดปลุกคือ:

Iavg = (ตัน*ไอออน + Tsleep*Isleep) / (Ton +Tsleep)

ไอออน = 13mA

ส่วนใหญ่มาจากเครื่องส่งสัญญาณ RF433 Mhz:

เครื่องส่ง:

แรงดันใช้งาน: 3V - 12V สำหรับสูงสุด การใช้พลังงาน 12VWorking current: max น้อยกว่า 40mA max และ min 9mAResonance mode: (SAW)Modulation mode: ASKWorking frequency: Eve 315MHz or 433MHzTransmission power: 25mW (315MHz at 12V)Frequency error: +150kHz (max)Velocity: less than 10Kbps

ไอสลีป = 1mA

จะลดลงอย่างมากหากไม่มีโฟโตรีซีสเตอร์

เวลา Trunon ตัน=250 mS = 0.25s

เวลานอน Tsleep= 5 นาที = 300s

Iavg = (ตัน*ไอออน + Tsleep*Isleep) / (Ton +Tsleep)

เฉลี่ย = (0.25s*13mA + 300s*1mA) / (0.25s+300s)

Iavg=1.26mA

Pavg=VxIavg =5Vx1.26mA=6 mW

ทฤษฎี

อายุการใช้งานแบตเตอรี่ = 22000mWh/6mW = 3666 ชั่วโมง = 152 วันโดยประมาณ

จริง

อายุการใช้งานแบตเตอรี่ = 800mWh/6mW = 133 ชั่วโมง = 5.5 วันโดยประมาณ

แม้ว่าสิ่งเหล่านี้ยังคงเป็นซีรีย์ UltraFire ที่ดีกว่าที่ฉันใช้ในตอนแรก คุณจะเห็นได้ว่าหากไม่มีแผงโซลาร์เซลล์หรือการใช้พลังงาน 1mA ต่ำ โครงการนี้คงอยู่ได้ไม่นาน

อย่าลังเลที่จะสร้างสถานีและจดสิ่งที่คุณค้นพบและการคำนวณลงในความคิดเห็น แล้วฉันจะอัปเดตบทความ ฉันจะขอบคุณผลลัพธ์ด้วย MCU ที่แตกต่างกันและตัวแปลงบูสต์

ขั้นตอนที่ 3: สร้างสถานีตรวจอากาศที่ประสบความสำเร็จ

การสร้างสถานีตรวจอากาศที่ประสบความสำเร็จ
การสร้างสถานีตรวจอากาศที่ประสบความสำเร็จ
การสร้างสถานีตรวจอากาศที่ประสบความสำเร็จ
การสร้างสถานีตรวจอากาศที่ประสบความสำเร็จ
การสร้างสถานีตรวจอากาศที่ประสบความสำเร็จ
การสร้างสถานีตรวจอากาศที่ประสบความสำเร็จ
การสร้างสถานีตรวจอากาศที่ประสบความสำเร็จ
การสร้างสถานีตรวจอากาศที่ประสบความสำเร็จ

แม้ว่าจะเป็นเวอร์ชันแรกที่ประสบความสำเร็จ แต่ก็มีข้อผิดพลาดเล็กน้อยเกี่ยวกับรูปภาพ และฉันไม่สามารถสร้างสิ่งเหล่านั้นขึ้นมาใหม่ได้เนื่องจากสถานีถูกปรับใช้แล้ว ตัวเพิ่มแรงดันไฟฟ้าสองตัวที่แสดงบนรูปภาพสามารถหาได้ในขณะที่เขียนสำหรับการสร้างแบบจำลองทางอากาศและการใช้งานอื่นๆ เมื่อฉันออกแบบสถานีใหม่ ฉันกำลังคิดว่าจะได้บอร์ดสเต็ปอัพแรงดันไฟฟ้าที่เล็กลงและมีประสิทธิภาพมากขึ้น ขนาดที่เล็กลงไม่ได้หมายความว่ามันจะมีประสิทธิภาพมากกว่า

โมดูลขนาดเล็กใหม่ในรูปภาพซึ่งไม่มีแม้แต่ตัวบ่งชี้ led ที่ใช้พลังงาน 3mA (*FAIL*) ด้วยตัวเอง ดังนั้นฉันจึงอยู่กับบอร์ดเก่าของฉัน:

การควบคุม PFM DC-DC USB 0.9V-5V ถึง 5V dc Boost Step-up Power Supply Module

ในขณะที่เขียนโมดูลนี้ยังคงมีอยู่ใน Ebay ในราคา 99 เซ็นต์ แต่ถ้าคุณตัดสินใจที่จะใช้บูสเตอร์อื่น ให้ตรวจสอบการใช้พลังงานขณะสแตนด์บายเสมอ ด้วยบูสเตอร์คุณภาพดี ไม่ควรเกินของฉัน (0.01 mA) แม้ว่าไฟ LED ขนาดเล็กบนบอร์ดจะต้องยกเลิกการบัดกรี

ขั้นตอนที่ 4: รายการฮาร์ดแวร์

รายการฮาร์ดแวร์
รายการฮาร์ดแวร์
  • 18650 6000mAh ป้องกัน Li-ion แบตเตอรี่ คณะกรรมการป้องกันในตัว
  • Atmega 328P16M 5V พร้อม bootloader
  • Adafruit DC Boarduino (เข้ากันได้กับ Arduino) Kit (w/ATmega328) < นี่จะเป็นการลงทุนที่ดีหากคุณกำลังทำโปรเจกต์แบร์โบนในอนาคต
  • ตัวต้านทานแสงที่ไวต่อแสงของภาพถ่าย
  • 1A 1000V ไดโอด 1N4007 IN4007 DO-41 วงจรเรียงกระแสไดโอด
  • การควบคุม PFM DC-DC USB 0.9V-5V ถึง 5V dc Boost Step-up Power Supply Module
  • 1.6W 5.5V 266mA มินิแผงโซลาร์เซลล์โมดูลระบบอีพ็อกซี่เซลล์ชาร์จ DIY
  • TP405 5V Mini USB 1A แบตเตอรี่ลิเธียมแท่นชาร์จโมดูล
  • 433 เมกะเฮิร์ตซ์ RF เครื่องส่งสัญญาณและตัวรับสัญญาณสำหรับรีโมทคอนโทรล Arduino/ARM/MC < ชุดประกอบด้วยทั้งเครื่องส่งสัญญาณและ reveiver
  • IP65 สวิตช์ป้องกันกล่องแยกกล่องกันน้ำกลางแจ้ง 150x110x70mm
  • ใหม่ DHT22 อุณหภูมิและความชื้นสัมพัทธ์เซนเซอร์โมดูลสำหรับ Arduino
  • 1x220 โอห์ม, 2x10KOhm, 1xLED, 1xMini Switch, 1x1N4007diode
  • Adafruit 16 MHz เซรามิกเรโซเนเตอร์ / ออสซิลเลเตอร์ [ADA1873]
  • Arduino UNO/Mega ฯลฯ สำหรับสถานีรับสัญญาณ + Raspberry PI 1/2/3
  • กล่องพลาสติกอะคริลิคใส (อุปกรณ์เสริม)

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

หมายเหตุสำหรับรายการฮาร์ดแวร์:

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

เครื่องชาร์จพลังงานแสงอาทิตย์มีไฟ LED สีเล็กๆ 2 ดวงซึ่งจะเปิดขึ้นเฉพาะในกรณีที่มีการชาร์จด้วยพลังงานแสงอาทิตย์และระบุ (สถานะสีแดง -> กำลังชาร์จ สีน้ำเงิน -> สถานะการชาร์จเต็ม) สิ่งเหล่านี้สามารถขายได้เช่นกัน มันค่อนข้างให้น้ำผลไม้เพิ่มเติมเล็กน้อยกับแบตเตอรี่ในระหว่างการชาร์จ

อย่างที่คุณเห็นไม่มีที่ใส่แบตเตอรี่ในรายการของฉัน ทำไม? เพราะพวกเขาไม่น่าเชื่อถือ ฉันมีหลายครั้งที่ถอดแบตเตอรี่ออกจากที่ใส่แบตเตอรี่และขาดการเชื่อมต่อ โดยเฉพาะอย่างยิ่งถ้าการติดตั้งของคุณถูกติดตั้งบนเสาสูงแบบเดียวกับของฉัน ซึ่งเปิดให้ใช้งานได้ในทุกสภาพอากาศ ฉันยังรูดซิปแบตเตอรี่ไว้ในที่ใส่ด้วย 2 ซิปและยังสามารถเลื่อนออกได้ อย่าทำอย่างนั้น เพียงแค่ถอดสารเคลือบภายนอกออกจากแบตเตอรี่และบัดกรีสายไฟตรงไปยังด้านล่างของแบตเตอรี่ซึ่งมีวงจรป้องกันการชาร์จไฟเกิน (อย่าข้ามการป้องกัน) สามารถใช้ที่ใส่แบตเตอรี่เพื่อยึดแบตเตอรี่ไว้ในอุปกรณ์เท่านั้น

TP405 5V Mini USB 1A แท่นชาร์จแบตเตอรี่ลิเธียม: น่าเสียดายที่บอร์ดนี้ไม่มีการป้องกันกระแสไฟย้อนกลับที่แผงโซลาร์เซลล์ สำหรับสิ่งนี้ คุณจะต้องวางไดโอดอีก 1 ตัวไว้ระหว่างขาข้างหนึ่งของแผงโซลาร์เซลล์กับวงจรชาร์จเพื่อหยุดกระแสไฟ เพื่อไหลกลับเข้าสู่แผงโซลาร์เซลล์ในตอนกลางคืน

ขั้นตอนที่ 5: การประกอบ

การประกอบ
การประกอบ
การประกอบ
การประกอบ
การประกอบ
การประกอบ

กระดานนี้มีส่วนประกอบค่อนข้างน้อยและเครื่องหมายบนกระดานค่อนข้างง่าย

ตรวจสอบให้แน่ใจว่าคุณไม่ได้เสียบ Atmega328P ผิดทาง (เพราะอาจทำให้ร้อนและทำให้ชิปเป็นก้อน อาจทำลายตัวเพิ่มแรงดันไฟด้วย)

ในการตั้งค่านี้ ชิปคว่ำหน้าลง (พิน U รูเล็ก ๆ ทำเครื่องหมาย PIN1) ส่วนประกอบอื่นๆ ทั้งหมดควรมีความชัดเจน

ใช้สายเคเบิลที่มีฉนวนป้องกัน (เช่น: สายสัญญาณเสียงจาก CDrom จะใช้ได้ดี) สำหรับ LDR ในบางกรณี (ในช่วงหลายสัปดาห์ของการทดสอบ) ปรากฏว่ากำลังรบกวนการส่งสัญญาณวิทยุ นี่เป็นหนึ่งในบั๊กที่แก้ปัญหาได้ยาก ดังนั้นหากคุณไม่อยากมีปัญหา ก็แค่ใช้สายเคเบิลที่มีฉนวนหุ้ม ก็จบเรื่อง

LED: เดิม LED ที่ด้านล่างของกล่องถูกเพิ่มให้กะพริบเมื่อมีการส่งสัญญาณวิทยุออก แต่ต่อมาฉันคิดว่ามันเป็นการสิ้นเปลืองพลังงานและจะกะพริบเพียง 3 ครั้งในกระบวนการบูตเครื่อง

TP: เป็นจุดทดสอบสำหรับวัดกระแสสำหรับวงจรโดยรวม

DHT22: อย่าซื้อ DHT11 ราคาถูก ใช้จ่ายมากกว่า 50 เซ็นต์เพื่อรับ DHT22 สีขาวซึ่งสามารถวัดอุณหภูมิติดลบได้เช่นกัน

ขั้นตอนที่ 6: การออกแบบเคส

การออกแบบเคส
การออกแบบเคส
การออกแบบเคส
การออกแบบเคส
การออกแบบเคส
การออกแบบเคส

แม้ว่าจะเกินความสามารถไปบ้าง แต่ลูกบาศก์ที่พิมพ์ 3 มิติ (weather_cube) ถูกสร้างขึ้นเพื่อยึดเซ็นเซอร์อุณหภูมิ DHT22 เข้าที่ ลูกบาศก์ถูกติดกาวที่ด้านล่างของกล่อง IP โดยมีเพียง 1 รูเพื่อให้อากาศไปถึงเซ็นเซอร์ ฉันได้เพิ่มตาข่ายที่หลุมดักผึ้ง ตัวต่อ และแมลงวันตัวเล็กอื่นๆ

คุณสามารถใช้กล่องภายนอกเพื่อให้สถานีกันน้ำได้มากขึ้น ในกรณีที่คุณติดตั้งบนเสาจานที่เปิดอยู่

ไอเดียสำหรับ 1 คุณลักษณะที่มีประโยชน์: เพิ่มแผ่นหลังคาโลหะขนาดใหญ่ 1-2 ซม. ที่ด้านบนของกล่องเพื่อให้เงาจากดวงอาทิตย์ในฤดูร้อน แม้ว่าสิ่งนี้อาจทำให้แสงแดดที่มีประโยชน์ของเราหายไปจากแผง คุณสามารถสร้างการออกแบบที่แยกแผงและกล่องออกจากกัน

ในภาพ: สถานีใดสถานีหนึ่งถูกถอดออกจากสภาพแวดล้อมการทำงานหลังจากผ่านไป 1 ปี แรงดันแบตเตอรี่อยู่ที่ 3.9V ที่น่าทึ่ง ไม่มีความเสียหายจากน้ำที่ส่วนใดส่วนหนึ่งของกล่องแม้ว่าตาข่ายที่ฉันติดกาวไว้ที่ด้านล่างของลูกบาศก์ก็ขาดออกจากกัน เหตุผลที่จำเป็นต้องให้บริการสถานีคือข้อบกพร่องในการเชื่อมต่อบนขั้วต่อ LDR แม้ว่าสายจัมเปอร์จะยังอยู่ในตำแหน่งเดิม แต่การเชื่อมต่อขาด ดังนั้นบางครั้งหมุดจึงลอยได้ ทำให้การอ่านค่าอะนาล็อก LDR ไม่ดี คำแนะนำ: หากคุณใช้จัมเปอร์เคเบิล PC มาตรฐาน ให้ติดกาวทั้งหมดหลังจากที่สถานีทำงานได้อย่างสมบูรณ์เพื่อหลีกเลี่ยงปัญหานี้

ขั้นตอนที่ 7: ซอฟต์แวร์

ซอฟต์แวร์
ซอฟต์แวร์

รหัสซอฟต์แวร์จะต้องใช้ไลบรารีภายนอก 3 ตัว (LowPower, DHT, VirtualWire) เมื่อเร็ว ๆ นี้ฉันมีปัญหาในการค้นหาบางส่วนทางออนไลน์ได้ง่าย ดังนั้นฉันจึงแนบไฟล์เหล่านี้ในไฟล์ ZIP แยกต่างหาก ไม่ว่าคุณจะใช้ระบบปฏิบัติการ Linux/Windows อะไร เพียงค้นหาโฟลเดอร์ไลบรารีของ Arduino IDE ของคุณและแตกไฟล์ที่นั่น

โปรดทราบว่าฉันไม่แนะนำให้ซื้อ DHT11 แล้ว หากคุณใช้เซ็นเซอร์ DHT ผิดประเภท โปรแกรมจะหยุดทำงานตลอดไปที่จุดเริ่มต้นในส่วนการเริ่มต้น (คุณจะไม่เห็นไฟ LED เริ่มต้นกะพริบ 3 ครั้งด้วยซ้ำ)

รหัสลูปหลักนั้นง่ายมาก โดยขั้นแรกจะอ่านค่าสภาพแวดล้อม (อุณหภูมิ ดัชนีความร้อน ความชื้น แสงอาทิตย์) ส่งผ่านวิทยุ จากนั้นจึงใช้ไลบรารีพลังงานต่ำเพื่อให้ Arduino อยู่ในโหมดสลีปเป็นเวลา 5 นาที

ฉันพบว่าการลดการรับส่งข้อมูลจะเพิ่มความเสถียรของการส่งสัญญาณวิทยุ สถานีกำลังส่งข้อมูลจำนวนน้อยมาก 300 bps ก็เพียงพอแล้ว และอย่าลืมว่าเครื่องส่งกำลังทำงานจากเวลาประมาณ 4.8V ในอนาคตเวอร์ชัน 3.3V อาจทำให้คุณภาพการรับส่งข้อมูลแย่ลงไปอีก (การส่งข้อมูลผ่านกำแพงและสิ่งกีดขวางอื่นๆ) ฉันพบปัญหาเกี่ยวกับการใช้ Arduino Mega ที่ต่อกับ Raspberry PI 2 ในการจ่ายไฟให้กับ Mega จาก PI ซึ่งฉันไม่ได้รับการส่งสัญญาณใดๆ วิธีแก้ไขคือให้พลังงานแก่ Mega จากแหล่งจ่ายไฟ 12V ภายนอกที่แยกต่างหาก

ขั้นตอนที่ 8: เวอร์ชัน 2 (ตาม ESP32)

เวอร์ชัน 2 (ตาม ESP32)
เวอร์ชัน 2 (ตาม ESP32)
เวอร์ชัน 2 (ตาม ESP32)
เวอร์ชัน 2 (ตาม ESP32)
เวอร์ชัน 2 (ตาม ESP32)
เวอร์ชัน 2 (ตาม ESP32)

ทุกสิ่งที่สามารถทำลายได้จะแตกเพื่ออ้างคำพูดของเมอร์ฟีผู้เฒ่าที่ดีและในที่สุดหลังจากหลายปีสถานีก็ล้มเหลวด้วยวิธีลึกลับ หนึ่งเริ่มส่งข้อมูลพลังงานแสงอาทิตย์ที่ไม่มีความหมายซึ่งเพิ่มขึ้นเป็นหมื่น ซึ่งเป็นไปไม่ได้เนื่องจาก: บอร์ด Arduino มี 6 ช่องสัญญาณ (8 ช่องในมินิและนาโน 16 ช่องบนเมกะ) ตัวแปลงอนาล็อกเป็นดิจิตอล 10 บิต ซึ่งหมายความว่าจะจับคู่แรงดันไฟฟ้าขาเข้าระหว่าง 0 ถึง 5 โวลต์เป็นค่าจำนวนเต็มระหว่าง 0 ถึง 1023 ดังนั้นหลังจากเปลี่ยนวิทยุ LDR และตั้งโปรแกรม Atmega 328P ใหม่หลายครั้ง ฉันจึงเลิกล้มความตั้งใจและตัดสินใจว่าถึงเวลาของนวัตกรรมแล้ว ไปกันเลย ESP32

บอร์ดที่ฉันใช้คือ: ESP32 WEMOS LOLIN32 Lite V1.0.0 Wifi & Bluetooth Card Rev1 MicroPython 4MB FLASH

wiki.wemos.cc/products:lolin32:lolin32_lit…

ไมโครคอนโทรลเลอร์ ESP-32

แรงดันไฟฟ้าที่ใช้งาน 3.3V Digital I/O Pins 19 Analog Input Pins 6 Clock Speed(Max) 240Mhz Flash 4M bytes Length 5mm Width 2.54mm Weight 4g

ซึ่งต่างจากในรูปที่ไม่มีโลโก้ LOLIN (ของปลอมจากจีน) ความประหลาดใจที่น่ายินดีอย่างแรกของฉันคือพินเอาต์ที่พิมพ์บนกระดานเข้ากับพิน Arduino! หลังจากจัดการกับบอร์ด noname มากมายที่ฉันต้องมองหา pinouts ตลอดทั้งวันเหนื่อยจนทำผิดพลาดในที่สุดบอร์ดที่ pinout ตรงไปข้างหน้า WoW!

อย่างไรก็ตาม นี่คือด้านมืดของเรื่องราว:

ตอนแรกฉันได้เชื่อมต่อ LDR กับ A15 ซึ่งเป็นพิน 12 เพราะมันง่ายกว่าในการติดหมุดเข้าด้วยกัน จากนั้นฉันได้รับ 4095 การอ่าน (ซึ่งเป็นค่าสูงสุดที่คุณจะได้รับจาก AnlogRead บน ESP32) ซึ่งทำให้ฉันรู้สึกแย่เพราะเหตุผลทั้งหมดที่ฉันสร้างสถานีใหม่คือการอ่านค่า LDR ที่เสียจากอันเก่า (DHT ยังคงทำงานได้ดี). ปรากฎว่า:

esp 32 รวมการลงทะเบียน ACD 12 บิตสองตัว ADC1 เล็กน้อย 8 ช่องต่อกับ GPIO 32-39 และ ADC2 เล็กน้อย 10 ช่องในพินอื่นประเด็นคือ ESP32 ใช้ ADC2 เพื่อจัดการฟังก์ชั่น wifi ดังนั้นหากคุณใช้ Wifi คุณจะใช้รีจิสเตอร์นั้นไม่ได้ API ไดรเวอร์ ADC รองรับ ADC1 (8 ช่อง ต่อกับ GPIO 32 - 39) และ ADC2 (10 ช่อง ต่อกับ GPIO 0, 2, 4, 12 - 15 และ 25 - 27) อย่างไรก็ตาม การใช้ ADC2 มีข้อจำกัดบางประการสำหรับแอปพลิเคชัน:

ADC2 ถูกใช้โดยไดรเวอร์ Wi-Fi ดังนั้น แอปพลิเคชันจึงสามารถใช้ ADC2 ได้เฉพาะเมื่อไดรเวอร์ Wi-Fi ยังไม่เริ่มทำงาน หมุด ADC2 บางตัวใช้เป็นหมุดรัด (GPIO 0, 2, 15) จึงไม่สามารถใช้งานได้อย่างอิสระ เป็นกรณีนี้ในชุดพัฒนาอย่างเป็นทางการต่อไปนี้:

ดังนั้นการเชื่อมต่อ LDR จากพิน 12 ถึง A0 ซึ่ง VP แก้ไขทุกอย่าง แต่ฉันไม่เข้าใจว่าทำไมพวกเขาถึงแสดงรายการพิน ADC2 ว่าพร้อมใช้งานสำหรับผู้ผลิต ฮอบบิสต์คนอื่น ๆ อีกกี่คนที่เสียเวลามากมายในการคิดเรื่องนี้? อย่างน้อยก็ทำเครื่องหมายหมุดที่ใช้ไม่ได้ด้วยสีแดงหรือบางอย่าง หรือไม่ระบุในคู่มือเลย เพื่อให้ผู้ผลิตรายอื่นสามารถค้นหาข้อมูลเกี่ยวกับหมุดเหล่านี้ได้หากต้องการจริงๆ จุดประสงค์ทั้งหมดของ ESP32 คือใช้กับ WIFI ทุกคนใช้กับ WIFI

การเริ่มต้นที่ดีในการตั้งค่า Arduino IDE สำหรับบอร์ดนี้:

แม้ว่าฉันจะใส่รหัสไว้ที่นี่ แต่มันก็เป็นอีกครั้ง:

รหัสนี้อาจไม่สามารถคอมไพล์สำหรับรุ่น ESP32 อื่น ๆ นอกเหนือจาก Weemos LOLIN 32 !

สร้างการตั้งค่า: -ใช้การอัปโหลด/ซีเรียล: 115200 -ใช้ CPU/ram: 240Mhz(Wifi|BT) -ใช้ความถี่แฟลช: 80 Mhz

มีสถานีตรวจอากาศที่ใช้ ESP32 อยู่มากมายบนเน็ต ซึ่งเป็นวิธีที่ใช้กันทั่วไปมากกว่าเวอร์ชัน 1 ของฉันที่ใช้ชิปแบร์โบน เนื่องจากติดตั้งได้ง่ายกว่า คุณไม่จำเป็นต้องมีโปรแกรมเมอร์เพียงแค่เสียบอุปกรณ์บน usb และตั้งโปรแกรม โหมดดีปสลีปนั้นยอดเยี่ยมสำหรับการใช้งานแบตเตอรี่เป็นเวลานาน ทันทีที่ค้างคาวนี่เป็นสิ่งแรกที่ฉันทดสอบก่อนที่จะบัดกรีในหมุดแหกคุกเพราะเมื่อฉันสังเกตเห็นสถานที่หลายแห่งในโครงการนี้สิ่งที่สำคัญที่สุดคือการใช้พลังงานและด้วยแบตเตอรี่ปัจจุบัน (ปลอม) และแผงโซลาร์เซลล์ขนาดเล็กสแตนด์บาย พลังงานไม่สามารถเกิน 1-2mA ได้จริง ๆ มิฉะนั้นโครงการจะไม่สามารถรักษาตัวเองได้ในระยะยาว

เป็นเรื่องน่าประหลาดใจอีกครั้งที่โหมดหลับลึกทำงานตามที่โฆษณาไว้ ในช่วงหลับลึก กระแสไฟต่ำมากจนมัลติมิเตอร์ราคาถูกของฉันไม่สามารถวัดได้ (ใช้ได้กับฉัน)

ในระหว่างการส่งข้อมูล กระแสไฟอยู่ที่ประมาณ 80mA (ซึ่งมากกว่าตอนที่ Atmega 328P ตื่นขึ้นและส่งสัญญาณประมาณ 5 เท่า) อย่างไรก็ตาม อย่าลืมว่าด้วย V1 มีการระบายพลังงานเฉลี่ย 1mA บน LDR ในโหมดสลีป (ซึ่งก็ขึ้นอยู่กับระดับแสงและเปลี่ยนจาก 0.5mA - 1mA) ที่หมดไปแล้ว

ตอนนี้แบตเตอรี่ UltraFire ถูก debunked หากคุณใช้แบตเตอรี่เดียวกันนี่คือสิ่งที่คุณสามารถคาดหวังได้:

Iavg = (ตัน*ไอออน + Tsleep*Isleep) / (Ton +Tsleep)

Iavg = (2s*80mA + 300s*0.01mA) / (2s+300s) Iavg = 0.5mA

Pavg=VxIavg =5Vx0.5mA=2.5 mW

ทฤษฎี

อายุการใช้งานแบตเตอรี่ = 22000mWh/2.5mW = 8800 ชั่วโมง = 366 วันโดยประมาณ

จริง

อายุการใช้งานแบตเตอรี่ = 800mWh/2.5mW = 320 ชั่วโมง = 13 วันโดยประมาณ

ฉันไม่มีขอบเขตที่จะวัดเวลาเปิดเครื่องได้อย่างแม่นยำ แต่ด้วยการปรับแต่งของฉัน มันใช้เวลาประมาณ 2 วินาที

ฉันไม่ต้องการใช้เวลาช่วงบ่ายในการเขียนโค้ดเองทุกอย่าง ดังนั้นฉันจึงมองหาสถานีตรวจอากาศอื่นๆ บน Instructables ตาม ESP32 เพื่อดูว่าพวกเขาทำอะไรเพื่อจัดเก็บข้อมูล น่าเศร้าที่สังเกตว่าพวกเขากำลังใช้ไซต์ที่ไม่ยืดหยุ่นและจำกัด เช่น weathercloud เนื่องจากฉันไม่ใช่แฟนของ "คลาวด์" และโค้ดของพวกเขาก็พังไปนานแล้ว เนื่องจากไซต์ได้เปลี่ยน API ตั้งแต่นั้นมา ฉันจึงใช้เวลา 10 นาทีในการสร้างโซลูชันแบบกำหนดเอง เพราะมันไม่ยากอย่างที่คิด มาเริ่มกันเลย!

อย่างแรกเลย ไม่มีรูปแผงวงจรแยกต่างหากสำหรับโปรเจ็กต์นี้ เนื่องจากมันใช้ส่วนประกอบเดียวกัน (ขออภัยที่บัดกรีในรูปเขียงหั่นขนมที่น่าเกลียด) เป็น V1 โดยมีความแตกต่างที่ทุกอย่างหมด 3.3V DHT เชื่อมต่อกับการดึงไปที่ VCC, LDR ดึงลงมาด้วย 10k ปัญหาที่อาจเห็นกับแบตเตอรี่ 18650 เช่นแบตเตอรี่ปลอมของจีนของฉัน (6500 mAh ultra sun fire lol:D) คือพวกเขาเริ่มเส้นโค้งการปลดปล่อยออกจากยุคใหม่ประมาณ 4.1V และไปจนกว่าวงจรตัดของพวกเขาจะเริ่มขึ้นเพื่อหยุดความเสียหายของเซลล์ (ผู้ที่มีโชคมีวาสนา) สิ่งนี้ไม่ดีสำหรับเราในฐานะอินพุต 3.3V แม้ว่าบอร์ด LOLIN นี้จะมีขั้วต่อแบตเตอรี่ลิเธียมและวงจรชาร์จในโปรเจ็กต์นี้ ฉันก็อยากจะปรับปรุงสิ่งที่ทำได้มากที่สุดจากสถานีเก่า ดังนั้นด้วย 18650 แบบเก่า คุณจึงไม่สามารถใช้ที่ชาร์จในตัวได้ วิธีแก้ปัญหานั้นง่ายมาก: ฉันตัดสายไมโคร USB ที่บัดกรีใน 5V ออกจากตัวเพิ่มแรงดันไฟแบบเก่าและปัญหา voila ได้รับการแก้ไขแล้ว เนื่องจากบอร์ดบน microUSB มีตัวควบคุม

ดังนั้นความแตกต่างระหว่างรุ่นเก่าและรุ่นใหม่ในแบตเตอรี่เก่าให้ 3.7V -> เพิ่มเป็น 5V -> ardu ทำงานบน 5V -> ส่วนประกอบทั้งหมดทำงานบน 5V

ในตัวใหม่: แบตเตอรี่ให้ 3.7V -> เพิ่มเป็น 5V -> ควบคุมผ่านออนบอร์ด reg บน ESP32 -> ส่วนประกอบทั้งหมดทำงานบน 3.3V

ซอฟต์แวร์ที่ชาญฉลาดเราจะต้องมีไลบรารี DHT อื่นเช่นกัน DHT ของ Arduino ไม่สามารถทำงานร่วมกับ ESP ได้ สิ่งที่เราต้องการเรียกว่า DHT ESP

ฉันเริ่มใช้รหัสของฉันตามตัวอย่าง DHT รหัสนี้ที่ให้ไว้ การทำงานของรหัสคือ:

1, รับข้อมูลด้านสิ่งแวดล้อมจากข้อมูล DHT + Solar จาก photocell

2, เชื่อมต่อกับ wifi ด้วย IP แบบคงที่

3, โพสต์ข้อมูลไปยังสคริปต์ php

4 เข้านอน 10 นาที

อย่างที่คุณสังเกตเห็น ฉันได้ปรับโค้ดเพื่อประสิทธิภาพเพื่อลดเวลาปลุกให้เหลือน้อยที่สุด เนื่องจากมันใช้พลังงานถึง 5 เท่าเมื่อเทียบกับโปรเจ็กต์เก่าเมื่อเปิดเครื่อง ฉันทำสิ่งนี้ได้อย่างไร ก่อนอื่นหากมีข้อผิดพลาดใด ๆ ฟังก์ชัน getTemperature() จะกลับมาเป็นเท็จ (ซึ่งหมายถึงการนอนหลับ 10 นาทีอีกครั้ง) นี่อาจเหมือนกับว่าไม่สามารถเริ่มต้นเซ็นเซอร์ DHT หรือไม่มีการเชื่อมต่อ wifi ตามที่คุณสังเกตเห็นการวนซ้ำของ while() ตามปกติสำหรับการพยายามเชื่อมต่อ wifi ตลอดไปก็ถูกลบออกเช่นกัน แต่ต้องมีการหน่วงเวลา 1 วินาทีไว้ที่นั่น มิฉะนั้นจะไม่เชื่อมต่อเสมอและขึ้นอยู่กับประเภทของ AP โหลด ฯลฯ เร็วแค่ไหน จะเกิดขึ้นกับ 0.5 วินาที ฉันมีพฤติกรรมที่ไม่สอดคล้องกัน (บางครั้งไม่สามารถเชื่อมต่อได้) หากใครรู้วิธีที่ดีกว่าในการทำเช่นนี้โปรดทิ้งไว้ในความคิดเห็น เฉพาะเมื่อมีการอ่านข้อมูล DHT และการเชื่อมต่อ wifi เท่านั้นที่จะพยายามโพสต์ข้อมูลไปยังสคริปต์บนเว็บเซิร์ฟเวอร์ ฟังก์ชันทำลายเวลาทุกประเภท เช่น Serial.println() จะถูกปิดใช้งานในโหมดการทำงานปกติเช่นกัน ในฐานะเซิร์ฟเวอร์ ฉันยังใช้ IP เพื่อหลีกเลี่ยงการค้นหา DNS ที่ไม่จำเป็น ในรหัสของฉัน ทั้งเกตเวย์เริ่มต้นและเซิร์ฟเวอร์ DNS ตั้งค่าเป็น 0.0.0.0

ฉันไม่เข้าใจว่าทำไมการสร้าง API ของคุณเองจึงยากในเมื่อสิ่งที่ต้องทำคือ:

sprintf(การตอบสนอง "temp=%d&hum=%d&hi=%d&sol=%d", temp, hum, hi, sol);

int httpResponseCode = http. POST (ตอบกลับ);

คุณใส่โค้ด php ขนาดเล็กนี้ลงใน pi ราสเบอร์รี่ใด ๆ และคุณสามารถทำงาน system() ได้ทันทีโดยยึดตาม telemetry เช่นเปิดพัดลมหรือเปิดไฟหากมืดพอ

หมายเหตุบางประการเกี่ยวกับรหัส:

WiFi.config (staticIP, เกตเวย์, ซับเน็ต, DNS); // ต้องหลัง Wifi เริ่มงี่เง่า…

WiFi.mode (WIFI_STA); // ต้องไม่เช่นนั้นจะสร้าง AP. ที่ไม่ต้องการด้วย

ใช่ ตอนนี้คุณรู้แล้ว นอกจากนี้ ลำดับของการกำหนดค่า IP สามารถเปลี่ยนแปลงได้ผ่านแพลตฟอร์ม ฉันได้ลองใช้ตัวอย่างอื่นๆ ก่อน โดยที่ค่าเกตเวย์และซับเน็ตถูกเปลี่ยน ทำไมต้องตั้งค่า IP แบบคงที่? ค่อนข้างชัดเจน ถ้าคุณมีกล่องเฉพาะบนเครือข่ายของคุณ เช่น เซิร์ฟเวอร์ linux ที่ใช้ isc dhcpd คุณไม่ต้องการรายการบันทึกหลายร้อยล้านรายการเมื่อ ESP ตื่นขึ้นและรับ IP จาก DHCP โดยปกติแล้วเราเตอร์จะไม่บันทึกการเชื่อมโยงเพื่อไม่ให้มองเห็นได้ นี่คือราคาของการประหยัดพลังงาน

V2 ไม่เคยสามารถรักษาตัวเองได้เนื่องจากแบตเตอรี่คุณภาพไม่ดี และฉันเพียงแค่ใส่มันลงบนอะแดปเตอร์ ดังนั้นหากคุณต้องการสร้าง V1 หรือ V2 อย่าซื้อแบตเตอรี่ที่กล่าวถึง หาข้อมูลของคุณเองเกี่ยวกับแบตเตอรี่ (18650 รุ่นใดก็ได้) ความจุที่โฆษณามากกว่า 2000mAh บน Ebay เป็นการหลอกลวงที่มีความเป็นไปได้สูง)

แนะนำ: