DIY 풍속계 (준비 그룹의 어린이용). 집에서 만든 풍속계

USB 인터페이스를 통해 컴퓨터에서 데이터를 가져올 수 있도록 하나의 프로젝트에 대해 풍속계를 조립하는 작업이 있었습니다. 이 기사에서는 데이터 처리 시스템보다 풍속계 자체에 더 중점을 둘 것입니다.

1. 구성품

따라서 제품 제조에는 다음 구성 요소가 필요했습니다.
미츠미 볼 마우스 — 1개
탁구공 - 2개
적당한 크기의 플렉시 유리 조각
단면적이 2.5 mm2 - 3 cm인 구리선
볼펜 리필 — 1개
츄파춥스 캔디스틱 1개
케이블 클립 — 1개
중공 황동 배럴 1개

2. 임펠러 만들기

각각 120도 각도로 1cm 길이의 구리 와이어 3개를 황동 배럴에 납땜했습니다. 배럴의 구멍에는 끝에 실로 중국 선수의 스탠드를 납땜했습니다.

나는 사탕에서 튜브를 약 2cm 길이의 3 부분으로 자릅니다.

나는 2개의 공을 반으로 자르고 같은 선수의 작은 나사와 폴리스티렌 접착제(글루 건 포함)를 사용하여 공의 절반을 롤리팝 튜브에 부착했습니다.

나는 납땜 된 와이어 조각에 공의 반쪽이있는 튜브를 놓고 접착제로 모든 것을 고정했습니다.

3. 주요 부품 제조

풍속계의 베어링 요소는 볼펜의 금속 막대입니다. 막대 아래쪽(코르크가 삽입된 부분)에는 마우스(인코더)에서 디스크를 삽입했습니다. 마우스 자체의 디자인에서 인코더의 하단 부분이 마우스의 몸체에 닿아 포인트 베어링을 형성하고 그리스가 있어서 인코더가 쉽게 회전했습니다. 그러나 막대의 상단 부분을 고정해야했습니다.이를 위해 구멍이있는 적절한 플라스틱 조각을 막대의 지름과 정확히 일치 시켰습니다 (이러한 조각은 CD-ROMa 캐리지 확장 시스템에서 절단되었습니다). 엔코더 로드가 포인트 베어링에서 떨어지지 않도록 문제를 해결하는 것이 남아 있었기 때문에 유지 요소 바로 앞에 있는 로드에 몇 방울의 땜납을 납땜했습니다. 따라서 막대는 유지 구조에서 자유롭게 회전했지만 베어링에서 떨어지지 않았습니다.

인코더 회로를 선택한 이유는 다음과 같습니다. 인터넷의 집에서 만든 풍속계에 대한 모든 기사는 플레이어, CD-ROM 또는 기타 제품의 DC 모터를 기반으로 한 제조에 대해 설명했습니다. 이러한 장치의 문제는 첫째, 낮은 풍속에서 교정 및 낮은 정확도, 둘째, 출력 전압에 대한 풍속의 비선형 특성, 즉 정보를 컴퓨터로 전송하려면 특정 문제가 있습니다. 풍속으로부터 전압 또는 전류 변화의 법칙을 계산해야 합니다. 엔코더를 사용하는 경우 의존성이 선형이기 때문에 이러한 문제는 없습니다. 인코더가 풍속계 축의 회전당 약 50 펄스를 제공하기 때문에 정확도가 가장 높지만 컨버터 회로는 포트 및 출력 중 하나에서 초당 펄스 수를 계산하는 마이크로 컨트롤러가 있는 다소 복잡합니다. 이 값을 USB 포트에.

4. 테스트 및 교정

보정을 위해 실험실 풍속계를 사용했습니다.

일반 가정용 브랜드 또는 집에서 만든 기상 관측소는 두 가지 온도 습도(실내 및 외부), 기압을 측정하고 달력이 있는 시계가 추가로 있습니다. 그러나 실제 기상 관측소에는 일사량 센서, 우량계 및 일반적으로 한 가지 예외를 제외하고는 전문적인 목적으로만 필요한 모든 것이 훨씬 더 많습니다. 풍속계(속도, 그리고 가장 중요한 방향)는 시골집에 매우 유용한 추가 기능입니다. 또한 브랜드 풍향계는 Ali Baba에서도 상당히 비싸며 집에서 만든 솔루션을 보는 것이 합리적입니다.

내 아이디어가 실험에 얼마나 많은 수작업과 비용을 들일지 미리 알았다면 아마도 시작하지 않았을 것이라고 즉시 말해야 합니다. 그러나 호기심이 더 중요했고 이 기사의 독자는 내가 우연히 발견해야 했던 그런 함정을 피할 수 있는 기회를 얻었습니다.

을위한 풍속 측정(anemometry) 수백 가지 방법이 있으며 그 중 주요 방법은 다음과 같습니다.

열선,
- 기계식 - 프로펠러(보다 정확하게는 임펠러) 또는 컵 수평 임펠러(클래식 컵 풍속계) 이 경우 속도를 측정하는 것은 프로펠러 또는 임펠러가 고정된 축의 속도를 측정하는 것과 같습니다.
- 속도와 방향 측정을 결합한 초음파.
을위한 방향 측정더 적은 방법:
- 언급된 초음파;
- 회전 각도를 전자적으로 제거하는 기계적 풍향계. 회전 각도를 측정하는 방법에는 광학, 저항, 자기, 유도, 기계 등 여러 가지가 있습니다. 그건 그렇고, 전자 나침반을 풍향계 샤프트에 간단히 장착할 수 있습니다. 이것은 혼란스럽게 회전하는 축에서 판독값을 전송하는 신뢰할 수 있고 간단한("무릎" 반복의 경우) 여전히 찾아야 할 방법입니다. 따라서 우리는 전통적인 광학 방법을 더 선택합니다.

이러한 방법 중 하나를 스스로 반복할 때 최소한의 에너지 소비와 24시간(또는 1년 내내?) 태양과 비에 대한 노출 요구 사항을 염두에 두어야 합니다. 바람 센서는 지붕 아래 그늘에 놓을 수 없습니다. 반대로 모든 간섭 요소에서 가능한 한 멀리 떨어져 있어야 하며 "모든 바람에 개방"되어야 합니다. 이상적인 위치는 집 지붕의 능선 또는 최악의 경우 다른 건물과 나무에서 떨어진 헛간이나 전망대입니다. 이러한 요구 사항은 자율 전원 공급 및 분명히 무선 데이터 전송 채널을 의미합니다. 이러한 요구 사항은 아래에 설명된 디자인의 일부 "종소리와 휘파람" 때문입니다.

최소 소비 전력에 대해

그건 그렇고, 최소 전력 소비는 얼마입니까? 일반 가정용 AA 배터리를 기준으로 회로의 평균 소비는 이상적으로는 1-2mA를 넘지 않아야 합니다. 스스로 계산하십시오 : 알맞은 AA 알카라인 셀의 용량은 약 2.5-3 Ah입니다. 즉, 표시된 소비량의 회로는 약 1500-2500 시간 또는 2-3 개월 동안 작동합니다. 원칙적으로 이것은 그다지 많지는 않지만 상대적으로 수용 가능합니다. 배터리가 파손되거나 배터리를 교체하는 것보다 더 자주 충전해야 하는 배터리를 사용해야 합니다. 이러한 이유로 이러한 회로를 작성할 때 필수 절전 모드, 신중하게 고려된 회로 및 프로그램의 작업 순서와 같은 부스러기를 잡아야 합니다. 또한 최종 설계에서 여전히 필요한 요구 사항을 충족하지 못했고 배터리 전원을 사용해야 했음을 알 수 있습니다.


가장 현대적이고 진보된 방법인 초음파를 재현하려고 시도한 방법에 대한 유익한 이야기와 실패한 경우 다른 시간에 알려 드리겠습니다. 다른 모든 방법은 속도와 방향을 별도로 측정해야 하므로 두 개의 센서를 차단해야 했습니다. 이론적으로 열선 풍속계를 연구 한 결과 아마추어 수준의 기성품 민감한 요소를 구입할 수 없다는 것을 깨달았습니다 (서구 시장에서 구할 수 있습니다!). 그러나 직접 발명하기 위해- 그에 상응하는 시간과 비용의 낭비와 함께 다음 R&D. 따라서 몇 가지 생각 끝에 두 센서에 대해 통합된 디자인을 만들기로 결정했습니다. 회전 속도를 광학적으로 측정하는 컵 풍속계와 인코더 디스크(인코더)를 기반으로 회전 각도를 전자적으로 읽을 수 있는 풍향계입니다.

센서 설계

기계식 센서의 장점은 R&D가 필요하지 않고 원리가 간단하고 명확하며 결과의 품질은 신중하게 고려한 설계의 정확성에만 달려 있다는 것입니다.

따라서 이론적으로 보였지만 실제로는 많은 기계 작업이 발생했으며, 그 중 일부는 선반과 밀링 머신이 없기 때문에 옆에서 주문해야 했습니다. 나는 처음부터 자본적 접근에 의존하고 즉석 재료로 건축물을 울타리하지 않은 것을 후회한 적이 없다고 즉시 말해야합니다.

풍향계와 풍속계의 경우 터너와 밀러에서 주문해야 했던 다음 부품이 필요합니다(두 센서에 대한 수량과 재료가 한 번에 표시됨).

축은 반드시 선반에서 회전해야 합니다. 끝이 정확히 무릎 중앙에 있는 축을 만드는 것은 거의 불가능합니다. 그리고 여기에서 회전 축을 따라 정확히 팁을 배치하는 것이 성공을 결정짓는 요소입니다. 또한 축은 완벽하게 직선이어야 하며 편차가 허용되지 않습니다.

기계식 풍향 센서 - 전자 풍향계

풍향계(아래의 속도 센서 포함)의 기초는 왼쪽 상단의 그림에 표시된 D-16 두랄루민으로 만든 U자형 브래킷입니다. PTFE 조각이 아래쪽 홈으로 눌러지며 2mm 및 3mm 드릴로 계단식 홈이 연속적으로 만들어집니다. 끝이 뾰족한 이 홈에 축이 삽입됩니다(바람개비의 경우 - 황동으로 제작됨). 위에서부터 8mm 구멍을 자유롭게 통과합니다. 이 구멍 위에 동일한 불소수지 4mm 두께의 직사각형 조각이 구멍과 겹치도록 M2 나사를 사용하여 브래킷에 부착됩니다. PTFE에 정확히 6mm의 축 직경을 따라 구멍이 만들어졌습니다(구멍의 공통 축을 따라 정확히 위치 - 아래 조립도 참조). 여기에서 상단과 하단의 불소수지는 플레인 베어링의 역할을 합니다.


포토플라스틱에 대한 마찰 지점의 축을 연마할 수 있으며, 불소 수지에 구멍을 카운터싱크하여 마찰 영역을 줄일 수 있습니다. ( 09/13/18 및 06/05/19의 UPD 아래에서 이 주제를 참조하십시오.). 풍향계의 경우 이것은 특별한 역할을하지 않습니다. 일부 "지연"도 그에게 유용하며 풍속계의 경우 마찰과 관성을 최소화해야합니다.

이제 회전 각도를 제거하는 방법에 대해 설명합니다. 우리의 경우 클래식 16-포지션 그레이 인코더는 다음과 같습니다.

디스크 크기는 서로로부터 송신기-수신기 쌍의 안정적인 광학적 격리 조건에 따라 선택되었습니다. 이 구성에서 5mm 너비의 슬릿도 5mm 간격으로 떨어져 있고 광학 쌍은 정확히 10mm 간격으로 떨어져 있습니다. 풍향계가 부착되는 브래킷의 치수는 디스크 직경 120mm를 기준으로 정확하게 계산되었습니다. 물론 이 모든 것을 줄일 수 있지만(특히 가능한 한 가장 작은 직경의 LED와 광검출기를 선택하는 경우) 인코더 제조의 복잡성이 고려되었습니다. 바늘로 수동으로 절단해야했습니다. 크기가 클수록 결과가 더 안정적이고 번거로움이 줄어듭니다.

위의 조립도는 디스크가 축에 어떻게 부착되어 있는지 보여줍니다. 주의 깊게 중앙에 배치된 디스크가 M2 나사를 사용하여 카프로론 슬리브에 부착됩니다. 부싱은 상단의 간격이 최소화되도록 축에 배치됩니다(1-2mm) - 축이 정상 위치에서 자유롭게 회전하고 뒤집을 때 팁이 소켓에서 떨어지지 않도록 맨 아래. 광검출기 및 방출기 블록은 디스크의 상단과 하단에 있는 브래킷에 부착되며, 보다 구체적으로 아래에서 해당 설계에 대해 설명합니다.

전체 구조는 150×150×90 mm 크기의 플라스틱(ABS 또는 폴리카보네이트) 케이스에 넣습니다. 조립된(커버 및 풍향계 제외) 방향 센서는 다음과 같습니다.

선택한 북쪽 방향은 화살표로 표시되며 센서를 다시 설치할 때 준수해야 합니다.

실제 풍향계는 축의 상단에 부착됩니다. 그것은 황동 시트 생크가 납땜 된 무딘면의 절단에서 동일한 황동 차축을 기반으로 만들어집니다. 날카로운 끝에서 M6 스레드가 특정 길이로 절단되고 납으로 만든 둥근 무게 균형 웨이트가 너트를 사용하여 고정됩니다.

하중 중심이 정확히 부착점에 오도록 설계되었습니다(실을 따라 이동하면 완벽한 균형을 얻을 수 있습니다). 풍향계는 M3 스테인리스 나사를 사용하여 축에 고정됩니다. 이 나사는 풍향계 축의 구멍을 통과하고 회전축에서 절단된 나사산에 나사로 고정됩니다(고정 나사는 위 사진에서 볼 수 있음). 정확한 방향을 위해 회전축의 상단에는 풍향계의 축이 있는 반원형 홈이 있습니다.

풍속 센서 - DIY 컵 풍속계

이미 이해하셨듯이 통일을 위한 속도센서의 기반은 풍향계와 동일하게 선택되었습니다. 그러나 여기서 설계 요구 사항은 약간 다릅니다. 시작 임계값을 줄이려면 풍속계가 가능한 한 가벼워야 합니다. 따라서 특히 축은 두랄루민으로 만들어졌으며 구멍이있는 디스크 (회전 속도 측정 용)는 직경이 줄어 듭니다.

4비트 그레이 인코더에는 4개의 옵토커플러가 필요하지만 속도 센서에는 1개만 필요합니다. 16개의 구멍이 디스크의 둘레를 따라 동일한 거리로 뚫려 있으므로 초당 디스크의 1회전은 옵토커플러에서 나오는 주파수의 16헤르츠와 같습니다(더 많은 구멍이 가능하고 더 적을 수 있습니다. 유일한 질문은 방출자에 대한 재계산 및 에너지 절약 규모).

자체 제작 센서는 여전히 ​​매우 거친 것으로 판명되었지만 (시작 임계 값은 초당 최소 0.5 미터 임), 설계가 근본적으로 변경된 경우에만 줄일 수 있습니다. 예를 들어 대신 프로펠러를 배치하십시오. 컵 턴테이블. 컵 턴테이블에서 토크를 결정하는 흐름 저항력의 차이는 상대적으로 작습니다. 이는 오로지 다가오는 공기 흐름을 만나는 표면의 다른 모양으로 인해 달성됩니다(따라서 컵의 모양은 다음과 같이 유선형이어야 합니다. 가능 - 이상적으로는 반 계란 또는 공입니다). 프로펠러는 토크가 훨씬 더 크고 무게를 훨씬 더 가볍게 만들 수 있으며 마지막으로 제작 자체가 더 간단합니다. 그러나 프로펠러는 공기 흐름 방향으로 설치해야 합니다(예: 같은 풍향계 끝에 배치).

동시에 질문에 대한 질문: 수직 축을 중심으로 무작위로 회전하는 센서에서 판독값을 전송하는 방법은 무엇입니까? 나는 그것을 해결할 수 없었고 전문적인 컵 디자인이 여전히 널리 퍼져 있다는 사실로 판단하면 하프 킥으로 결코 해결되지 않습니다 (우리는 휴대용 풍속계를 고려하지 않습니다-공기에 따라 수동으로 방향을 지정합니다 흐름).

내 버전의 컵 풍속계는 레이저 디스크를 기반으로 합니다. 상단 및 하단보기가 사진에 표시됩니다.



컵은 아기 물병 "Agusha"의 바닥에서 만들어집니다. 바닥은 조심스럽게 잘리고 세 개 모두 같은 거리에서 같은 무게를 갖도록 중앙에서 국부적으로 예열됩니다 (어떤 경우에도 전체를 가열하지 마십시오 - 돌이킬 수 없게 뒤틀릴 것입니다!) 그리고 뒷면 파일의 나무 손잡이 부분이 바깥쪽으로 구부러져 더욱 유선형입니다. 당신은 반복할 것입니다 - 더 큰 병을 비축해 두십시오. 5개 또는 6개의 조각 중에서 3개 정도의 동일한 컵을 만들 수 있을 것입니다. 제작된 컵은 측면에 슬롯이 만들어지고 방수 접착제 실런트를 사용하여 디스크의 둘레를 따라 서로에 대해 120°로 고정됩니다. 디스크는 축을 기준으로 엄격하게 중앙에 위치하며(나는 동봉된 금속 와셔를 사용하여 이 작업을 수행했습니다) M2 나사로 카프로론 슬리브에 고정됩니다.

센서의 일반 설계 및 설치

이미 언급한 대로 두 센서 모두 150×150×90mm 플라스틱 케이스에 들어 있습니다. 케이스 재료 선택은 신중하게 접근해야 합니다. ABS 또는 폴리카보네이트는 내후성이 충분하지만 폴리스티렌, 플렉시 유리 및 폴리에틸렌은 여기에서 확실히 작동하지 않습니다(또한 태양으로부터 보호하기 위해 페인트를 칠하는 것도 어려울 것입니다. ). 브랜드 상자를 구입할 수 없다면 호일 유리 섬유로 케이스를 직접 납땜 한 다음 부식으로부터 보호하고 미적 외관을 부여하기 위해 페인트하는 것이 좋습니다.

축이 나오는 지점에서 정확히 8-10mm의 구멍이 뚜껑에 만들어지며 플라스틱 원뿔은 동일한 접착제 밀봉제로 접착되고 건물 밀봉 제 또는 접착제로 스프레이 캔의 주둥이에서 잘라냅니다.

축을 따라 원뿔의 중심을 맞추려면 클램프로 뚜껑 바닥에서 나무 조각을 고정하고 정확한 중심을 표시한 다음 12mm 스페이드 드릴로 조금 더 깊이 들어가 구멍 주위에 환형 오목한 부분을 만듭니다. 원뿔은 정확히 거기에 들어가야하며 그 후에 접착제로 코팅 할 수 있습니다. 너트가 있는 M6 나사로 응고시 수직 위치에 추가로 고정할 수 있습니다.

속도 센서 자체가 우산처럼 이 원뿔로 차축을 덮어 물이 하우징으로 들어가는 것을 방지합니다. 풍향계의 경우 원뿔 위에 슬리브를 추가로 배치하여 직접적인 물 흐름에서 축과 원뿔 사이의 간격을 좁힐 가치가 있습니다(아래 센서의 일반 보기 사진 참조).

광커플러의 전선은 별도의 D-SUB 커넥터에 연결됩니다(위의 방향 센서 사진 참조). 케이블과 결합되는 부분은 케이스 베이스의 직사각형 구멍을 통해 삽입됩니다. 그런 다음 구멍은 커넥터가 빠지지 않도록 하는 케이블용 슬롯이 있는 덮개로 덮여 있습니다. Dural 브래킷은 제자리에 고정하기 위해 케이스 바닥에 나사로 고정됩니다. 구성은 센서의 위치에 따라 다릅니다.

두 센서를 조립하면 다음과 같이 보입니다.

여기 전망대의 능선에 이미 설치된 것으로 표시됩니다. 덮개를 고정하는 나사의 홈은 젖은 고무 플러그로 물로부터 보호됩니다. 센서는 레벨에 따라 엄격하게 수평으로 설치되며 리놀륨 조각의 라이닝을 사용해야했습니다.

전자부품

기상 관측소는 전체적으로 두 개의 모듈로 구성되어 있습니다. 하나는 원격 장치(두 개의 풍향 센서를 제공하고 외부 온도-습도 센서에서 판독값을 가져옴)와 디스플레이가 있는 메인 모듈입니다. 원격 장치에는 내부에 설치된 데이터 전송용 무선 송신기가 장착되어 있습니다(안테나는 측면에서 돌출됨). 메인 모듈은 원격 장치에서 데이터를 수신하고(수신기는 방향을 쉽게 잡기 위해 별도의 장치에 케이블에 배치됨) 내부 온도-습도 센서에서 판독값을 가져와 이 모든 것을 디스플레이에 표시합니다. 기본 장치의 별도 구성 요소는 달력이 있는 시계로, 스테이션의 일반적인 설정의 편의를 위해 별도의 Arduino Mini 컨트롤러에 의해 서비스되고 자체 디스플레이가 있습니다.

바람 센서의 원격 모듈 및 측정 회로

AL-107B IR LED가 광이미터로 선택되었습니다. 물론 이 빈티지 LED는 동급 최고는 아니지만 직경이 2.4mm인 소형 본체를 가지고 있으며 펄스당 최대 600mA의 전류를 흘릴 수 있습니다. 그건 그렇고, 테스트 중에 1980 년경 출시 된이 LED 샘플 (빨간색 케이스)이 Chip에서 구입 한 최신 샘플보다 효율 (광검출기의 안정적인 작동 범위로 표시)이 약 2 배인 것으로 나타났습니다. -깊다(투명한 황록색 몸체를 가짐). 1980년의 크리스탈이 지금보다 더 나았을 가능성은 거의 없지만, 농담이 아닌 것은 무엇입니까? 그러나 아마도 문제는 두 설계에서 다른 산란 각도에 있습니다.

약 20mA의 직류가 속도 센서의 LED(5볼트로 전원이 공급될 때 150옴 저항)를 통과하고 방향 센서에서 약 65mA의 펄스(듀티 사이클이 2인 구불구불) 전류( 12볼트로 전원이 공급될 때 동일한 150옴). 방향 센서의 하나의 LED를 통한 평균 전류는 약 33mA이며 총 4개의 채널(약 130mA)을 통과합니다.

광검출기로는 직경 3mm 패키지의 L-32P3C 광트랜지스터가 선택되었습니다. 신호는 5V 전원에서 1.5 또는 2kOhm 저항이 로드된 컬렉터에서 가져왔습니다. 이러한 매개변수는 광 방출기와 수신기 사이의 거리가 ~ 20mm이고 5에서 전체 크기 논리 신호가 되도록 선택되었습니다. 추가 증폭 없이 -볼트 레벨은 즉시 컨트롤러 입력에 도달합니다. 여기에서 계산된 전류는 위에서 언급한 최소 전력 요구 사항을 기준으로 볼 때 불균형적으로 큰 것처럼 보일 수 있지만, 앞으로 보게 될 것처럼 각 측정 주기에 최대 몇 밀리초 동안 나타나므로 총 소비량이 작게 유지됩니다.

수신기와 이미 터를 장착하기위한 기초는 브래킷에 장착하기 위해 바닥에 "귀"를 형성하도록 절단 된 케이블 채널 섹션 (위의 센서 사진 참조)이었습니다. 이 컷 각각에 대해 채널 너비와 너비가 동일한 플라스틱 판을 안쪽에서 잠금 덮개에 붙였습니다. LED와 광 트랜지스터는 리드가 채널 내부에 있고 케이스 끝의 돌출 부분만 외부로 돌출되도록 이 플레이트에 뚫린 구멍에 필요한 거리로 고정되었습니다. 결론은 다이어그램에 따라 납땜되며 (아래 참조) 외부 결론은 유연한 멀티 컬러 와이어 절단으로 이루어집니다. 방향 센서의 이미 터에 대한 저항도 채널 내부에 배치되며 하나의 일반적인 결론이 도출됩니다. 납땜 제거 후 덮개가 제자리에 고정되고 모든 슬롯은 플라스틱으로 밀봉되고 접착 테이프로 추가로 밀봉되어 리드 반대쪽에서 구멍을 막고 전체 구조는 에폭시로 채워집니다. 센서 사진에서 볼 수 있듯이 외부 결론은 브래킷 후면에 고정된 터미널 블록으로 출력됩니다.

회로도바람 센서 처리 장치는 다음과 같습니다.

12-14볼트 전원의 출처는 아래를 참조하십시오. 다이어그램에 표시된 구성 요소 외에도 원격 장치에는 다이어그램에 표시되지 않은 온도-습도 센서가 포함되어 있습니다. 컨트롤러의 A0 단자에 연결된 전압 분배기는 적시 교체를 위해 전원 공급 장치의 전압을 제어하도록 설계되었습니다. 기존의 핀 13(DIP 케이스의 핀 19)에 연결된 LED는 매우 밝습니다. 정상적이고 눈이 부시지 않는 발광을 위해 33의 비정상적으로 높은 값으로 보장되는 밀리암페어의 전류로도 충분합니다. kΩ 저항.

이 회로는 Uno를 통해 프로그래밍되고 소켓에 설치된 DIP 패키지의 베어 Atmega328 컨트롤러를 사용합니다. 이미 작성된 Arduino 부트로더가 있는 컨트롤러는 예를 들어 Chip-Dip으로 판매됩니다(또는 부트로더를 직접 작성할 수 있음). 친숙한 환경에서 이러한 컨트롤러를 프로그래밍하는 것이 편리하지만 보드에 구성 요소가 없으므로 첫째로 더 경제적이고 둘째로 적은 공간을 차지합니다. 본격적인 에너지 절약 모드는 부트로더도 제거하여 얻을 수 있습니다(일반적으로 모든 코드를 어셈블러에 작성합니다.). 하지만 여기서는 그다지 관련성이 없고 프로그래밍이 불필요하게 복잡합니다.

다이어그램에서 회색 사각형은 속도 및 방향 채널과 별도로 관련된 구성 요소에 동그라미를 쳤습니다. 계획의 운영을 전체적으로 고려하십시오.

전체 컨트롤러의 동작은 인터럽트 호출 모드에서 활성화된 워치독 타이머 WDT에 의해 제어됩니다. WDT는 설정된 간격으로 컨트롤러를 절전 모드에서 깨웁니다. 호출된 인터럽트에서 타이머가 재설정되는 경우 처음부터 다시 시작하지 않고 모든 전역 변수는 해당 값으로 유지됩니다. 이를 통해 기상에서 기상까지 데이터를 축적하고 어느 시점에서 처리할 수 있습니다(예: 평균).

프로그램 시작 시 다음과 같은 라이브러리 및 전역 변수 선언이 이루어집니다(이미 광범위한 예제의 텍스트를 어지럽히지 않도록 온도-습도 센서와 관련된 모든 것이 여기에 공개됨).

#포함 #포함 #포함 . . . . . #define ledPin 13 //LED 핀(PB5 핀 19 ATmega) #define IR_Pin 10 //IRLU 트랜지스터 제어(PB2 핀 16 Atmega) #define in_3p 9 //수신기 입력 비트 3 #define in_2p 8 //수신기 입력 비트 2 # define in_1p 7 //수신기 입력 비트 1 #define in_0p 6 //수신기 입력 비트 0 #define IR_PINF 5 //(PD5,11) 주파수에 대한 출력 IR LED #define IN_PINF 4 //(PD4,6) 주파수 감지 입력 휘발성 부호 없는 긴 ttime = 0; //센서 활성화 기간 float ff; //평균을 위한 속도 센서 주파수 값 char msg; //보낸 메시지 바이트 count=0;//counter int batt; // 배터리 바이트의 평균 wDir; // 풍향 배열 byte wind_Gray=0; //풍향 코드 바이트
다음 절차는 절전 모드 및 WDT(4초마다 깨우기)를 시작하는 데 사용됩니다.

// 시스템을 절전 모드로 전환 void system_sleep() ( ADCSRA &= ~(1<< ADEN); //экв. cbi(ADCSRA,ADEN); выключим АЦП set_sleep_mode(SLEEP_MODE_PWR_DOWN); // режим сна sleep_mode(); // система засыпает sleep_disable(); // система продолжает работу после переполнения watchdog ADCSRA |= (1 << ADEN); /экв. sbi(ADCSRA,ADEN); включаем АЦП } //**************************************************************** // ii: 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms // 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec void setup_watchdog(int ii) { byte bb; if (ii >9) ii=9; bb=ii & 7; if (ii > 7) bb|= (1<<5); //в bb - код периода bb|= (1<속도 센서는 광 채널의 차단 주파수를 출력하며 크기는 수십 헤르츠입니다. 일정 기간 후에 이러한 값을 측정하는 것이 더 경제적이고 빠릅니다(이는 저자의 출판물 "Arduino에서 저주파 측정 방법 평가"의 주제였습니다). 여기에서 측정을 특정 컨트롤러 출력에 바인딩하지 않는 수정된 함수 pulseInLong()을 통해 방법이 선택됩니다(periodInLong() 함수의 텍스트는 지정된 발행물에서 찾을 수 있음).

setup() 함수에서 핀 방향이 선언되고 433MHz 송신기 라이브러리 및 워치독 타이머가 초기화됩니다(IN_PINF에 대한 라인은 원칙적으로 불필요하며 메모리용으로 삽입됨).

Void setup() ( pinMode(IR_PINF, OUTPUT); //출력 pinMode(IN_PINF, INPUT); //입력 pinMode(13, OUTPUT)에 주파수 감지 출력; //LED vw_setup(1200); // VirtualWire 연결 속도 vw_set_tx_pin(2); //D2, PD2(4) VirtualWire 전송 핀 // Serial.begin(9600); // 디버깅 시 모니터링할 직렬 포트 setup_watchdog(8); //WDT 주기 4 c wdt_reset(); )
마지막으로 프로그램의 메인 루프에서 깨어날 때마다(4초마다) 전압을 읽고 풍속 센서의 주파수를 계산합니다.

Void loop() ( wdt_reset(); // 타이머 재설정 digitalWrite(ledPin, HIGH); // LED를 켜서 제어 batt=analogRead(0); // 현재 배터리 코드를 읽고 저장합니다. /*=== frequency === = */ digitalWrite(IR_PINF, HIGH); //속도 센서의 IR LED 켜기 float f=0; //주파수에 대한 변수 ttime=periodInLong(IN_PINF, LOW, 250000); //대기 0.25초 // Serial.println(ttime); //디버깅 중 제어용 if (ttime!=0) (//주파수가 없는 경우 f = 1000000/float(ttime);) // 신호 주파수를 Hz로 계산 digitalWrite(IR_PINF, LOW); //IR LED 끄기 ff=f; //계산된 값을 배열에 저장 . . . .
여기에서 IR LED의 연소 시간(20mA 소모, 20mA)은 보시다시피 센서 디스크의 회전이 없을 때 최대가 되며 이 조건에서 약 0.25초입니다. 따라서 최소 측정 가능한 주파수는 4Hz(16홀이 있는 초당 디스크 회전의 1/4)입니다. 센서를 보정할 때 밝혀진 바와 같이(아래 참조) 이것은 약 0.2m/s의 풍속에 해당합니다. 우리는 이것이 풍속의 최소 측정값이지만 분해능이 아니라 시작 임계값이 아님을 강조합니다. 훨씬 높다). 주파수가 있는 경우(즉, 센서가 회전할 때) 측정 시간(따라서 LED가 소모되는 시간, 즉 소비 전류)은 비례하여 감소하고 분해능은 증가합니다.

네 번째 각성(즉, 16초마다)마다 수행되는 절차가 뒤따릅니다. 누적된 4개의 값에서 속도 센서의 주파수 값을 평균이 아닌 최대값으로 전송합니다. 경험에서 알 수 있듯이 이것은 더 유익한 값입니다. 편의와 균일성을 위해 각 수량은 유형에 관계없이 전송 전에 소수점 이하 4자리 크기의 양의 정수로 변환됩니다. count 변수는 깨우기 횟수를 추적합니다.

//16초마다 배터리의 평균을 구하고 //4개의 값에서 최대 주파수 값을 결정합니다. if (count==3)( f=0; //주파수 값 for (byte i=0; i<4; i++) if (f다음은 방향의 그레이 코드의 정의입니다. 여기서 소모를 줄이기 위해 IR LED를 지속적으로 켜는 대신 톤() 기능을 사용하는 키 전계 효과 트랜지스터를 통해 5kHz의 주파수를 4개 채널 모두에 동시에 인가합니다. 각 숫자(in_0p - in_3p 핀)의 주파수 존재 감지는 눌린 버튼의 표시를 읽을 때 바운스 방지와 유사한 방법으로 수행됩니다. 먼저 루프에서 출력이 높은지 확인한 다음 100µs 후에 확인합니다. 100μs는 5kHz의 주파수의 절반 주기입니다. 즉, 적어도 두 번째부터 주파수가 있으면 다시 높은 수준에 도달합니다(4번 반복하는 경우를 대비하여). 이는 다음을 의미합니다. 그것은 확실히 거기에 있습니다. 코드의 4비트 각각에 대해 이 절차를 반복합니다.

/* ===== Wind Gray ==== */ //방향: tone(IR_Pin,5000);//주파수 5kHz에서 트랜지스터 부울로 yes = false; 바이트 i=0; while(!yes)( //숫자 3 i++; 부울 state1 = (digitalRead(in_3p)&HIGH); delayMicroseconds(100); // 100마이크로초 지연 yes=(state1 & !digitalRead(in_3p)); if (i> 4 ) break; // 네 번 시도) if (yes) wDir=1; 그렇지 않으면 wDir=0; 예 = 거짓; 나는 = 0; while(!yes)( //숫자 2 i++; 부울 state1 = (digitalRead(in_2p)&HIGH); delayMicroseconds(100); // 100마이크로초 지연 yes=(state1 & !digitalRead(in_2p)); if (i> 4 ) break; // 네 번 시도) if (yes) wDir=1; 그렇지 않으면 wDir=0; 예 = 거짓; 나는 = 0; while(!yes)( //비트 1 i++; 부울 state1 = (digitalRead(in_1p)&HIGH); delayMicroseconds(100); // 100마이크로초 지연 yes=(state1 & !digitalRead(in_1p)); if (i> 4 ) break; // 네 번 시도) if (yes) wDir=1; 그렇지 않으면 wDir=0; 예 = 거짓; 나는 = 0; while(!yes)( //비트 0 i++; 부울 state1 = (digitalRead(in_0p)&HIGH); delayMicroseconds(100); // 100마이크로초 지연 yes=(state1 & !digitalRead(in_0p)); if (i> 4 ) break; // 네 번 시도) if (yes) wDir=1; 그렇지 않으면 wDir=0; 노톤(IR_Pin); //주파수 끄기 //그레이 코드의 바이트로 수집: wind_Gray=wDir+wDir*2+wDir*4+wDir*8; // 바이너리로 직접 번역. 코드 int wind_G=wind_Gray*10+1000; //최대 4개의 des를 추가합니다. 방전. . . . .
한 절차의 최대 지속 시간은 수신기에 주파수가 없을 때이며 4 × 100 = 400마이크로초입니다. 4 방향 LED의 최대 연소 시간은 수신기가 켜지지 않을 때, 즉 4 × 400 = 1.6밀리초입니다. 그런데 알고리즘은 주기가 100μs의 배수인 주파수 대신 LED에 일정한 높은 수준을 적용하기만 하면 동일한 방식으로 작동합니다. 일정한 수위 대신 구불구불한 상황에서 우리는 단순히 음식을 절반으로 절약합니다. 각 IR LED를 별도의 라인(각각 자체 키 트랜지스터가 있는 별도의 컨트롤러 출력을 통해)을 통해 실행하면 훨씬 더 절약할 수 있지만 이는 회로, 배선 및 제어를 복잡하게 만들고 매 2ms 동안 130mA의 전류를 16초 - 보시다시피 약간입니다.

마침내, 무선 데이터 전송. 가장 간단하고 저렴하며 가장 신뢰할 수 있는 방법이 센서 위치에서 기상 관측소 디스플레이로 데이터를 전송하기 위해 선택되었습니다. 즉, 433MHz의 주파수에서 송신기/수신기 쌍입니다. 이 방법이 가장 편리하지 않다는 데 동의합니다(장치가 전체 바이트가 아니라 비트 시퀀스를 전송하도록 설계되었기 때문에 필요한 형식 간에 데이터를 변환하는 데 탁월해야 함). 많은 사람들이 원할 것이라고 확신합니다. 신뢰성 측면에서 나와 논쟁을 벌이는 것입니다. 마지막 이의 제기에 대한 대답은 간단합니다. "당신은 요리하는 법을 모릅니다!".

비밀은 일반적으로 433MHz 채널을 통한 데이터 교환에 대한 다양한 설명 뒤에 숨어 있다는 것입니다. 이러한 장치는 순전히 아날로그이기 때문에 수신기의 전원에서 외부 리플이 잘 제거되어야 합니다. 어떠한 경우에도 수신기에 Arduino의 내부 5V 레귤레이터에 의해 전원이 공급되어서는 안 됩니다! 적절한 입력 및 출력 필터링 회로와 함께 출력 바로 옆에 별도의 저전력 수신기 레귤레이터(LM2931, LM2950 등)를 설치하면 전송 범위와 안정성이 크게 향상됩니다.

이 경우 송신기는 12V 배터리 전압에서 직접 작동했으며 수신기와 송신기에는 17cm 길이의 와이어 형태로 표준 집에서 만든 안테나가 장착되었습니다.(단일 코어 만 와이어는 안테나에 적합하며, 안테나를 서로 평행한 공간에 배치해야 합니다.) 24바이트 길이(습도 및 온도 고려)의 정보 패킷을 대각선으로 1200bps의 속도로 문제 없이 자신있게 전송했습니다. 15 에이커 (약 40-50 미터)의 정원 플롯, 세 개의 통나무 벽을 통해 방으로 (예를 들어, 셀룰러 신호가 모든 곳에서 수신되는 것이 아니라 큰 어려움으로 수신되는 곳). 표준 2.4GHz 방식(Bluetooth, Zig-Bee 및 아마추어 Wi-Fi 등)으로는 거의 달성할 수 없는 조건, 여기의 송신기 소모량이 8mA라는 비참한 사실에도 불구하고 실제 전송 시에만, 나머지 시간에는 송신기가 실제 동전을 소비합니다. 송신기는 구조적으로 원격 장치 내부에 배치되며 안테나는 측면에서 수평으로 돌출됩니다.

우리는 모든 데이터를 하나의 패키지로 결합합니다(실제 스테이션에서는 온도 및 습도가 추가됨). 균일한 4바이트 부품으로 구성되고 앞에 "DAT" 서명이 붙고 이를 송신기로 보내고 모든 주기를 완료합니다.

/*=====송신기=====*/ 문자열 strMsg="DAT"; //서명 - 데이터 strMsg+=volt; //4자리 배터리 연결 strMsg+=wind_G; //바람 4비트 연결 strMsg+=fi; // 주파수 4비트 연결 strMsg.toCharArray(msg,16); //문자열을 배열로 변환 // Serial.println(msg); // 제어하기 위해 vw_send((uint8_t *)msg, strlen(msg)); // 메시지 보내기 vw_wait_tx(); // 전송이 완료될 때까지 기다리십시오 - 필수! 지연(50); //+ 만일의 경우를 대비하여 지연 횟수=0; //카운터 재설정 )//end count==3 else count++; 디지털 쓰기(LED 핀, LOW); //신호 LED를 끕니다. system_sleep(); //시스템 - 휴면) //루프 종료
다양한 유형의 값 각각을 균일한 4바이트 코드 형태로 표현해야 하는 요구 사항을 포기하면 패킷 크기를 줄일 수 있습니다(예: 그레이 코드의 경우 물론 1바이트면 충분함). 그러나 보편화를 위해 모든 것을 그대로 두었습니다.

원격 장치의 전원 공급 장치 및 설계 기능. 원격 장치의 소비량은 다음과 같이 계산됩니다.

4초마다 약 0.25초 동안 20mA(이미터) + ~20mA(보조 회로가 있는 컨트롤러) - 40/16 = 평균 2.5mA;
- 16초마다 약 2ms 동안 130mA(라디에이터) + ~20mA(보조 회로가 있는 컨트롤러) - 평균 150/16/50 ≈ 0.2mA;

이 계산을 통해 온습도 센서에서 데이터를 읽을 때와 트랜스미터 작동 중에 컨트롤러의 소비량을 대담하게 평균 소비량을 4mA로 가져옵니다(피크 약 150mA, 명심하십시오!). 배터리(그런데 최대 전압으로 송신기에 전원을 공급하려면 최대 8개가 필요합니다!)는 너무 자주 교체해야 하므로 드라이버용 12볼트 배터리에서 원격 장치에 전원을 공급하는 아이디어가 떠올랐습니다. 2개만 더 시켰습니다. 용량은 해당하는 수의 AA 배터리보다 훨씬 적습니다. 시간은 1.3A에 불과하지만 아무도 배터리를 교체하지 않고 두 번째 충전된 배터리를 준비할 수 있습니다. 4mA의 표시된 소비량으로 1300mA 시간의 용량은 약 2주 동안 충분하며 너무 번거롭지 않습니다.

새로 충전한 배터리의 전압은 최대 14볼트일 수 있습니다. 이 경우 트랜스미터 공급 장치의 과전압을 방지하고 주 5볼트 안정기에 과부하가 걸리지 않도록 12볼트의 입력 안정기가 설치되었습니다.

적절한 플라스틱 케이스의 원격 장치는 지붕 아래에 배치되고 배터리의 전원 케이블과 풍향계 연결부가 커넥터에서 연결됩니다. 주요 어려움은 회로가 공기 습도에 극도로 민감한 것으로 판명되었다는 것입니다. 비가 오는 날씨에 몇 시간 후에 송신기가 고장 나기 시작하고 주파수 측정이 완전히 엉망이되고 배터리 전압 측정이 "화성의 날씨"를 표시합니다. .

따라서 알고리즘을 디버깅하고 모든 연결을 확인한 후 케이스를 조심스럽게 봉인해야 합니다. 케이스 입구의 모든 커넥터는 실런트로 코팅되어 있으며 튀어 나온 모든 나사 머리, 안테나 출력 및 전원 케이블에도 동일하게 적용됩니다. 몸체의 조인트는 플라스틱으로 코팅되어 있으며 (분리해야 함을 고려하여) 배관 테이프 스트립으로 상단에 추가로 접착됩니다. 내부에 사용된 커넥터를 에폭시로 추가로 조심스럽게 강화하는 것이 좋습니다. 예를 들어 다이어그램에 표시된 DB-15 원격 모듈은 자체적으로 밀폐되지 않으며 습한 공기가 금속 프레임과 플라스틱 베이스 사이로 천천히 스며듭니다.

그러나 이러한 모든 조치는 그 자체로 단기적인 효과만 줄 것입니다. 춥고 습한 공기의 흡입이 없더라도 케이스 외부의 온도가 떨어지면 실내의 건조한 공기가 쉽게 습하게 변합니다(이 현상을 기억하십시오. "이슬점").

이를 피하려면 케이스 내부에 실리카겔 건조제가 들어있는 카트리지 또는 가방을 남겨 둘 필요가 있습니다. 실리카겔의 출처가 불분명하고 장기간 보관한 경우 사용하기 전에 140-150도의 전기 오븐에서 몇 시간 동안 소성해야 합니다. 케이스가 제대로 밀봉된 경우 건조제는 매 여름 시즌이 시작될 때보다 더 자주 교체하지 않아도 됩니다.

메인 모듈

메인 모듈에서 모든 값이 수신되고 필요한 경우 디코딩되며 보정 방정식에 따라 변환되어 표시됩니다.

수신기는 스테이션의 메인 모듈 몸체에서 꺼내어 고정용 귀가 있는 작은 상자에 넣습니다. 안테나는 덮개의 구멍을 통해 나오고 케이스의 모든 구멍은 생고무로 밀봉됩니다. 수신기 접점은 매우 안정적인 가정용 RS-4 커넥터로 라우팅되며 수신기 측에서는 이중 차폐 AV 케이블 세그먼트를 통해 연결됩니다.

케이블 코어 중 하나에서 신호를 받고 모듈의 전원 어댑터에서 "원시" 9볼트 형태로 다른 하나를 통해 전원이 공급됩니다. 안정기 형 LM-2950-5.0은 필터 커패시터와 함께 별도의 보드에 수신기와 함께 상자에 설치됩니다.

케이블의 길이를 늘리기 위한 실험이 수행되었습니다(만약에 – 벽을 통해 작동하지 않으면 어떻게 될까요?). 그 결과 최대 6미터 길이 내에서 아무 것도 변경되지 않는 것으로 나타났습니다.

OLED 디스플레이는 4개뿐입니다. 두 개의 노란색 디스플레이는 날씨 데이터, 두 개의 녹색 시계 및 달력을 제공합니다. 그들의 배치는 사진에 표시됩니다.

각 그룹에서 디스플레이 중 하나는 텍스트이고 두 번째 디스플레이는 그래픽이며 글리프 그림 형태로 인위적으로 생성된 글꼴을 사용합니다. 여기에서 우리는 기사와 예의 이미 광범위한 텍스트를 부풀리지 않도록 앞으로 디스플레이에 정보를 출력하는 문제에 대해 이야기하지 않을 것입니다. 개별적으로 표시해야 하는 글리프 그림이 있기 때문에(종종 단순히 나열하여 case 문을 사용하는 옵션), 출력 프로그램은 매우 번거로울 수 있습니다. 이러한 디스플레이를 처리하는 방법에 대한 정보는 바람 데이터 출력을 위한 디스플레이의 예가 포함된 작성자의 게시물 "Winstar 디스플레이의 그래픽 및 텍스트 모드"를 참조하십시오.

개략도.설정을 쉽게 하기 위해 시계와 디스플레이는 별도의 Arduino Mini 컨트롤러에서 제공하므로 여기에서 더 이상 분석하지 않겠습니다. 날씨 데이터의 수신 및 출력을 제어하는 ​​Arduino Nano에 구성 요소를 연결하는 방식은 다음과 같습니다.

여기에서는 원격 모듈과 달리 기압계와 내부 온습도 센서와 같은 기상 센서의 연결이 표시됩니다. 전원 배선에주의를 기울여야합니다. 디스플레이는 별도의 5V 안정기 유형 LM1085로 전원이 공급됩니다. 그것에서 시계 디스플레이에 전원을 공급하는 것도 당연하지만, 이 경우 시계 컨트롤러도 Vin이 아닌 동일한 전압과 5V 출력을 통해 전원을 공급받아야 합니다(Mini Pro의 경우 후자를 날것의). RAW 출력을 통해 9볼트를 사용하여 Nano와 같은 방식으로 시계 컨트롤러에 전원을 공급하면 내부 레귤레이터가 외부 5볼트와 충돌하며 이 싸움에서는 물론 가장 강한 자가 이기게 됩니다. 즉, LM1085 , Mini는 전원이 완전히 꺼진 상태로 유지됩니다. 또한 모든 종류의 문제를 피하기 위해 Nano, 특히 Mini를 프로그래밍하기 전에(즉, USB 케이블을 연결하기 전에) 외부 어댑터를 분리해야 합니다.

LM1085 스태빌라이저에서는 4개의 디스플레이가 모두 연결되면 약 1와트의 전력이 방출되므로 알루미늄 또는 구리 모서리에서 약 5-10cm2의 작은 라디에이터에 설치해야 합니다.

데이터 수신 및 처리. 여기서 나는 바람 데이터와 관련된 프로그램 단편만을 재생산하고 주석을 달고 몇 마디 후에 다른 센서에 대해 설명합니다.

433MHz 채널에서 메시지를 수신하기 위해 많은 출처에 설명된 표준 방법을 사용합니다. 라이브러리를 연결하고 변수를 선언합니다.

#포함 . . . . . 인볼트; //조건부 전체 코드의 배터리 전압 float batt; //실제 값 - 배터리 전압 바이트 wDir; //그레이 코드의 방향 uint16_t t_time = 0; // 수신 시간 간격 char str; // 데이터용 문자열 uint8_t buf; //수신된 메시지에 대한 변수 uint8_t buflen = VW_MAX_MESSAGE_LEN; // 수신된 메시지의 최대 길이. . . . .
버퍼 버퍼의 크기에는 한 가지 특성이 있습니다. 즉, 프로그램 시작 시 한 번 값(VW_MAX_MESSAGE_LEN)을 선언하는 것만으로는 충분하지 않습니다. 이 변수는 수신 기능에서 참조로 나타나므로(아래 참조) 기본 메시지 크기는 주기마다 업데이트되어야 합니다. 그렇지 않으면 손상된 메시지 수신으로 인해 데이터 대신 넌센스를 얻기 시작할 때까지 buflen의 값이 매번 단축됩니다. 예제에서 이 두 변수는 일반적으로 loop() 루프에서 로컬로 선언되므로 버퍼 크기는 자동으로 업데이트되지만 여기서는 각 루프의 시작 부분에서 원하는 값의 할당을 반복하기만 하면 됩니다.

설정 절차에서 다음 설정을 수행합니다.

Void setup() ( delay (500); //전원을 끄려면 pinMode(16,INPUT_PULLUP) 표시; //버튼용 핀 vw_setup(1200); //VirtuWire 연결 속도 vw_set_rx_pin(17); //A3 VirtualWire 수신기 핀. . . . .
무언가를 수락하기 전에 마지막 수신 이후 경과된 시간 간격 t_time을 확인합니다. 합리적인 한계(예: 48초 - 외부 장치의 메시지 반복 시간의 3배)를 초과한 경우 이는 센서 손실로 인식되고 디스플레이에 어떻게든 표시됩니다.

Void loop() ( vw_rx_start(); // 수신 준비 buflen = VW_MAX_MESSAGE_LEN; // 매번 새로 버퍼 크기 if ((int(millis()) - t_time) > 48000) // t_time이 더 이상 업데이트되지 않은 경우 48초 이상(<отображаем прочерк на дисплее>)//종료 센서를 찾을 수 없음 if (vw_have_message()) ( //수신 대기 if (vw_get_message(buf, &buflen)) // 데이터가 수신되면 ( vw_rx_stop(); //잠시 수신 중지 t_time = millis( ); //(바이트 i=0;i에 대한 t_time 업데이트<3;i++) // Получить первые три байта str[i]= buf[i]; str="\0"; if((str=="D")&&(str=="A")&&(str=="T")) { //сигнатура принята //принимаем данные: for (byte i=3;i<7;i++) // извлечь четыре байта аккумулятора str= buf[i]; // упаковать их в строку volt=atoi(str); //преобразовать в целое число volt=(volt/10)-100; //удаляем добавки до 4-х байт batt=float(volt)/55.5; //преобразуем в реальный вид напряжения в вольтах //и пока храним в глобальной переменной for (byte i=7;i<11;i++) // извлечь четыре байта направления str= buf[i]; // упаковать их в строку int w_Dir=atoi(str); //преобразовать в целое число w_Dir=(w_Dir-1000)/10; //возвращаем к исходному виду wDir=lowByte(w_Dir); //младший байт - код Грея <выводим направление на дисплей через оператор case> . . . . .
계수 55.5 - ADC 코드 값을 실제 전압으로 변환, 그 값은 기준 전압과 분배기 저항 값에 따라 다릅니다.

그건 그렇고, 그레이 코드에는 한 가지 기능이 있습니다. 비트 순서는 중요하지 않으며 코드는 순열에 대한 모든 속성을 유지합니다. 그리고 디코딩할 때 여기에서 각 경우를 개별적으로 고려하기 때문에 비트는 임의의 순서로 고려될 수 있으며 연결될 때 혼동될 수도 있습니다. 이 문제를 어떻게든 간소화하려는 경우 또 다른 문제입니다. 예를 들어 방향 값("s", "ssz", "sz", "zsz", "z" 등)의 배열을 만들고 대신 개별 고려 사항의 각 변종은 이 배열의 번호로 명칭을 추출합니다. 그런 다음 그레이 코드를 정렬된 이진법으로 변환해야 하며 비트의 순서가 중요한 역할을 합니다.

마지막으로 속도 값을 추출하고 모든 명령문을 닫습니다.

For(바이트 i=19;i<23;i++) // Получить четыре байта частоты str= buf[i]; // упаковать их в строку int wFrq=atoi(str); //преобразовать в целое число wFrq = (wFrq-1000)/10; //удаляем добавки до 4-х байт wFrq=10+0.5*wFrq;//скорость в целом виде с десятыми <отображаем ее на дисплее поразрядно>)//str=DAT이면 끝 )//끝 vw_get_message ) // vw_have_message() 끝; . . . . .
여기서 10+0.5*wFrq는 보정 방정식입니다. 10dm/s(즉, 초당 1.0미터)가 시작 임계값이고 0.5는 주파수 대 속도 변환 계수(dm/s 단위)입니다. 입력 주파수의 값이 0인 경우 이 방정식은 10dm/s를 제공하므로 1m/s가 아니라 0 값을 표시하도록 특별한 주의를 기울여야 합니다. 가장 저렴한 휴대용 풍속계와 데스크탑 팬을 사용하여 속도 센서를 보정할 수 있습니다. 시작 임계값을 실험적으로 결정하려고 하지 마십시오. 다른 유속에서 주파수 F: V = Vp + K × F에서 속도 V의 교정 직선의 2개 또는 3개 지점을 표시하면 훨씬 더 정확합니다. 시작 임계값은 Vp 값(이 선과 속도 축의 교차점 좌표)으로 자동 결정됩니다.

메인 루프를 닫기 전에 한 가지 더 해야 할 일이 있습니다. 배터리 전압이 있지만 항상 표시할 필요는 없습니다. 공간만 차지하면 됩니다. 이를 위해 Kn1 버튼이 필요합니다. 이 버튼을 클릭하면 일시적으로(다음 데이터 업데이트까지) 외부 온습도 라인을 전압 값으로 바꿉니다.

If (digitalRead(16)==LOW)( //버튼 누름<выводим напряжение на дисплей, затирая значение температуры-влажности>) // 종료 버튼 지연(500); )//루프 종료
다이어그램에서 볼 수 있듯이 전환 접점이 있는 버튼이 있었지만 닫기 버튼이 있는 일반 버튼을 설치하여 저항을 통해 전원에 연결하는 것을 방해하는 것은 없습니다. 배터리 전압이 예를 들어 10볼트 아래로 떨어질 경우 디스플레이에 깜박이는 기호를 추가하여 배터리를 교체해야 할 때라는 표시로 추가할 수도 있습니다.

결론적으로 기상 센서에 대해. SHT-75는 실외 센서로 사용되었습니다. 제가 찾은 유일한 아마추어 센서는 보정이 필요하지 않고 상자에서 꺼내자마자 온도와 습도의 실제 값을 보여줍니다(따라서 높은 가격).

연결을 위한 라이브러리를 찾을 수 있습니다.

SHT-75는 다소 어리석은 방식으로 설계되었습니다. 보드의 금속 기판은 열을 매우 잘 전도하므로 케이스에서 완전히 꺼내야 합니다. 그렇지 않으면 닫힌 케이스에 전원 공급 장치 조절기가 있는 ATmega328 컨트롤러가 하나만 있으면 헤드가 외부로 이동하더라도 보드 기판을 통해 센서를 몇 도 가열하기에 충분합니다. 20-130mA의 전류(전류가 무시할 수 있는 밀리초인 경우에도)가 있는 바람 센서가 있는 내 회로는 SHT-75도를 5도 가열하므로 케이스에서 옆으로 튀어나온 플라스틱 판에 별도로 꺼내서 설치했습니다. .

SHT-75의 데이터는 바람 센서의 데이터와 동일한 컨트롤러에서 가져와 433MHz 무선 채널을 통해 단일 패키지로 원격 모듈에서 전송됩니다. 또한 사전 전송을 위해 4바이트 문자열로 변환됩니다.

실내 온도와 습도를 측정하기 위해 평범한 DHT-22가 선택되었습니다. 거리에 비해 범위가 작기 때문에 어떤 센서를 사용해야 하는지는 중요하지 않습니다(물론 DHT-11은 제외 어떤 상황에서도 전혀 사용되지 않으며 의도한 목적에 따라 단순히 작동할 수 없습니다). DHT-22의 온도는 수은온도계(SHT-75와 완전히 일치!)로 측정하여 보정하였고, 습도는 SHT-75와 비교하여 약간 조정하였다. 수정 사항은 디스플레이에 표시되기 직전에 입력됩니다.

그건 그렇고, DHT-22도 디스플레이가있는 케이스에서 제거해야합니다. 그렇지 않으면 필연적으로 가열되어 거짓말을 할 것입니다. 케이스 바닥의 플라스틱 마운트에 10mm 떨어진 곳에 고정합니다. 그건 그렇고, 이 상황은 내가 의심하는 것처럼 모든 RST 및 오레곤 브랜드의 가정용 기상 관측소가 뻔뻔스럽게도 판독값에 거짓말을 하고 자체(내부 센서 외부 온도) 2~3도 및 최대 10%의 습도.

기압계 BMP180 MEMS(microelectromechanical) 칩 또는 그 변형과 같은 거의 모든 상용 제품이 동일한 기반으로 만들어지기 때문에 문제가 없습니다. 덜 일반적인 LPS331AP 기반 변형에 대한 개인적인 경험은 부정적이었습니다. 라이브러리를 찾기가 더 어렵고 무엇보다도 I2C 버스의 다른 장치와 충돌이 발견되었습니다. 기압계 판독값은 설치 장소에서 조정해야 할 수 있습니다. 해발 고도가 10-12미터마다 1mmHg씩 압력이 감소합니다. 미술. 따라서 압력 값이 해당 지역의 공식 기상 관측소 판독값과 일치하도록 판독값에서 특정 값을 빼거나 추가해야 합니다.

나는 기상 관측소의 모든 프로그램을 완전히 제공하지는 않습니다. 그것들은 다소 번거롭고 여전히 디자인을 일대일로 반복 할 수 없습니다. 무엇이든 PM을 노크하십시오.

UPD 날짜 06/30/17.설치된 태양광 발전. 여기에서 키트:
태양 전지판
제어 장치
배터리
모두 함께 + 2.5 tyr 이내에 모스크바에서 배달. 완벽하게 작동합니다.
이 사이트의 컨설턴트가 제공하는 태양 전지 및 배터리의 전력을 계산하는 흥미로운 방법입니다. 3W의 전력 소비에 대한 계산의 예(나는 훨씬 적음)를 인용합니다.
"3W 곱하기 24h를 6으로 나누면 = 12Ah가 최소 배터리 용량입니다.
3W에 24h를 곱하고 3h로 나누면 24W가 태양 전지의 최소 전력입니다.
댓글이 없습니다.
제 경우 태양광 발전소의 결과 용량은 최악의 기상 조건에서 필요한 것보다 10배 더 높습니다. 따라서 센서 컨트롤러에서는 에너지 절약에 대해 너무 신경 쓰지 않고 필요한 판독 및 평균 주파수를 적용할 수 있습니다.

UPD 날짜 09/13/18.거의 두 시즌 동안 운영하면서 스테이션의 강점과 약점이 드러났습니다. 약점은 무엇보다도 판독값 업데이트 주기가 16초(4개 연속 측정 중)로 원래대로 너무 길다는 것입니다. 완충 전지가 있는 태양 전지를 설치하여 에너지 절약에 대해 생각하지 않고 사이클 타임을 가지고 놀 수 있게 되었습니다. 그 결과, 주기는 8초(2초에 4회 측정)로 설정되었습니다.
기계적 개선 사항 중 솔리드 스러스트 베어링이 속도 센서의 팁 아래에 도입되었습니다(예, 그 당시에 필요성에 대해 경고를 받았지만 그 당시에는 만드는 방법을 몰랐습니다). 얼마 후 센서의 축이 불소수지 지지대를 완전히 절단하고 시작 임계값이 급격히 증가했습니다(그런데 이것은 풍향계의 감도에 전혀 영향을 미치지 않았습니다). 따라서 지지대는 얇은 드릴로 작은 홈이 만들어진 스테인리스 스틸 스러스트 베어링으로 ​​교체되었습니다. 나는 나중에 전체 축과 마찬가지로 두랄루민으로 만들어진 팁으로 다른 것을 생각해 내야 할 것이라는 예감이 있습니다. 그러나 센서를 다시 실행해야 하는 순간까지 미루었습니다. 디자인의 기초로 삼았던 레이저 디스크는 두 계절에 걸쳐 태양으로부터 흐려져 금이 가기 시작했습니다.

업데이트 날짜: 06/05/19.
센서의 변경에 대해(날씨가 그대로 유지됨). 마모된 차축과 사용할 수 없게 된 레이저 디스크 때문에 속도 센서를 다시 만들어야 했습니다. 기본 디자인은 동일하게 유지되지만 새로운 레이저 디스크는 황금색 페인트로 스프레이 페인팅됩니다. 축의 끝부분에 대한 해는 다음과 같은 형태로 구하였다. 두랄루민 축에서 오목한 부분이 정확히 중앙에 뚫렸고 두 번째 접착제에 중국 탭 상단의 3mm 컷이 삽입되었습니다. 탭의 상단은 약 70-80도 각도의 중심이 잘 맞는 원뿔이며 제로 사포로 추가로 연마한 다음 GOI 페이스트로 연마했습니다. 베이스로 일반 드릴 D = 2mm로 중앙에 작은 오목한 부분이 표시된 톱날 슬롯이 있는 스테인리스 M3 나사 머리를 사용했습니다. 이 나사는 PTFE의 오목한 부분에 직접 나사로 고정되어 센터링이 보장되기 전에 액슬에 의해 절단되었습니다.
축의 끝 부분은 부식으로부터 보호하기 위해 흑연 그리스로 윤활 처리되었습니다(탭의 스테인리스 특성은 저에게 알려지지 않았기 때문에). 약간의 연마 후에 시작 임계값이 너무 감소하여 임계값이 약 0.3-0.5cm/s인 독점 풍속계로 측정할 수 없게 되었습니다. 간접 데이터(두 점에서 직선을 구성하여)에 따르면 0.3 m/s의 임계값이 자발적으로 수용되었지만 아마도 다소 적을 것입니다.

계산 알고리즘의 주요 변경 사항은 풍향계와도 관련이 있으며 이를 에 넣는 것이 유용하다는 것을 알았습니다.


바람은 가벼운 산들 바람부터 파괴와 죽음을 가져오는 돌발적인 돌풍까지 다양합니다. 가장 강한 바람은 허리케인입니다. 이 허리케인력의 바람은 엄청난 양의 공기가 저기압 지역으로 빨려 들어갈 때 열대 지방의 바다 위로 형성됩니다. 폭풍 구름은 종종 철도 열차보다 빠른 속도로 허리케인의 중심(또는 눈)을 돌고 있습니다.

허리케인 바람을 한 번도 경험한 적이 없을 수도 있지만, 사는 곳마다 고요하고 바람이 많이 부는 날을 모두 경험했을 것입니다. 풍속을 측정하는 가장 간단한 도구인 풍속계를 만들고 바람이 많이 부는 날 해당 지역의 풍속을 기록합니다.

필요할 것이예요:

두꺼운 나무 핀
얇은 나무 막대
밧줄과 수직
요구르트 컵
접착 테이프(방수)
압정
컬러 판지
동관
접착제
가위

1. 두꺼운 나무 핀을 동관에 단단히 끼워 넣습니다. 이것은 풍속계 스탠드가 될 것입니다.

2. 성인에게 랙에 구멍을 뚫도록 도와달라고 요청하십시오. 구멍의 직경은 얇은 막대 중 하나의 두께와 일치해야 합니다. 이 얇은 막대의 한쪽 끝에 슬릿을 만드십시오. 랙에 끼우고 그림과 같이 고정합니다.

3. 판지에서 화살촉과 플레팅을 잘라내어 얇은 막대 끝에 고정하십시오.

4. 색종이에서 4분의 1 원을 잘라서 화살표에 덕트 테이프로 붙입니다.

5. 요구르트 한 컵을 가져갑니다. 두 번째 얇은 나무 막대의 한쪽 끝에 붙입니다.

6. 성인의 도움을 받아 두 번째 막대의 다른 쪽 끝에 작은 구멍을 뚫은 다음 기둥 상단에 핀이나 못으로 고정합니다. 로드가 자유롭게 회전하는지 확인하십시오.

7. 야외 관찰에 적합한 장소를 선택하십시오. 구리관을 땅에 박은 다음 기둥을 삽입하십시오. 압정을 사용하여 원하는 위치에 랙을 고정합니다. 수직선을 화살표에 걸어 랙을 엄격하게 수직으로 설치하십시오 (너트를 수직선으로 사용할 수 있음). 수직선은 랙과 완전히 평행하게 매달려야 합니다.

바람은 풍속계 바늘을 돌려 바람이 부는 방향을 가리킵니다.
요구르트 컵과 줄기가 함께 올라갑니다. 바람이 강할수록 포인터 로드가 더 높아집니다.

보퍼트 스케일

이것은 자연의 관찰에 기초한 풍속을 측정하는 척도입니다. 저울은 거의 200년 전에 영국 제독 Francis Beaufort에 의해 발명되었습니다.

날씨 지도의 풍속은 풍력 아이콘의 대시 수로 표시됩니다.

풍속 언어적 특성 풍속 추정의 징후
m/s km/h 점수
보퍼트
0,0-1,5 0,0-1,8 0 침착 한 연기는 수직 또는 거의 수직으로 상승하고 잎은 움직이지 않습니다.
0,6-1,7 1,9-5,1 1 고요한 바람 바람의 방향은 연기에 의해 결정된다
1,8-3,3 5,2-11,7 2 산들 바람 바람의 움직임이 얼굴에 느껴져 나뭇잎이 살랑거린다
3,4-5,2 11,8-18,7 3 약한 바람 잎사귀와 나뭇가지가 끊임없이 흔들리고, 바람이 빛의 깃발을 휘날리며, 바다가 끊임없는 빛의 파도로 뒤덮입니다.
5,3-7,4 18,8-26,6 4 적당한 바람 바람은 먼지를 일으켜 움직이고 얇은 나무 가지를 움직이며 별도의 파도에서 때때로 흰색으로 나타나 빠르게 사라지는 "양"
7,5-9,8 26,7-35,3 5 신선한 바람 두꺼운 나무 가지가 흔들리고; "양"은 모든 파도에서 볼 수 있습니다.
9,9-12,4 35,4-44,0 6 강한 바람 두꺼운 나무 가지가 흔들리고 전신선이 윙윙 거리며 파도의 "양"이 더 길어집니다 (5-10 초).
12,5-15,2 44,1-54,7 7 강한 바람 나무 꼭대기가 흔들리고 큰 가지가 구부러지며 바람을 거슬러 가기가 불편합니다. 바다에 거품 파도
15,3-18,2 54,8-66,0 8 매우 강한 바람 바람은 나무의 가는 가지와 마른 가지를 부러뜨려 움직이기 어렵게 만든다
18,3-21,5 66,1-77,5 9 폭풍 바람은 굴뚝과 기와를 무너뜨립니다. 바람을 거슬러 가는 것은 매우 어렵습니다.
21,6-25,1 77,6-90,2 10 폭풍우 심각한 파괴, 뿌리째 뽑힌 나무
25,2-29,0 90,3-104,4 11 맹렬한 폭풍 대파괴: 전신주, 마차 쓰러뜨리기
29.0 이상 104.4 이상 12 허리케인 가옥을 파괴하고 큰 파괴를 일으킴

나의 새로운 풍속계. 풍속계는 작지 않은 것으로 판명되었으며 발전기는 디스크이며 나사의 직경은 0.5m이며 풍속계는 6 블레이드 프로펠러가있는 수평 형입니다. 이 기사에는 사진 및 비디오와 함께 자세한 설명이 포함되어 있습니다.

주제에 대한 새 기사 + 사진 및 비디오 - Anemometer android + 마이크

드디어 풍속계에 왔습니다. 이미 세 개의 풍력 터빈을 만들었지만 나는 여전히 바람이 무엇인지, 풍차가 얼마나 주는지 정확히 모릅니다. 현재 작동 중인 풍력 발전기는 단 하나뿐입니다. 가장 성공적인 것은 "무릎 위에" 조립된 것입니다. 바람의 세기를 대략적으로 상상하고 5m/s와 10m/s의 바람을 구분할 수 있지만 여전히 풍력 발전기의 전력을 결정하기 위해 풍속을 더 정확하게 알고 싶습니다.

며칠 동안 이따금 무엇인가로 풍속계를 만들까 생각했지만 지금까지 집에서 구할 수 있는 쓰레기 중에서 합리적인 것은 나오지 않았습니다. DVD 플레이어에서 두 개의 작은 모터를 찾았지만 고통스러울 정도로 작고 얇은 샤프트에 사용할 블레이드를 찾기가 어렵습니다.

자동차 팬이 내 눈을 사로 잡았습니다. 일반적으로 트럭에 설치됩니다. 내가 그를 고문했던 사람이야. 모터를 분해하여 제거했습니다. 나는 프로펠러에서 블레이드를 부러 뜨리고 샤프트에 놓이는 중앙 부분 인베이스 만 남았습니다. 그 다음에는 어떤 칼날을 붙일까 고민하다가 페트병 바닥과 캔 바닥도 해봤는데 이게 다 맘에 안들더군요.

그런 다음 직경 5cm, 길이 50cm의 PVC 파이프 조각을 찾았습니다.나는 4 개의 블레이드를 만들고 파이프를 세로로 두 부분으로 자르고 반쪽은 각각 두 부분으로 나눴습니다. 블레이드. 기본 나사가 남아있는 베이스에 칼날을 부착하기 위한 구멍을 4개 뚫고, 칼날에도 4개의 구멍을 뚫었습니다. 그는 모든 것을 볼트로 비틀었고 4 블레이드 프로펠러 - savonius (첫 번째 "심각한"수직)를 얻었습니다.

글쎄, 나는 필요한 길이의 전선을 찾았고 5 미터의 안테나 케이블과 8 미터의 일반적인 케이블을 연결했습니다. 미터 와이어 또는 13m에서 측정하는 경우 데이터가 다를 수 있으므로 와이어의 길이를 고려하여 매개변수를 측정하기 위해 와이어를 즉시 연결했습니다.

그런 다음 약 80-90cm 길이의 금속 튜브 조각을 발견하고 Z자로 구부리고 모터를 감았습니다. 이 튜브는 풍속계를 돛대에 부착합니다. 복잡한 것은 없으며 손에있는 모든 재료를 사용할 수 있습니다.

자, 그럼 풍속계를 완전히 조립한 후 이를 보정하기 위해 오토바이에 설치했습니다. 사진 아래에서 그것이 어떻게 수행되었는지 볼 수 있습니다. 모든 것이 원시적이고 간단합니다. 전기 테이프가있는 영장류의 거울에서 비누 계량기는 일반적으로 오토바이를 제어하기 위해 내 손을 자유롭게하기 위해 모든 것을 고정했습니다.

이 가을 날은 바람이 거의 없기 때문에 매우 성공적입니다. 그런데 풍속계의 빠른 조립 역할을 한 그러한 날은 사라지지 않아야합니다. 나는 오토바이 앞에서 이해할 수없는 장치로 나 자신에게주의를 끌기 때문에 아스팔트에 가고 싶지 않았기 때문에 산림 농장을 따라 들판을 타기로 결정했습니다.

나는 다른 방향으로 앞뒤로 탔고 다른 속도로 전화에 멀티 미터 판독 값을 기록했습니다. 풍속계는 7km/h의 속도로 시작했고 10km/h와 최대 40km/h에서 시작하여 다른 속도로 점차 앞뒤로 굴러갔습니다. 더 많이 가능했지만 비포장 도로는 매우 고르지 않고 할 수 있습니다. 많이 가속하지 마십시오.

>

pokatushek 후에 그러한 데이터가 그려졌습니다. 멀티미터는 10km/s = 0.06V, 20km/h = 0.12V, 30km/h = 0.20V, 40km/h = 0.30V에서 나타났습니다.

그런 다음 계산기를 사용하여 중간 풍속의 수치를 계산했습니다.

볼트 - 풍속 m / s.

11m/s 이상의 데이터는 15m/s까지 원활하게 지속되는 풍속에 따른 전압 증가 그래프를 종이에 그려 계산했습니다. 같은 날, 아니 오히려 저녁에 풍력 발전기의 돛대에 풍속계를 설치했습니다. 그는 풍차를 내리고 아래에 풍속계를 묶었습니다. 임시로 파이프를 전선에 잡아당기고 전기테이프로 추가로 감아보니 튼튼하더군요. 글쎄, 그런 다음 나는 모든 것을 제자리에 들어 올렸고 이제 풍력 발전기 옆의 돛대에 풍속계가 있습니다. 이것은 3m / s에서 시작하여 정기적으로 풍속을 보여줍니다.

>

>

사진 아래에는 고정된 풍속계가 있는 이미 올려진 풍력 터빈이 있습니다. 거기에는 복잡한 것이없고 반복 할 것이 없기 때문에 더 자세히 사진을 찍지 않았습니다. 풍속계는 거의 모든 모터에서 무엇이든 조립할 수 있습니다. 물론 자동차로 캘리브레이션하는 것이 더 편리합니다. 거기에 편안하고 더 편리하고 속도계가 더 정확합니다. 그러나 나는 오토바이로 결정했고 잘 작동하는 것 같았습니다. 속도계가 거짓말을하고 있다면 많이는 아닙니다.

>

지금은 이것이 전부입니다. 이것이 이 풍속계의 첫 번째 버전이고 마지막 버전은 아니라고 생각합니다. 그 동안 나는 바람을 기다리며 내 풍력 발전기가 무엇을 제공하는지 알아낼 것입니다. 글쎄, 나는이 데이터로이 기사를 보완 할 것입니다. 뭔가 다시 해야 할지도...

덧셈

바람이 불고 풍속계를 테스트했습니다. 바람의 세기와 발전기 전류계 판독값에 대한 첫 번째 관찰은 바람이 얼마나 불안정한지를 명확하게 보여주었습니다. 여기 아래는 돛대가 높지 않기 때문에 주로 짧은 돌풍으로 구성되며 지속 시간은 2~3초를 넘지 않으며 몇 초 사이에 바람이 크게 변할 수 있습니다.

무부하 풍속계 나사는 모든 돌풍과 풍속 변화에 급격히 반응합니다. 그리고 이 풍력 발전기의 로드된 나사는 여전히 반응이 늦고 이 때문에 판독값의 비동기 데이터입니다. 오늘날 바람은 3-7m / s이고 풍속계는 실제로 최대 10m / s의 돌풍을 잡았지만 1 초 미만 지속되었으며 풍력 발전기는 단순히 응답 할 수 없었습니다.

일정 시간 관찰 후 풍력 발전기의 현재 강도의 일부 평균값은 특정 바람에서 도출되었습니다. 나사는 3.5-4m / s에서 시작하여 충전됩니다. 4m/s에서 0.5A, 5m/s에서 1A, 6m/s에서 2.5A, 7m/s에서 4A, 8m/s에서 5A. 전류계가 아날로그 스토트이기 때문에 이 데이터는 평균을 내고 풍력 발전기의 현재 판독값에서 최대 0.5A까지 틀릴 수 있습니다.

이랬어야했어

센서 자체의 제조 단계:

케이스는 이렇게 했습니다: 나는 사각 파이프 조각을 가져다가 그 안에 창을 잘라서 나중에 그것을 통해 충전물을 장착할 수 있었습니다(그런데, 나는 온도로 창을 잘라냈지만, 정말 하고 싶었습니다 일어나서 보러 갔다). 그런 다음 플레이트 내부(내부 베어링 홀더)를 용접한 다음 바닥(하부 베어링 홀더)을 용접했습니다. 꼭대기를 만들기로 했을 때 나는 투구 지붕을 만들기로 했다. 이를 위해 네 개의 삼각형을 오려내어 조심스럽게 잡고 완전히 삶아서 뾰족한 바이저를 만들었다. 그런 다음 바이스에 고정하고 베어링 직경보다 0.5mm 작은 드릴로 하단 덮개와 중간 덮개에 베어링용 수직 구멍을 뚫었습니다. 스트레치가있는 강철 베어링은 스윕으로 조정되었습니다. 베어링은 제대로 맞습니다. 그런 다음 그는 약간 광택이 나는 100구 못을 그 안에 넣고 창 중앙에 4개의 슬롯이 있는 플라스틱 와셔를 놓습니다. 나는 못의 바닥에 실을 자르고 그 위에 임펠러를 조였습니다.

나는 임펠러를 다음과 같이 만들었습니다. 듀스가있는 전극으로 너트에 세 개의 못을 용접 한 다음 잘라 내고 볼에서 반쪽을 나사로 조인 끝에서 실을 자릅니다.

스테인레스 스틸 육각 막대 홀더가 본체에 용접되었습니다. 케이스 자체를 화이트 에나멜로 2회 도색하여 녹이 슬지 않도록 하였습니다.

나는 자전거를 발명하지 않기로 결정했지만 컴퓨터 마우스처럼 하기 위해 회전축에 4개의 슬롯이 있는 플라스틱 와셔가 있습니다. 임펠러가 회전하면 회전하고 와셔가 부착된 센서 위로 깜박입니다. 전면 커버에 연결하고 커버를 조이면 마치 홈이 있는 와셔가 회전하고 LED에서 포토트랜지스터로의 광속이 들어오고 나가는 것과 같습니다. 그게 전부입니다 ... 여기에 충동이 있습니다. 그리고 당신은 그것을 계산할 수 있고 초당 회전 수를 알 수 있습니다.

Leddiodno - 프린터에서 빼낸 포토 트랜지스터 센서는 대량으로 있습니다.

처음으로 테니스 공으로 만든

장치를 약간 수정해야 했습니다. 테니스 공의 임펠러에서 그는 5m / s의 바람으로 시작했습니다. 공은 직경 55mm의 어린이 장난감 가게에서 구입했습니다. 2m/s에서 시작하여 최대 22m/s까지 측정합니다. 저는 충분했습니다.

센서가 준비된 후. 우리는 전자제품을 만들어야 했습니다.

첫 번째 옵션은 수제 LUT 기술 + 중국의 녹색 마스크였으며 자외선으로 건조되었습니다.

사진의 55는 초당 회전수입니다. 어떻게 든 m / s로 번역해야했습니다. 나는 오랫동안 소련과 중국에서 50 달러에 두 개의 풍속계를 얻었지만 바람이 거세고 안정적으로 불지 않기 때문에 검증에 문제가있었습니다.

그래서 나는 이것을 생각해 냈습니다. 쉬는 날에 아빠와 나는 차가없고 바람도없고 양쪽에 나무를 심는 2km의 평평한 도로를 발견했습니다 (아빠는 운전하고 있었고 나는 창 밖 반쯤 앉아있었습니다) 그리고 앞뒤로 운전합시다. 먼저 소련 큐와 중국 풍속계를 설정했습니다. 자동차 속도계의 속도를 3.6으로 나누면 풍속계가 m 단위로 표시한 그림을 얻을 수 있기 때문에 둘 다 동일하고 올바르게 표시되는지 확인했습니다. / 초. 아빠는 같은 속도로 운전하고 있었고 악기는 같은 바람을 보여주었습니다. 이것이 내가 내 장치를 테스트 한 방법입니다. 아빠는 매번 시속 5km를 추가했고 나는 새로운 지표(rpm)를 적었습니다. 측정은 세 번 수행되었습니다. 우리가 80km/h(22m/s) 이상으로 운전할 때 내 풍속계는 더 이상 회전할 수 없었고 수치는 22m/s 이상을 측정하지 않았기 때문에 멈췄습니다....

그런데 중국인은 28m/s까지 보였다. 최대 20m/s의 소련 큐. 수정한 프로그램이 있는 곳에 설치를 해보니 다 뭉쳐지는지 중국인들에게 다시 한 번 확인을 해봤습니다.

이제 Arduino 용으로 수정 중입니다.

계획은 이것을 스마트 홈 시스템에 나사로 고정하여 스마트폰에서 집안의 부하를 입력 및 관리하고 집안의 온도를 볼 수 있도록 하는 것입니다. 겨울에는 어떤 온도인지 확인하는 것이 좋습니다) 가스 센서가 있고 거기에 집 근처에 풍속을 표시합니다.

작업 영상

겨울 작업 결과

s-st --- 겨울 시간
0m/s --- 511.0
1m/s --- 475.0
2m/s --- 386.5
3m/s --- 321.2
4m/s --- 219.0
5m/s --- 131.5
6m/s --- 63.3
7m/s --- 32.5
8m/s --- 15.4
9m/s --- 9.1
10m/s --- 5.0
11m/s --- 3.5
12m/s --- 2.2
13m/s --- 1.3
14m/s --- 0.8
15m/s --- 0.5
16m/s --- 0.5
17m/s --- 0.2
18m/s --- 0.0
19m/s --- 0.1


2번의 겨울에 대한 결과를 보니 바람이 강하지 않고 풍차의 효율이 좋지 않아 50cm의 작은 날개로 만들었습니다. 최대 전력 150와트. 나는 빛이 사라질 때 적어도 하나의 경제적인 전구가 빛나는지 확인했습니다.

이제 Arduino에 대해 조금.

인터넷에서 마우스 다이어그램을 찾았습니다. 내 시스템이 어떻게 작동하는지 명확하게 보여줍니다.

마우스 다이어그램을 기반으로 다음 회로도를 만들었습니다.

임펄스는 포토트랜지스터에서 아두이노로 전달되며 버튼 누름으로 인식합니다.

프로그램의 알고리즘은 다음과 같습니다. 1초에 몇 번이나 버튼을 눌렀는지 고려하여 회전 빈도를 구합니다. 이 주파수를 m/s로 변환합니다. Atmel에서 했을 때 주파수를 m/s 단위로 계산하는 알고리즘을 만들었습니다. 다음과 같이 생겼습니다.

ob_per_sec=0; // 초당 회전 빈도가 떨어지는 변수.

int speed_wind=0; // 주파수가 m/s로 변환된 후 값이 여기에 올 것입니다.

int speed_wind_max=0; // m/s를 읽는 바람의 최대값이 여기에 옵니다.

int speed_wind_2=0; // 풍속이 2m/s인 프로그램이 시작된 후 경과된 시간(초).

int speed_wind_3=0; // 3m/s의 풍속으로 프로그램이 시작된 후 경과된 시간(초).

int speed_wind_4=0; // 풍속이 4m/s인 프로그램이 시작된 후 경과된 시간(초).

int speed_wind_5=0; // 5m/s의 풍속으로 프로그램이 시작된 후 경과된 시간(초).

…………………………………………………………..

int speed_wind_22=0; // 22m/s의 풍속으로 프로그램이 시작된 후 경과된 시간(초).

if (ob_per_sec >0 && ob_per_sec<4) { speed_wind=2; speed_wind_2++;}

if (ob_per_sec >4 && ob_per_sec<7) { speed_wind=3; speed_wind_3++; }

if (ob_per_sec >7 && ob_per_sec<11) { speed_wind=4; speed_wind_4++; }

if (ob_per_sec >11 && ob_per_sec<15) { speed_wind=5; speed_wind_5++; }

if (ob_per_sec >15 && ob_per_sec<18) { speed_wind=6; speed_wind_6++; }

if (ob_per_sec >18 && ob_per_sec<23) { speed_wind=7; speed_wind_7++; }

if (ob_per_sec >23 && ob_per_sec<27) { speed_wind=8; speed_wind_8++; }

if (ob_per_sec >27 && ob_per_sec<30) { speed_wind=9; speed_wind_9++; }

…………………………………………………………..

if (ob_per_sec >60 && ob_per_sec<67) { speed_wind=22; speed_wind_22++; }

if (speed_wind> speed_wind_max)( speed_wind_max = speed_wind ;)// 최대값이 이전에 작성된 값보다 큰지 확인하고 덮어씁니다.

그리고 값을 표시합니다.

필요한 경우 바람이 특정 속도에서 몇 분 동안 불었는지 볼 수 있습니다. 이를 위해 변수(필요한 속도 지수 포함) speed_wind_№를 표시해야 합니다(그러나 분을 얻으려면 60으로 나눕니다.).

내 프로그램에서 이렇게 했습니다. 특정 버튼을 누르면 speed_wind_1에서 speed_wind_22까지 모든 변수가 차례로 표시됩니다.

로드 중...로드 중...