[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
ラベル mosquitto の投稿を表示しています。 すべての投稿を表示
ラベル mosquitto の投稿を表示しています。 すべての投稿を表示

2022年7月26日火曜日

Ubuntu 22.04にEclipse MosquittoとPython用Eclipse pahoをインストールする

Eclipse mosquittoはMQTT ブローカー(=MQTTのサーバ)、Eclipse pathoはMQTTプロトコルのライブラリです。 Publish/Subscribeモデルでメッセージを送受信できます。

開発手順 1. mosquittoをインストール
以下のコマンドでmosquittoをインストールします。
sudo apt-get -y install mosquitto mosquitto-clients

2. pipenvの導入
pipenvをインストールしていない場合は、以下のコマンドを実行します。
sudo apt-get update

sudo apt-get -y install python3-pip python3-distutils python3-dev

python3 -m pip install --user pipenv

echo "export PIPENV_VENV_IN_PROJECT=true" >> ~/.profile

echo 'export PATH=$PATH:/home/ubuntu/.local/bin' >> ~/.profile

source ~/.profile

3. paho-mqttモジュールがインストールされた仮想環境作成
pipenvを使用する場合は以下のコマンドで、paho-mqtt用の仮想環境を作成します。
mkdir -p ~/paho_mqtt

cd ~/paho_mqtt

pipenv --python 3

pipenv install paho-mqtt

pipenv shell

4. Subscribeサンプルプログラム
以下のプログラムで、mosquitto/testというトピックを受信してメッセージを表示します。

mosquitto_sub_test.py
import paho.mqtt.client as mqtt

topic = "mosquitto/test"
host = "localhost"
port = 1883
secs_keep_alive=60

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
    client.subscribe(topic)

def on_message(client, userdata, msg):
    print("received: {}:{}".format(msg.topic, str(msg.payload)))

client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message

client.connect(host, port, secs_keep_alive)

client.loop_forever()

・実行方法
以下のコマンドで受信プログラムを実行します。止める場合はCtrl+Cで止めてください。
python mosquitto_sub_test.py

5. Publishサンプルプログラム
以下のプログラムで、mosquitto/testというトピックにメッセージを送信します。

mosquitto_pub_test.py
import paho.mqtt.publish as publish

topic = "mosquitto/test"
host = "localhost"
port = 1883
secs_keep_alive=60

publish.single(topic, "message test", hostname=host, port=port, keepalive=secs_keep_alive)

・実行方法
以下のコマンドで送信プログラムを実行します。
python mosquitto_pub_test.py

Mosquittoのコマンドによる送受信 mosquittoのコマンドで、メッセージを送受信する事も出来ます。

・送信用コマンド
mosquitto_pub -t mosquitto/test -h localhost -m "test message by command."

・受信用コマンド
mosquitto_sub -t mosquitto/test -h localhost

2021年4月13日火曜日

Raspberry Pi Zero上のEclipse Mosquittoとpaho MQTTで、照度センサーモジュールの照度データを送信する

Raspberry Pi Zero上のEclipse Mosquittoとpaho MQTTで、照度センサーモジュールの照度データを送信/受信するには、以下の手順を実行します。

Raspberry Pi ZeroとTSL25721 照度センサーの接続は「Raspberry Pi Zeroと照>度センサーモジュールで照度を測る」を参照してください。

〇開発手順
1. pipenvの導入
pipenvをインストールしていない場合は、以下のコマンドを実行します。
sudo apt-get update

sudo apt-get -y install python3-pip python3-distutils python3-dev

sudo pip3 install --upgrade pip

sudo pip3 install --upgrade setuptools

sudo pip3 install pipenv

echo "export PIPENV_VENV_IN_PROJECT=true" >> ~/.bashrc

source ~/.bashrc

2. paho-mqttモジュールとsmbusがインストールされた仮想環境作成
pipenvを使用する場合は以下のコマンドで、paho.mqttとsmbus用の仮想環境を作成します。
mkdir -p ~/smbus_mqtt

cd ~/smbus_mqtt

pipenv --python 3

pipenv install paho-mqtt smbus

pipenv shell

3. paho MQTTでメッセージを受信するプログラムを作成する
以下のプログラムで受け取った照度データを表示します。

mosquitto_sub_lux.py
import paho.mqtt.client as mqtt
import time

topic = "mosquitto/test"
host = "localhost"
port = 1883
secs_keep_alive=60

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
    client.subscribe(topic)

def on_message(client, userdata, msg):
    print("received: {}".format(msg.topic))
    print(str(msg.payload))

client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message

client.connect(host, port, secs_keep_alive)

client.loop_forever()

・実行方法
以下のコマンドで受信プログラムを実行します。止める場合はCtrl+Cで止めてください。
python3 mosquitto_sub_lux.py

5. 照度データの送信
以下のプログラムで照度データを送信します。

mosquitto_pub_lux.py
import paho.mqtt.publish as publish
import smbus
import time

i2c = smbus.SMBus(1)
addr_tsl25721=0x39

FIELD_COMMAND = 0x80 # Write
FIELD_TYPE = 0x20 #  Auto-increment protocol transaction

REG_CONTROL = 0x0F # Control Register
VAL_CONTROL_RESET = 0x00 # Reset Value for Control Register
REG_CONFIG = 0x0D # Config Register
VAL_CONFIG_RESET = 0x00 # Reset Value for Config Register
REG_ATIME = 0x01 # ATIME(ALS time) Register
VAL_ATIME_C64 = 0xC0 # INTEG_CYCLE=64, Time=175ms
REG_ENABLE = 0x00 # Enable Register
VAL_ENABLE_PON = 0x01 # Power ON
VAL_ENABLE_AEN = 0x02 # ALS Enable
VAL_ENABLE = VAL_ENABLE_PON | VAL_ENABLE_AEN

REG_C0DATA = 0x14 # CH0 ADC low data register

# Initialize
# Reset Control Register
i2c.write_byte_data(addr_tsl25721, FIELD_COMMAND | FIELD_TYPE | REG_CONTROL, VAL_CONTROL_RESET)

# Reset Config Register
i2c.write_byte_data(addr_tsl25721, FIELD_COMMAND | FIELD_TYPE | REG_CONFIG, VAL_CONFIG_RESET)

# Set ALS time
i2c.write_byte_data(addr_tsl25721, FIELD_COMMAND | FIELD_TYPE | REG_ATIME, VAL_ATIME_C64)

# Power on and enable ALS
i2c.write_byte_data(addr_tsl25721, FIELD_COMMAND | FIELD_TYPE | REG_ENABLE, VAL_ENABLE)

def read_lux():
  atime = 0xC0 # 192
  gain = 1.0

  dat = i2c.read_i2c_block_data(addr_tsl25721, FIELD_COMMAND | FIELD_TYPE | REG_C0DATA, 4)
  adc0 = (dat[1] << 8) | dat[0]
  adc1 = (dat[3] << 8) | dat[2]

  cpl = (2.73 * (256 - atime) * gain)/(60.0)
  lux1 = ((adc0 * 1.00) - (adc1 * 1.87)) / cpl
  lux2 = ((adc0 * 0.63) - (adc1 * 1.00)) / cpl
  lux = 0
  if ((lux1 <= 0) and (lux2 <= 0)) :
    lux = 0
  if (lux1 > lux2) :
    lux = lux1
  elif (lux1 < lux2) :
    lux = lux2

  return lux

topic = "mosquitto/test"
host = "localhost"
port = 1883
secs_keep_alive=60

lux= read_lux()
publish.single(topic, "lux:{:.1f}".format(lux), hostname=host, port=port, keepalive=secs_keep_alive)

・実行方法
以下のコマンドで送信プログラムを実行します。
python3 mosquitto_pub_lux.py

2021年4月9日金曜日

Raspberry Pi Zero上のEclipse Mosquittoとpaho MQTTで、送信メッセージをキャラクタ液晶ディスプレイに表示する

Raspberry Pi Zero上のEclipse Mosquittoとpaho MQTTで、送信メッセージをキャラクタ液晶ディスプレイに表示するには、以下の手順を実行します。

開発手順 1. pipenvの導入
pipenvをインストールしていない場合は、以下のコマンドを実行します。
sudo apt-get update

sudo apt-get -y install python3-pip python3-distutils python3-dev

sudo pip3 install --upgrade pip

sudo pip3 install --upgrade setuptools

sudo pip3 install pipenv

echo "export PIPENV_VENV_IN_PROJECT=true" >> ~/.bashrc

source ~/.bashrc

2. paho-mqttモジュールとsmbusがインストールされた仮想環境作成
pipenvを使用する場合は以下のコマンドで、paho.mqttとsmbus用の仮想環境を作成します。
mkdir -p ~/smbus_mqtt

cd ~/smbus_mqtt

pipenv --python 3

pipenv install paho-mqtt smbus

pipenv shell

3. paho MQTTでメッセージをキャラクタ液晶ディスプレイモジュールに表示するプログラムを作成する
以下のプログラムで受け取ったメッセージをキャラクタ液晶ディスプレイモジュールに表示します。

mosquitto_sub_display.py
import paho.mqtt.client as mqtt
import smbus
import time

topic = "mosquitto/test"
host = "localhost"
port = 1883
secs_keep_alive=60

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
    client.subscribe(topic)

def on_message(client, userdata, msg):
    print("received: {}".format(msg.topic))
    print(str(msg.payload))
    lines = (msg.payload).decode('utf-8').split("\n")
    print("line0: {}".format(lines[0]))
    print("line1: {}".format(lines[1]))
    for ch in lines[0].encode("shift_jis"):
      i2c.write_byte_data(addr_lcd, 0x40, ch)
      time.sleep(0.01)

    i2c.write_byte_data(addr_lcd, 0x00, 0xc0)
    for ch in lines[1].encode("shift_jis"):
      i2c.write_byte_data(addr_lcd, 0x40, ch)
      time.sleep(0.01)

i2c = smbus.SMBus(1)
addr_lcd=0x3e

# Initialize
# Function Set
i2c.write_byte_data(addr_lcd, 0x00, 0x38)
time.sleep(0.01)

# Function Set
i2c.write_byte_data(addr_lcd, 0x00, 0x39)
time.sleep(0.01)

# Internal OSC frequency
i2c.write_byte_data(addr_lcd, 0x00, 0x14)
time.sleep(0.01)

# Contrast set
i2c.write_byte_data(addr_lcd, 0x00, 0x70)
time.sleep(0.01)

# Power/ICON/Constrast control
i2c.write_byte_data(addr_lcd, 0x00, 0x56)
time.sleep(0.01)

# Follower control
i2c.write_byte_data(addr_lcd, 0x00, 0x6c)
time.sleep(0.01)

# Function set
i2c.write_byte_data(addr_lcd, 0x00, 0x38)
time.sleep(0.01)

# Display ON/OFF control
i2c.write_byte_data(addr_lcd, 0x00, 0x0c)
time.sleep(0.01)

# Clear Display
i2c.write_byte_data(addr_lcd, 0x00, 0x01)
time.sleep(0.1)

client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message

client.connect(host, port, secs_keep_alive)

client.loop_forever()

・実行方法
以下のコマンドで受信プログラムを実行します。止める場合はCtrl+Cで止めてください。
python3 mosquitto_sub_display.py

5. 表示文字列の送信
以下のプログラムでメッセージを送信します。

mosquitto_pub_display.py
import paho.mqtt.publish as publish

topic = "mosquitto/test"
host = "localhost"
port = 1883
secs_keep_alive=60

publish.single(topic, "MQTT\nテスト", hostname=host, port=port, keepalive=secs_keep_alive)

・実行方法
以下のコマンドで送信プログラムを実行します。
python3 mosquitto_pub_display.py

関連情報 ・秋月電子のRaspberry Piキャラクタ液晶ディスプレイモジュール
https://akizukidenshi.com/catalog/g/gK-11354/

2021年4月8日木曜日

Debian 10(Buster)/Ubuntu 20.04/Raspberry PiにEclipse MosquittoとPython用Eclipse pahoをインストールする

Eclipse mosquittoはMQTT ブローカー(=MQTTのサーバ)、Eclipse pathoはMQTTプロトコルのライブラリです。
Publish/Subscribeモデルでメッセージを送受信できます。

開発手順 1. mosquittoをインストール
以下のコマンドでmosquittoをインストールします。
sudo apt-get -y install mosquitto mosquitto-clients

2. pipenvの導入
pipenvをインストールしていない場合は、以下のコマンドを実行します。
sudo apt-get update

sudo apt-get -y install python3-pip python3-distutils python3-dev

sudo pip3 install --upgrade pip

sudo pip3 install --upgrade setuptools

sudo pip3 install pipenv

echo "export PIPENV_VENV_IN_PROJECT=true" >> ~/.bashrc

source ~/.bashrc

3. paho-mqttモジュールがインストールされた仮想環境作成
pipenvを使用する場合は以下のコマンドで、paho-mqtt用の仮想環境を作成します。
mkdir -p ~/paho_mqtt

cd ~/paho_mqtt

pipenv --python 3

pipenv install paho-mqtt

pipenv shell

4. Subscribeサンプルプログラム
以下のプログラムで、mosquitto/testというトピックを受信してメッセージを表示します。

mosquitto_sub_test.py
import paho.mqtt.client as mqtt

topic = "mosquitto/test"
host = "localhost"
port = 1883
secs_keep_alive=60

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
    client.subscribe(topic)

def on_message(client, userdata, msg):
    print("received: {}:{}".format(msg.topic, str(msg.payload)))

client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message

client.connect(host, port, secs_keep_alive)

client.loop_forever()

・実行方法
以下のコマンドで受信プログラムを実行します。止める場合はCtrl+Cで止めてください。
python3 mosquitto_sub_test.py

5. Publishサンプルプログラム
以下のプログラムで、mosquitto/testというトピックにメッセージを送信します。

mosquitto_pub_test.py
import paho.mqtt.publish as publish

topic = "mosquitto/test"
host = "localhost"
port = 1883
secs_keep_alive=60

publish.single(topic, "message test", hostname=host, port=port, keepalive=secs_keep_alive)

・実行方法
以下のコマンドで送信プログラムを実行します。
python3 mosquitto_pub_test.py

Mosquittoのコマンドによる送受信 mosquittoのコマンドで、メッセージを送受信する事も出来ます。

・送信用コマンド
mosquitto_pub -t mosquitto/test -h localhost -m "test message by command."

・受信用コマンド
mosquitto_sub -t mosquitto/test -h localhost

2020年5月24日日曜日

Vagrantでmosquittoがインストールされた仮想マシン(CentOS 8.1)を構築する

mosquittoでMQTTプロトコルを使用してメッセージの送受信を行うことができます。

〇構築方法
以下のVagrantfileを使用して、mosquittoをインストールした仮想マシン(CentOS 8.1)を構築する事ができます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-8.1"
  config.vm.hostname = "co81mosquitto"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co81mosquitto"
     vbox.gui = true
     vbox.cpus = 2
     vbox.memory = 4096
  end
config.vm.network "private_network", ip: "192.168.55.101", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
dnf -y install langpacks-ja
localectl set-locale LANG=ja_JP.UTF-8
dnf install -y epel-release
dnf check-update
dnf -y update
timedatectl set-timezone Asia/Tokyo

# install mosquitto
dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
dnf config-manager --set-enabled remi
dnf -y install mosquitto
systemctl enable mosquitto
systemctl start mosquitto

# execute commands for test.
mosquitto_sub -t mytopic/test -h co81mosquitto >> /tmp/sample.txt 2>&1 &
sleep 10
mosquitto_pub -t mytopic/test -h co81mosquitto -m "test message."
sleep 10
cat /tmp/sample.txt


SHELL
end

2018年5月20日日曜日

VagrantでApache Nifi 1.6.0とmosquittoがインストールされた仮想マシン(Debian Stretch/9.4)を構築する。

Apache Nifiは様々なデータを処理・分配するためのソフトウェアです。

〇Apache Nifiの画面

ブラウザからhttp://192.168.1.105:8080/nifi/にアクセスします。

〇構築方法
1.以下のVagrantfileを使用して、Apache Nifi 1.6.0とmosquittoがインストールされた仮想マシン(Debian Stretch/9.4)を構築します。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.4"
  config.vm.hostname = "db94nifi160mosquitto"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db94nifi160mosquitto"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
config.vm.network "private_network", ip: "192.168.55.105", :netmask => "255.255.255.0"
config.vm.network "public_network", ip:"192.168.1.105", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
apt-get -y install task-japanese
sed -i -e 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=ja_JP.UTF-8
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
apt-get update
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade

# install mosquitto
apt-get -y install mosquitto mosquitto-clients


# maximum file handles & maximum forked processes
echo '*  hard  nofile  50000' >> /etc/security/limits.conf
echo '*  soft  nofile  50000' >> /etc/security/limits.conf
echo '*  hard  nproc  10000' >> /etc/security/limits.conf
echo '*  soft  nproc  10000' >> /etc/security/limits.conf

echo '*  soft  nproc  10000' >> /etc/security/limits.d/90-nproc

# install java
apt-get -y install openjdk-8-jdk

# download and install Apache Nifi
wget http://ftp.riken.jp/net/apache/nifi/1.6.0/nifi-1.6.0-bin.tar.gz
tar xvfz nifi-1.6.0-bin.tar.gz
mv nifi-1.6.0 /opt

cat << EOF > /etc/systemd/system/nifi.service
[Unit]
Description=Apache Nifi
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/opt/nifi-1.6.0/bin/nifi.sh start
ExecStop=/opt/nifi-1.6.0/bin/nifi.sh stop
KillMode=none

[Install]
WantedBy=multi-user.target
EOF
systemctl enable nifi.service
systemctl start nifi.service

echo 'access url -> http://192.168.1.105:8080/nifi/'

echo 'execute command below for test.'
echo 'mosquitto_pub -t mytopic/test -h localhost -m "test message."'

SHELL
end

2.ConsumeMQTT Processorで、以下のようにパラメータを設定してローカルのmosquittoにアクセスします。
Broker URI : tcp://localhost:1883
Client ID : nifi
Topi Filter : mytopic/test
Quality of Service(QoS) : 0 - At most once
Max Queue Size : 100

※ローカルのmosquittoにメッセージをpublishするには、以下のようなコマンドを実行します。
mosquitto_pub -t mytopic/test -h localhost -m "test message."

○関連情報
・Apache NiFiに関する他の記事はこちらを参照してください。


○関連情報
・mosquittoに関する他の記事はこちらを参照してください。

2018年2月3日土曜日

VagrantでMQTTfx、LXDE Desktop環境、XRDPがインストールされた仮想マシン(Debian Stretch/9.3)を構築する

以下のVagrantfileを使用して、MQTTfx、LXDE Desktop環境、XRDPをインストールした仮想マシン(Debian Stretch/9.3)を構築できます。
XRDPがインストールされているので、Windowsのリモートデスクトップで接続することができます。ユーザ名はVagrant、パスワードもVagrantでログオンできます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.3"
  config.vm.hostname = "db93lxdemqttfx"
  config.vm.network "public_network", ip:"192.168.1.118", :netmask => "255.255.255.0"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db93lxdemqttfx"
     vbox.gui = true
     vbox.cpus = 4
     vbox.memory = 4096
  end
  config.vm.provision "shell", inline: <<-SHELL
apt-get update
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
apt-get -y install task-japanese
sed -i -e 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=ja_JP.UTF-8
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
apt-get update
cat << EOF > /etc/default/keyboard
XKBMODEL="pc106"
XKBLAYOUT="jp"
XKBVARIANT=""
XKBOPTIONS=""
BACKSPACE="guess"
EOF
cat << EOF > /home/vagrant/.xsession
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
sed -i -e "s/^EnabledIMList.*$/EnabledIMList=fcitx-keyboard-jp:True,mozc:True,fcitx-keyboard-us:False/" /home/vagrant/.config/fcitx/profile
fcitx-remote -r
fcitx -r -d
lxsession -s LXDE -e LXDE
EOF
chown vagrant:vagrant .xsession
apt-get -y install  xrdp fcitx-mozc task-lxde-desktop tigervnc-standalone-server fcitx-tools
export DISPLAY=:0.0
im-config -n fcitx
sudo -u vagrant bash -i -c "export DISPLAY=:0.0 && fcitx -r"
cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.org
cat /etc/xrdp/xrdp.ini.org | awk '/\\[Globals\\]/,/\\[Xorg\\]/' | sed -e 's/\\[Xorg\\]//' > /etc/xrdp/xrdp.ini
cat << EOF >> /etc/xrdp/xrdp.ini
[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
EOF
systemctl restart xrdp
systemctl enable xrdp


# install mosquitto
apt-get -y install mosquitto mosquitto-clients

# execute commands for test.
mosquitto_sub -t mytopic/test -h ub1604xfcemqttfx >> /tmp/sample.txt 2>&1 &
sleep 10
mosquitto_pub -t mytopic/test -h ub1604xfcemqttfx -m "test message."
sleep 10
cat /tmp/sample.txt

# install mqttfx
wget http://www.jensd.de/apps/mqttfx/1.5.0/mqttfx-1.5.0-64bit.deb
dpkg -i mqttfx-1.5.0-64bit.deb
sed -i -e 's/Unknown/Development;/' /usr/share/applications/MQTTfx.desktop


init 5
SHELL
end

〇MQTTfxの画面



○関連情報
・mosquittoに関する他の記事はこちらを参照してください。

2018年1月23日火曜日

VagrantでMQTTfxとXfce Desktop環境、XRDPがインストールされた仮想マシン(ubuntu16.04)を構築する

以下のVagrantfileを使用して、mqttfxとXfce Desktop環境、XRDPをインストールした仮想マシンを構築できます。
XRDPがインストールされているので、Windowsのリモートデスクトップで接続することができます。ユーザ名はVagrant、パスワードもVagrantでログオンできます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604xfcemqttfx"
  config.vm.network :public_network, ip:"192.168.1.114"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604xfcemqttfx"
     vbox.gui = true
     vbox.cpus = 4
     vbox.memory = 4096
  end
  config.vm.provision "shell", inline: <<-SHELL
sed -i.bak -e "s#http://archive.ubuntu.com/ubuntu/#http://ftp.riken.jp/pub/Linux/ubuntu/#g"; /etc/apt/sources.list
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
apt-get update
apt-get -y install  xrdp fcitx-mozc xubuntu-desktop language-pack-ja
im-config -n fcitx
# install mosquitto
apt-get -y install mosquitto mosquitto-clients
# execute commands for test.
mosquitto_sub -t mytopic/test -h ub1604xfcemqttfx >> /tmp/sample.txt 2>&1 &
sleep 10
mosquitto_pub -t mytopic/test -h ub1604xfcemqttfx -m "test message."
sleep 10
cat /tmp/sample.txt
# install mqttfx
wget http://www.jensd.de/apps/mqttfx/1.5.0/mqttfx-1.5.0-64bit.deb
dpkg -i mqttfx-1.5.0-64bit.deb
sed -i -e 's/Unknown/Development;/' /usr/share/applications/MQTTfx.desktop
init 5
SHELL
end

○mqttfxの画面



○関連情報
・mosquittoに関する他の記事はこちらを参照してください。

2018年1月8日月曜日

Vagrantでmqttfxとmosquitto、LXDE Desktop環境、XRDPがインストールされた仮想マシン(Debian Stretch/9.2)を構築する

以下のVagrantfileを使用して、mqttfxとmosquitto、LXDE Desktop環境、XRDPをインストールした仮想マシンを構築できます。
XRDPがインストールされているので、Windowsのリモートデスクトップで接続することができます。ユーザ名はVagrant、パスワードもVagrantでログオンできます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604lxdemqttfx"
  config.vm.network :public_network, ip:"192.168.1.119"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604lxdemqttfx"
     vbox.gui = true
     vbox.cpus = 2
     vbox.memory = 2048
  end
  config.vm.provision "shell", inline: <<-SHELL
sed -i.bak -e "s#http://archive.ubuntu.com/ubuntu/#http://ftp.riken.jp/pub/Linux/ubuntu/#g"; /etc/apt/sources.list
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
apt-get update
apt-get -y install xrdp fcitx-mozc lubuntu-desktop language-pack-ja
im-config -n fcitx

# install mosquitto
apt-get -y install mosquitto mosquitto-clients

# execute commands for test.
mosquitto_sub -t mytopic/test -h ub1604lxdemqttfx >> /tmp/sample.txt 2>&1 &
sleep 10
mosquitto_pub -t mytopic/test -h ub1604lxdemqttfx -m "test message."
sleep 10
cat /tmp/sample.txt

# install mqttfx
wget http://www.jensd.de/apps/mqttfx/1.5.0/mqttfx-1.5.0-64bit.deb
dpkg -i mqttfx-1.5.0-64bit.deb
init 5
SHELL
end

○mqttfxの画面



○関連情報
・mosquittoに関する他の記事はこちらを参照してください。

2017年12月19日火曜日

Vagrantでmosquittoがインストールされた仮想マシン(Debian Stretch/9.2)を構築する。

以下のVagrantfileを使用して、mosquittoがインストールされた仮想マシンを構築する事ができます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.2"
  config.vm.hostname = "db92mosquitto"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db92mosquitto"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.network "private_network", ip: "192.168.55.106", :netmask => "255.255.255.0"
  config.vm.network "public_network", ip:"192.168.1.106", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
apt-get -y install task-japanese
sed -i -e 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=ja_JP.UTF-8
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
apt-get update
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade

# install mosquitto
apt-get -y install mosquitto mosquitto-clients

# execute commands for test.
mosquitto_sub -t mytopic/test -h db92mosquitto >> /tmp/sample.txt 2>&1 &
sleep 10
mosquitto_pub -t mytopic/test -h db92mosquitto -m "test message."
sleep 10
cat /tmp/sample.txt

SHELL
end


○関連情報
・mosquittoに関する他の記事はこちらを参照してください。

2017年10月4日水曜日

Vagrantでmosquittoがインストールされた仮想マシン(bento/ubuntu-16.04ベース)を構築する

mosquittoがインストールされたubuntu16.04ベースの仮想マシンを構築するには以下のVagrantfileを使用します。

Vagrantfile

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604mosquitto"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604mosquitto"
     vbox.cpus = 2
     vbox.memory = 1024
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.network "private_network", ip: "192.168.55.101", :netmask => "255.255.255.0"
  config.vm.network "public_network", ip:"192.168.1.101", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
# update packages
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade

apt-get -y install mosquitto mosquitto-clients

# execute commands for test.
mosquitto_sub -t mytopic/test -h ub1604mosquitto >> /tmp/sample.txt 2>&1 &
sleep 10
mosquitto_pub -t mytopic/test -h ub1604mosquitto -m "test message."
sleep 10
cat /tmp/sample.txt
SHELL
end
・関連情報
Vagrantでmosquittoがインストールされた仮想マシン(bento/centos-7.4ベース)を構築する

・mosquittoに関する他の記事はこちらを参照してください。

2017年9月27日水曜日

Vagrantでmosquittoがインストールされた仮想マシン(bento/centos-7.4ベース)を構築する

以下のVagrantfileでmosquittoがインストールされたcentos7.4ベースの仮想マシンを構築する事ができます。

Vagrantfile

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74mosquitto"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co74mosquitto"
     vbox.cpus = 2
     vbox.memory = 1024
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.network "private_network", ip: "192.168.55.108", :netmask => "255.255.255.0"
  config.vm.network "public_network", ip:"192.168.1.108", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
# install mosquitto
yum -y install epel-release
yum -y install mosquitto
systemctl enable mosquitto
systemctl start mosquitto

# execute commands for test.
mosquitto_sub -t mytopic/test -h co74mosquitto >> /tmp/sample.txt 2>&1 &
mosquitto_pub -t mytopic/test -h co74mosquitto -m "test message."
sleep 10
cat /tmp/sample.txt
SHELL
end

○関連情報
・mosquittoに関する他の記事はこちらを参照してください。