산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

ATtiny85 3 핀이 있는 nRF24L01+

구성품 및 소모품

nRF24L01+
× 2
ATtiny85
× 1
Arduino UNO
× 1
세라믹 커패시터 - 10nF
× 1
탄소 필름 저항기 - 22kΩ
× 1
스위칭 다이오드 - 1n4148
× 1
전원 - 3v3
× 1
nRF24L01+ 소켓 어댑터
선택 사항
× 1

이 프로젝트 정보

이것은 Arduino Uno로 ATtiny85를 프로그래밍하는 이전 프로젝트의 연속입니다. 이제 더 저렴한 ATtiny85를 사용하여 센서 데이터를 전송하는 더 저렴한 방법을 찾고 있었습니다. 저를 nRF24L01+ 저렴한 저전력 RF 트랜시버로 이끌었습니다. 이것은 나에게 더 나은 솔루션처럼 보였습니다. 하지만 ATtiny85의 핀 수 제한이라는 한 가지 문제가 있었습니다. nRF24L01+와 그 안의 센서를 모두 연결할 수 없습니다. 그래서 나는 솔루션을 찾고 있었고 "3 ATtiny85 핀이 있는 nrf24l01+ 제어"를 발견했습니다. 여기에서 내가 구현한 방법에 대해 설명합니다.


모듈

여기 송신기와 수신기에 두 개의 모듈이 있습니다. 송신기는 일부 데이터를 보내는 ATtiny85이고 수신기는 nRF25L01+를 통해 데이터를 수신하는 Arduino Uno입니다. RF24 라이브러리(http://tmrh20.github.io/RF24/)를 활용합니다. 여기에 제공된 지침을 따르고 이를 시작하기 전에 Arduino IDE에 추가하십시오. RF24에 대한 매우 좋은 문서가 있으므로 설명하지 않겠습니다.


송신기

송신기는 1초마다 증가하는 숫자를 전송합니다. ATtiny85는 3개의 핀만 사용하여 nRF24L01+를 통해 데이터를 보냅니다. 구현에 대해 Ralph Doncaster가 제공한 지침을 따릅니다.

필요한 구성 요소는 다음과 같습니다.

<울>
  • ATtiny85
  • nRF24L01+
  • 세라믹 커패시터 - 10nF
  • 탄소 필름 저항기 - 22kΩ
  • 스위칭 다이오드 - 1n4148
  • ATtiny85에 아래 코드를 업로드합니다(방법을 알고 싶다면 Arduino Uno로 ATtiny85 프로그래밍 이전 프로젝트 참조)

    발신자.이노

    아래와 같이 구성요소를 연결합니다.

    전원이 연결되면 송신기는 1초마다 일련의 번호를 전송하기 시작합니다.

    수신기

    수신기는 송신기에서 보낸 데이터를 수신하고 수신된 데이터는 직렬 모니터에서 볼 수 있습니다.

    필요한 구성 요소는 다음과 같습니다.

    <울>
  • 아두이노 우노
  • nRF24L01+
  • nRF24L01+ 소켓 어댑터(옵션)
  • Uno에 아래 코드 업로드

    수신기.이노

    아래와 같이 구성요소를 연결합니다.


    명확하지 않은 경우 이 프로젝트에 첨부된 fritzing 파일을 참조하십시오. Vcc는 항상 3v3이어야 합니다. 일부 Arduino Uno 클론에서는 3v3 전원에 전류가 충분하지 않아 nRF24L01+가 작동하지 않을 수 있습니다. 이 문제를 해결하려면 아래 방법 중 하나를 사용하는 것이 좋습니다.

    <올>
  • 별도의 3v3 전원 공급 장치 사용
  • 모듈 자체의 Vcc와 Gnd 사이에 10uF 커패시터를 추가합니다.
  • nRF24L01+ 소켓 어댑터 사용

  • 송신기와 수신기가 준비되었으므로 이제 테스트할 시간입니다. 송신기의 전원이 ON인지 확인하십시오. Arduino Uno를 PC에 연결하고 arduino ide에서 직렬 모니터를 엽니다. 아래와 같이 작동해야 합니다.

    영구적으로 만들기

    납땜에 대한 약간의 지식으로 perfboard를 사용하여 영구적으로 만들었습니다.

    이것은 nRF24L01+와 ATtiny85의 3개 핀만 사용하여 연결하여 나머지 핀이 센서 데이터를 읽는 데 사용할 수 있는 방법을 보여주는 더 간단한 모듈입니다. 피드백/제안을 환영합니다.

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    <울>
  • 송신기
  • 수신자
  • 송신기C/C++
    #define CE_PIN 3#define CSN_PIN 3 //3핀 구성을 사용하기 때문에 CE와 CSN 모두에 동일한 핀을 사용합니다.#include "RF24.h"RF24 radio(CE_PIN, CSN_PIN);byte address[11] ="SimpleNode";부호 없는 긴 페이로드 =0;void setup() { radio.begin(); // 라디오 시작 radio.setAutoAck(1); // autoACK가 활성화되었는지 확인합니다. radio.setRetries(15,15); // 재시도 및 재시도 횟수 사이의 최대 지연 radio.openWritingPipe(address); // 디바이스 주소 'SimpleNode'에 쓰기}void loop(void){ payload++; radio.write( &payload, sizeof(unsigned long) ); //'Receiver'에 데이터를 1초 단위로 전송합니다. delay(1000);}
    수신기C/C++
    #define CE_PIN 7#define CSN_PIN 8#include #include "RF24.h"RF24 radio(CE_PIN, CSN_PIN);byte address[11] ="SimpleNode"; unsigned long payload =0;void setup() { Serial.begin(115200); radio.begin(); // 라디오 시작 radio.setAutoAck(1); // autoACK가 활성화되었는지 확인합니다. radio.setRetries(15,15); // 재시도 및 재시도 횟수 사이의 최대 지연 radio.openReadingPipe(1, address); // 디바이스 주소 'SimpleNode'에 쓰기 radio.startListening();}void loop(void){ radio.stopListening(); radio.startListening(); radio.read( &payload, sizeof(unsigned long) ); if(페이로드 !=0){ Serial.print("페이로드 가져오기"); Serial.println(페이로드); } 지연(1000);}

    회로도

    nRF24L01%2B(%20Socket 포함)%20Attiny85.fzz nRF24L01%2B%20Arduino%20Uno.fzz

    제조공정

    1. 스위치가 있는 회로
    2. 롤링 핀
    3. DS18B20으로 온도 읽기 | 라즈베리 파이 2
    4. RASPBERRY PI로 온도 측정
    5. Raspberry Pi로 온도 모니터링
    6. Walabot과 함께하는 자세 교정기
    7. PiCamera를 사용한 AI 숫자 인식
    8. TJBot 시작하기
    9. Raspberry Pi로 세그웨이 구축
    10. Windows IoT 기반 GoPiGo v2