Arduino#ESP-WROOM-02とModbus TCP/IP一緒に使う

今回はESP-WROOM-02を自分のArduinoと繋がって、そしてModbusTPC経由でパソコンからデータを取ってみようかなと考えています。

事前準備

その前にまずArduino ESPライブラリをDonwloadし、インストールします。

Arduino ESP8266 library

https://github.com/itead/ITEADLIB_Arduino_WeeESP8266/blob/master/README.md

もちろん、ArduinoのModbusTCP/IPのライブラリも忘れずに。

https://github.com/andresarmento/modbus-arduino

Arduino UNOを使っていますので、SoftwareSerialを使用します。

SoftwareSerial使いますので、ESP8266.hのところに以下のCodeをComment Outします。

このようにですね。

ESP-WROOM-02パラメータセットアップ

Station Mode変更

AT+CWMODE_CUR=1

OK

接続試し

AT+CWJAP_CUR=”myAP”,”mypassword”

WIFI CONNECTED

WIFI GOT IP

OK

refer link

https://trac.switch-science.com/wiki/ESP-WROOM-02_AT

Arduino側

#include <SoftwareSerial.h>
#include “ESP8266.h”
#include <Modbus.h>
#include <ModbusIP_ESP8266AT.h>

SoftwareSerial mySerial(2,3); // RX, TX
ESP8266 wifi(mySerial, 115200);

//Modbus Registers Offsets (0-9999)
const int R1 = 100;
const int R2 = 101;
//Used Pins
const int sensorPin = A0;

//ModbusIP object
ModbusIP mb;


void setup()

{
   
    //Config Modbus IP
    mb.config(wifi, “MYPC1”, “Password”);
    //Set ledPin mode
    mb.addIreg(R1);
    mb.addIreg(R2);
}

void loop()
{

  //Call once inside loop() – all magic here
  mb.task();
  mb.Ireg(R1,100);
  mb.Ireg(R2,200);

}

mb.config(wifi, “MYPC1”, “Password”)のところ、APと合わせて正しいければ自動的に接続されます。

Python側

このLibraryを使っています。

https://pypi.org/project/pyModbusTCP/

from pyModbusTCP.client import ModbusClient
import time

SERVER_HOST = “192.168.137.5”
SERVER_PORT = 502
SERVER_U_ID = 2

c = ModbusClient()
c.open()
c.is_open()
time.sleep(1)
regs = c.read_input_registers(100,2)
print(regs)
c.close()

Result

[100, 200]

Sample Code:

https://github.com/soup01Threes/Prototyping/blob/main/Arduno_using_with_MODBUSTCPIP_ESP-WROOM-02.zip

Footer_Basic

Please Support some devices for my blog

Amazon Gift List

Find ME

Twitter:@3threes2
Email:soup01threes*gmail.com (* to @)
YoutubeChannel:https://www.youtube.com/channel/UCQ3CHGAIXZAbeOC_9mjQiWQ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする