2021年10月28日木曜日

AT仕様esp8266.hでの成功を記録 Arduino実用入門Wifiでデータを送受信しよう より 

ATマシンとしてespr developperを使った場合のコード いまはArduino化している

もとにもどすの大変そう

 

#include <ESP8266.h> // 201頁のデコメントでソフトシリアル有効にするのが重要

#define SSID        "@”

#define PASSWORD    "@"

#define HOST_NAME "192.168.3.9"

#define HOST_PORT (9999)

SoftwareSerial mySerial( 3, 2 ); 

ESP8266 wifi( mySerial );

void setup(void)

{

    Serial.begin( 9600 );

    mySerial.begin(115200);

    // mySerial.println("AT+UART_CUR=9600,8,1,0,0"); // 不可解な部分

    delay(10);

    mySerial.begin(9600); 

    delay(10);

    if ( wifi.setOprToStation() ) {

        Serial.println( "OK" );

    } else {

        Serial.println( "Error" );

    }

    if ( wifi.joinAP( SSID, PASSWORD ) ) {

        //mySerial.println("AT+CIPSTA=192.168.1.200,192.168.1.1,255.255.255.0");

       // これも不可解な部分

        delay(10);

        Serial.println("success");

        // Serial.println( wifi.getLocalIP().c_str() );  // うまくいかんのでコメントアウト

    } else {

        Serial.println( "Failed" );

    }

}

void loop(void)

{

    char msg[128] = {0};

    strcat( msg, "Hello! from Arduino.");

    if ( wifi.createTCP( HOST_NAME, HOST_PORT ) ){

        Serial.println("OK: TCP Connect.");

        wifi.send( msg, strlen( msg ) );

        wifi.releaseTCP();

    } else {

        Serial.println("Faild: TCP Connect.");

    }

   while( 1 ){

       delay(10000);

   } // 再アクセスが禁止される

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

arduinoをサーバにする際は、はじめにもどってDHCPからespr developperに

わりあてられるIPをチェックする! hostname  -I は、あくまでPCのそれdr

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

google  drive into jituyo-arduino


2021年10月22日金曜日

IRremote by uno & IRremoteEsp8266 by esp32

 https://asukiaaa.blogspot.com/2018/05/arduino.html を参考に

サンプルコードのirremote/irrecvdumpを実践(ただしgpioは2に変更)

elegooの受信機はg:gnd,r:vcc,y:gpioだった

まず、2階の寝室の電灯のOn信号をひろう

NEC 214A56A9 32bit だった

ーーー 以下のコードでIR送信すると1.3m以内になると電灯がついた! ーーー

#include <IRremote.h> // irsenddemo.inoによれば

// An IR LED must be connected to Arduino PWM pin 3. であった

IRsend irsend;

void setup()

{

  Serial.begin(9600);

}

void loop() {

      irsend.sendNEC(0x214A56A9, 32); // NEC power code

      delay(4000);

}

つまり4秒ごとに、信号を送るコードだ 

mosfettを使用したら、若干到達距離が伸びた気が?

ーーーーーーーーーーーー 回路は ーーーーーーーーーーーー

gnd -> IRled短 anode > IRled長 cathode -> 100Ω -> gpio 3 :: 赤外線LED1本の場合

mosfetを使用する場合は、上記サイトを参考に

-----------------------------esp32の場合----------------------------------------------------------

(レシーバ)

https://wak-tech.com/archives/1627             のコードではEpsonだが同じ内容だった

https://kakikukeko.sakura.ne.jp/blog/arduino-ir-receiver/#gallery-1 も参考にすると、

レシーバの凸面の裏からみて、向かって左からVCC(3v))、GND、OUT(12pin)

VCCとGNDをまたぐように0.1マイクロFのコンデンサをいれると雑音がでなかった

irremote8266/irrecvdumpv2.inoで実行

(センダー)

http://marchan.e5.valueserver.jp/cabin/comp/jbox/arc213/doc21305.html#sect3

を参考にした 3.3KΩなかったので2k+1k+330Ωで代用した

10uFはいらんかった 10Ωの制限抵抗かけて2sc1815でドライブ

凸面の裏でひだりからECBの順で、エミッタはGNDに、Cは赤外線LEDにつなぎ

ベースには3.3kオームを介してシグナルをださせる!

#include <IRremoteESP8266.h>

#include <IRsend.h>

#include <IRutils.h>

const uint16_t kIrLed = 19; //赤外線LEDのピンを取得

IRsend irsend(kIrLed);   // 送信オブジェクト 以後はirsendで使用

bool success = true;

decode_type_t protocol = EPSON; // Epsonではだめだった

uint16_t size = 32;

const uint32_t value = 0x214A56A9;    //部屋の明かりをつけるコード

void setup() {

  Serial.begin(9600);

  irsend.begin(); // 赤外線LEDの設定

}

 

void loop() {

    success = irsend.send(protocol, value, size); //送信

  if (success){

      Serial.println("send success");

  }

  delay(1000);

}

(参考文献)

ESP-WROOM-32(ESP32)周辺回路作成 - Qiita ここにtransistorの必要性が書いてある





2021年10月10日日曜日

arduino④ 加速度 ssd1306 チャタリング

アマゾンで買った正体不明の加速度センサを3vでも5vでも駆動してみた

https://deviceplus.jp/hobby/entry017/ を参考に

アナログ3,4,5にx,y,zをつないだ うまくいった 

Z軸はx,yをうごかさずに回転する度合いを示す

-----------------------------------------------------------------------------

Arduinoでディスプレイ表示!OLED LCDディスプレイSSD1306を使ってみた!|ケンチーブログ (kenchi-blog.com)

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

const int SW_PIN = 4; ここでマイクロ左(名前の書いてある面を表として)をGND

マイクロ真ん中を4ピンにいれると input_pullup , delay2箇所がないとチャタリング

int count = 0;

void setup() {

    pinMode( SW_PIN, INPUT); //  pinMode( SW_PIN, INPUT_PULLUP);

    Serial.begin( 9600 );

}

void loop() {

    if ( digitalRead( SW_PIN ) == LOW ){

        //delay( 100 );

        count = count + 1;

        Serial.print( "Count : " );

        Serial.println( count );

        while( digitalRead( SW_PIN ) == LOW ){

            delay( 100 );

        }

           // delay( 100 );    

    }

}

 

2021年10月1日金曜日

arduino➂npn,melody-IC,圧,曲げ,フォトリフレクタ,sound,rtc,I2C-convertor

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

https://www.petitmonte.com/robot/howto_transistor_npn.html NPNの基礎がくわしい

(3端子メロディ)ーーーーーーーーーーーーーーーーーーーーーーー

 const int MELODY_PIN = 5;

void setup() {

  // put your setup code here, to run once:

pinMode(MELODY_PIN, OUTPUT);

}

void loop() {

  // put your main code here, to run repeatedly:

  digitalWrite(MELODY_PIN, HIGH);

  delay(5000);

  digitalWrite(MELODY_PIN, LOW);

  delay(5000);

}

(圧センサ)ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

Arduino実践講座 p244 

20KΩとなっているのは10KΩでもでけた 

(曲げセンサは、そのままできた)ーーーーーーーーーーーーーーーーーーーーーー 

Arduino実践講座 p94 でOK

(フォトリフレクタ)ーーーーーーーーーーーーーーーーーーー

Arduino実践講座 p80 でOK 150のかわりに100Ωででけた

(音量)ーーーーーーーーーーーーーーーーーーーーーー

Arduino実践講座 p176 でOK

(RTC)ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

amazon手持ちは、esp32に準じたがセットは

http://jh7ubc.web.fc2.com/arduino/Arduino_RTC_DS1307.html でOKだった

読み出しだけもesp32に準じるが、wire(21,22)のかわりのwire(4,5)は不要だった 

なんでやろ? わからんが。。。。。

(I2Cレベルコンバータ)ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

arduino電子工作 実践篇 p181のI2Cレベルコンバータとちがい

秋月のFxma https://www.petitmonte.com/robot/howto_fxma2102.html

(+)の電源を共通にするのは間違い なくてうごいた (ー)だけ共通でOK

もしくはスイッチサイエンスのそれをつかう いずれも成功

ただし本書にあるBME280.hのcppファイルの<arduino.h>を<Arduino.h>に

書き直す必要があった スイッチサイエンスのそれが断然使いやすかった