'라즈베리'에 해당되는 글 1건

자 그럼 스타트는 라즈베리파이를 먼져 열고 시작해 보겠습니다.

 

푸티를 열어주고

 


잘됫으

 

 

아두이노 설치부터 해야됨

 

  $ sudo apt-get install arduino

끗!!

  $ sudo usermod -a -G tty pi

  $ sudo usermod -a -G dialout pi

 

똭 써주고

뭔가 됫음 근뭔지는 모름 일단 됫음

그리고 파일하나 만들자

 

/*
 Pi_Serial_test.cpp - SerialProtocol library - demo
 Copyright (c) 2014 NicoHood.  All right reserved.
 Program to test serial communication
 
 Compile with:
 sudo gcc -o Pi_Serial_Test.o Pi_Serial_Test.cpp -lwiringPi -DRaspberryPi -pedantic -Wall
 sudo ./Pi_Serial_Test.o
 */
 
// just that the Arduino IDE doesnt compile these files.
#ifdef RaspberryPi 
 
//include system librarys
#include <stdio.h> //for printf
#include <stdint.h> //uint8_t definitions
#include <stdlib.h> //for exit(int);
#include <string.h> //for errno
#include <errno.h> //error output
 
//wiring Pi
#include <wiringPi.h>
#include <wiringSerial.h>
 
// Find Serial device on Raspberry with ~ls /dev/tty*
// ARDUINO_UNO "/dev/ttyACM0"
// FTDI_PROGRAMMER "/dev/ttyUSB0"
// HARDWARE_UART "/dev/ttyAMA0"
char device[]= "/dev/ttyACM0";
// filedescriptor
int fd;
unsigned long baud = 9600;
unsigned long time=0;
 
//prototypes
int main(void);
void loop(void);
void setup(void);
 
void setup(){
 
  printf("%s \n", "Raspberry Startup!");
  fflush(stdout);
 
  //get filedescriptor
  if ((fd = serialOpen (device, baud)) < 0){
    fprintf (stderr, "Unable to open serial device: %s\n", strerror (errno)) ;
    exit(1); //error
  }
 
  //setup GPIO in wiringPi mode
  if (wiringPiSetup () == -1){
    fprintf (stdout, "Unable to start wiringPi: %s\n", strerror (errno)) ;
    exit(1); //error
  }
 
}
 
void loop(){
  // Pong every 3 seconds
  if(millis()-time>=3000){
    serialPuts (fd, "Pong!\n");
    // you can also write data from 0-255
    // 65 is in ASCII 'A'
    serialPutchar (fd, 65);
    time=millis();
  }
 
  // read signal
  if(serialDataAvail (fd)){
    char newChar = serialGetchar (fd);
    printf("%c", newChar);
    fflush(stdout);
  }
 
}
 
// main function for normal c++ programs on Raspberry
int main(){
  setup();
  while(1) loop();
  return 0;
}
 
#endif //#ifdef RaspberryPi

 

 

 

미쿡 형이 잘 설명도 써놧음 찬찬 히 읽으면 이해됨

 

나는 시리얼 보드벤드?? baud??? 이거 115200 이라 

바꿔줫음

 

그리고 실행!!

아 

이거 아두이누는 

이렇게 넣어주고

 

#include <DHT.h>
#define DHTTYPE DHT11

int pinGnd = 4;
int pinVcc = 3;
int pinDht = 2;

DHT dht(pinDht, DHTTYPE);

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  pinMode(pinVcc, OUTPUT);
  pinMode(pinGnd, OUTPUT);
  digitalWrite(pinVcc, HIGH);
  digitalWrite(pinGnd, LOW);

  dht.begin();
}

void loop() {
  // put your main code here, to run repeatedly:
  delay(2000);
  float fTemp = dht.readTemperature();
  float fHumi = dht.readHumidity();

  if(isnan(fTemp) || isnan(fHumi)) {
    Serial.println("Falled to read from DNT semsor!");
    return;
  }
  Serial.print("Temperature : ");
  Serial.print(fTemp);
  Serial.print("[C]\t ");
  Serial.print("Humidity: ");
  Serial.print(fHumi);
  Serial.print("%\n");    
  }

이거 칩 셋팅은

 

 

이렇게 햇음

 

 

자그럼 작성도 다됫고

 $ dmesg|tail

아두이노 잘 읽히나 잘보고

 

 

$ sudo gcc test.c -o hello -l wiringPi -DRaspberryPi

  $ sudo ./hello

이렇게

잘 만들어주면

습도 보내기 완료!!

좋았스~

 

 

 

 

블로그 이미지

Or71nH

,