�激���≪����篆�

Python��Arduino���f�冴�������激���≪����篆<�у�ゃ������������

Windows�医����喝�����������Mac���������<���c��亜����

Python���f�冴�������������������с����鐚�

  • Arduino�ч���������若�帥���違��������������
  • Arduino�������������若�帥��������Web���f�冴���������吟��������篏�
  • �������������宴����緇�����Arduino����篏���紊�����

Anaconda���ゃ�潟�鴻���若��

Windows��Python��篏帥����������Anaconda���������若���х�医���罕�膀�������
https://www.javadrive.jp/python/install/index5.html

Pyserial���ゃ�潟�鴻���若��

Anaconda Prompt��������篁ヤ����������ュ��������

pip install pyserial

������Python�с�激���≪����篆<��篏帥�������������c����
�潟���潟�����ゃ�潟��UNIX������������Python��絎�茵��с������
python3�с������python�у�茵�������

python ���<�ゃ����.py

Windows��ls���後������潟���潟����dir��cd��������������篏�������

Arduino����Python���ゃ������

Arduino IDE��������篁ヤ������㏍�違������絎�茵�������
���������銀������榊�ゃ�����究�����������≪���㏍�医�ュ�����ゃ��紊���������違������

int analogInputPin = 5;
/** ����荐㊤����∽�� 筝�綺�����絎�茵������� */
void setup() {
  Serial.begin(9600);
}
/** 絎��������茵��������∽�� �糸墾��delay�∽�違�ц��� */
void loop(){
  int val = analogRead(analogInputPin);
  Serial.println(val); // PC���������篆�
  delay(200);
}

�激���≪���≪���帥��荀���������究�����������ゃ��紊����������腆肴�����
�障�����激���≪�����若����篏�������腆肴����������

閩<����Python�����<�ゃ����篏���������
����: https://haizairenmei.com/2019/11/13/pyserial-arduino/

import serial
ser = serial.Serial('COM6', 9600) # ���������若����垩��紊���
ser.readline()
while True:
  val_arduino = ser.readline()
  val_decoded = int(repr(val_arduino.decode())[1:-5])
  print(val_decoded)
ser.close()

�������㏍�違������絎�茵���������Arduino���激���≪���≪���帥�������������医���茵�ず��������

Python����Arduino���ゃ������

int���ゃ������絖���������1罅����ら�����������с������

int led1 = 6;
int led2 = 5;
int led3 = 3;
int input = -1;
int add = 0;
int val = 0;

void setup() {
  Serial.begin(9600);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
}

void loop() {
  input = Serial.read();
  if(input!=-1){
   switch(input){
     case '0':
       add = 0 + add*10;
       break;
     case '1':
       add = 1 + add*10;
       break;
     case '2':
       add = 2 + add*10;
       break;
     case '3':
       add = 3 + add*10;
       break;
     case '4':
       add = 4 + add*10;
       break;
     case '5':
       add = 5 + add*10;
       break;
     case '6':
       add = 6 + add*10;
       break;
     case '7':
       add = 7 + add*10;
       break;
     case '8':
       add = 8 + add*10;
       break;
     case '9':
       add = 9 + add*10;
       break;
     case 'a':
       val = add;
       add = 0;
       break;
     default:
        break;
    }
  }
  // �����障�с����val����������

  // val��30篁ヤ����������潟��LED��HIGH
  if(val >= 30){
    digitalWrite(led1, HIGH);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
  }
  // val��20-29������������筝㏍��LED��HIGH
  else if(val >= 20){
    digitalWrite(led1, LOW);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, LOW);
  }
  // val��1-19��������綏���LED��HIGH
  else if(val > 0){
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3, HIGH);
  }
}
import serial
import time

ser =serial.Serial("COM3", 9600) # ���������若����垩��紊���
time.sleep(2)
val = 100 # �������ゃ��紊��眼��������Arduino��������紊����
a = str(val) + 'a'
ser.write(bytes(a,'utf-8'))
ser.close()

鏆���: API��柑��

Python�ф�莟≦��������ャ����蕭�羂�羝�����緇��������������c���合������LED��紊�������
https://news.mynavi.jp/article/zeropython-75/
������筝�������API�����c���蚊�������宴�����㏍�違�����潟�違��������綵√��с�����潟�㏍�若���с����篁�腟��帥��������
篁������莟≦���API������������JSON������綵√��уぉ羂�篋��宴�������潟�㏍�若���с������
JSON��Python�с���鴻���������������с������
�障����URL���≪���祉�鴻����筝㊧昆��荀����帥����������

���ャ����蕭�羂�羝���30綺�札筝�����20綺�札筝���������篁ュ��������c��Arduino�榊�ゃ���合������LED��紊�������
Arduino�����㏍�違�����������障��

import serial
import time

import urllib.request as req
import json

# JSON�������潟�㏍�若��
url = 'https://www.jma.go.jp/bosai/forecast/data/forecast/010000.json'
filename = 'tenki.json'
req.urlretrieve(url, filename)

with open('tenki.json', 'r', encoding="UTF-8") as f:
  data = json.load(f)

nagoya_data = data[11]
nagoya_tomorrow_temps = nagoya_data["srf"]["timeSeries"][2]["areas"]["temps"]
print(nagoya_tomorrow_temps) # ���ャ�����ゅ���[��篏��羝�, ��蕭�羂�羝�]


ser =serial.Serial("COM3", 9600)
time.sleep(2)
val = nagoya_tomorrow_temps[1] # ���ャ�����ゅ�����蕭�羂�羝�
a = val + 'a'
ser.write(bytes(a,'utf-8'))
ser.close()

Python�с�����������吟��������篏����с������
�������吟��������篏�
IFTTT��篏帥�������с��LINE�������f�冴�с������
LINE, �<�若�������f��