자 그럼 스타트는 라즈베리파이를 먼져 열고 시작해 보겠습니다.
푸티를 열어주고
잘됫으
아두이노 설치부터 해야됨
$ 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
이렇게
잘 만들어주면
습도 보내기 완료!!
좋았스~
'[ 충남인력개발원 ] (2019) > └라즈베리파이' 카테고리의 다른 글
라즈베리파이 화면 출력 vnc (0) | 2020.01.15 |
---|---|
라즈베리파이 파일 전송 하기 (0) | 2020.01.07 |
라즈베리 파이완전 고정 IP 무선유선 빨리 설치하기 (0) | 2020.01.06 |
라즈베리 파이 만들기 (0) | 2020.01.06 |