回路網の旅

電気・電子に偏った社会人がおくる日々の記録。

温湿度センサとArduino UNO

2017年02月26日 21時38分38秒 | 工作
ずっと前からマンションって空気乾燥するなーと思ってた時に、
買っておいた湿度と温度が測定できるセンサを試してみました。

グラフは、赤線が湿度、青線が温度になってます。縦軸は共通で、横軸は測定数(10秒おき)です。
今は乾燥になれて気にならないんですけどねー

使ったのは↓のセンサです。
売り切れになってますが、いろんな所で買えます。
(パチもんもあるらしいのでご注意を


・温度湿度センサ DHT22(AM2302)
https://www.amazon.co.jp/gp/product/B00KNPQIWG/ref=oh_aui_search_detailpage?ie=UTF8&psc=1


1-wireで出力するようになっているので、マイコンがないと厳しいですが
その辺は先人がいろいろ試されているのでそれをまんま拝借しました(笑

Arduino UNOに接続して、DHT22(白いの)のライブラリとスケッチ例をダウンロードしたらOK
あとは、arduino IDEのメニューからシリアルプロッタを選択すれば、
ログがグラフで表示されます。
湿度と温度なので応答はゆっくりですが、エアコンをつけたときと窓を開けたときははっきり読み取れました。
こういうセンサ類は、単体で動作確認したあと、何に使うかが肝だと思います。
特に予定はないですけどね!エアコンの稼動状況(電流)と並べたら面白いかも

このシリアルプロッタという機能はArduinoIDE 1.6.6から実装されたそうですが、とてもありがたいですね。シリアルモニタでも確認はできるんですけど、グラフでみれるほうが直感的で応用が拡げられそうです。





ModbusRTU工作5

2016年12月31日 12時22分04秒 | 工作
modbusRTUをやるにあたって、CRCの計算というやつがありまして

こいつをプログラムで動かす分にはいいんですが

デバッグ中にこのデータなら幾らなんだ?という場面がちょいちょいあります。


Modbusに必要なCRCは16ビットですが、PCのメモリなんかは32ビットだったりするのでアプリやソフトも少なめですが、無いことはないです。


方法1:Cで動かす
Modbus.orgの仕様書「MODBUS over Serial Line Specification & Implementation guide V1.0」の42ページにサンプルプログラムと数列表
を使う。(マイコン側はこれにしました。)


方法2:フリーソフトの力を借りる

Simply modbusというサイトに計算するエクセルファイルが公開されてます。
http://www.simplymodbus.ca/index.html

CRC Calculator - Checksum Generator(iPhone アプリ)も有料ですが、便利です。
https://itunes.apple.com/jp/app/crc-calculator-checksum-generator/id984488943?mt=8


あと、調べるとオンライン計算サイトもあってありがたいですね。


方法3:手計算
一回はやっておくべしと思いながら、数週間・・・・笑

ModbusRTU工作4

2016年12月31日 12時04分41秒 | 工作
舞台をルネサスマイコンに移してから、久しぶりなマイコンプログラミングになりました。

回路図とにらめっこすることが大半となった社会人生活にはいい頭の体操です。

さて、シリアル通信の方法ですが検証はTeraTermを使いました。今回初めて知ったのですが、TeraTermにはバイナリモードがありこれに切り替えるとModbusRTU通信をみることができます。


色々試していると、どうも最後の送信文字がうまく届いてない様子があります。Win7とTeraTermの組み合わせで発生するみたいで・・・・
詳細は検証中です。(ちがったらごめんなさい)


OS環境:Windows 7 Professional 32bit
ソフト:TeraTerm 4.8.7

メモ
・Debug modeをONしてバイナリ表示させる。(管理者モードで実行)
・エンコードはShift_JIS
・ボーレートなど設定後に保存しておくと便利(※1)
・ModbusRTUマスターのコマンドはマクロで送信(※2)




※1
ボーレート:19200bps
データ:8bit
パリティ:none
ストップ:1bit
フロー制御:none
送信遅延:0ms/字、0ms/行
漢字コード:Shift_JIS
ローカルエコー:あり


※2
; macro for Tera Term
; modbusRTU function01
; Read coil 4

send $01$01$00$00$00$04$3D$C9
mpause 15
end

ModbusRTU工作3

2016年12月31日 11時53分16秒 | 工作
さて、準備が整ったところでオリジナルの製作に入ります。

使うマイコンはArduinoUNO相当がよかろうということで、
ルネサス製RL78/G13にしました。最近のルネサスマイコンを使ってみたかったんです。

エミュレータを買う余裕はないので、Stickという開発キットにしました。デバッグできて、回路図もしっかりしてて良い感じですが、
スタンドアロンで動かすときと接続して書き込むときに、ショートプラグを4つ抜き差ししないといけないのをよく忘れます。小さくて面倒だし、セレクタICでもつないでやろうかしら。



・ルネサスエレクトロニクス RL78/G13 Stick スターターキット 【RL78/G13-STICK】 \4,000-くらい
https://www.amazon.co.jp/%E3%83%AB%E3%83%8D%E3%82%B5%E3%82%B9%E3%82%A8%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AD%E3%83%8B%E3%82%AF%E3%82%B9-Stick-%E3%82%B9%E3%82%BF%E3%83%BC%E3%82%BF%E3%83%BC%E3%82%AD%E3%83%83%E3%83%88-%E3%80%90RL78-G13-STICK%E3%80%91/dp/B016W852AG/ref=sr_1_6?ie=UTF8&qid=1483152594&sr=8-6&keywords=RL78+G13



ここからが大変だった。ルネサスの統合開発環境はHEWのときにちょっといじったくらいだったので
CS+ for CC と CS+ for CA に翻弄されることに・・・・(笑
細かく書いても有益な情報はないので、備忘録てきにメモっときます。


・開発環境(無償)はCS+ for CAがよさそう
・StickのサンプルコードをCS+ for CAで試す
・LED点滅確認→OK
・シリアル通信のサンプルコードがCS+ for CCであることに気づく
・CS+ for CAとCCの違いがよく分からない
・コンパイラが2つあるという事実に気づく
・面倒なのでCS+ for CCでサンプルコードを動かす
・CS+ for CAとビット表現が異なり混乱
・コード自動生成機能を後からいじっておかしくなる
・少しづつ事実が見えてくる
・CS+ for CCで開発を進める


こんな感じです。現状はサンプルコードにつぎはぎなので、どこかで整理できたらコードを公開できるかもしれませんが、めどは立っていません(笑

新しいことを新しいデバイスでやるもんじゃないですね・・・笑

ModbusRTU工作2

2016年12月31日 11時07分59秒 | 工作
ModbusRTU工作ですが、通信に無知な私にはお手本がないとしんどいので
色々調べているとArduino のライブラリと実際に動作確認して紹介している方がおられたので
これを参考にさせてもらいました。感謝です。

Another Modbus slave example
(Samuel Marco i Armengol氏のライブラリを使ったModbusスレーブ)
http://arduino-experience.blogspot.jp/2014/03/another-modbus-slave-example.html

またプロトコルはこちらの動画がわかりやすかったです。(Ulas Dikme氏)
http://ulasdikme.com/projects/arduino/Arduino_modbus_example.php


ModbusRTUにはマスターとスレーブがありますが、マスタはPCで「QModbus」というソフトを使用し、USB-RS485変換アダプタをつかって確認します。Arduino側はUARTと出力ポート1Ch、変換ICで対応します。
で、ざっくりなで動作させてみたら動いてしまって拍子抜けしました。
いやいや、後に自作すると苦労するんですけどね・・・・。先人の苦労とライブラリ様様です。

部品などは下記のとおり。主要なとこは千円くらいですね。お手軽っちゃお手軽。



【部品表】
・Arduino UNO互換器※ \500-
https://www.amazon.co.jp/gp/product/B018VYJIEU/ref=oh_aui_search_detailpage?ie=UTF8&psc=1

・RS485/RS422トランシーバ TI製 SN75176BP \60-
http://akizukidenshi.com/catalog/g/gI-07430/


・USB To RS485変換アダプタ \320-
https://www.amazon.co.jp/gp/product/B00GWEGZOI/ref=oh_aui_search_detailpage?ie=UTF8&psc=1

・その他
ブレッドボード、配線、コンデンサ、抵抗など。


【ソフト】
・Arduino IDE 1.6.5
・Qmodbus0.2.1


※互換器である必要はありません。あったのでこれをつかってます。




ModbusRTU工作1

2016年12月31日 09時48分50秒 | 工作
ひょんなことから、ModbusRTUという通信プロトコルと関わる機会が増えてきたので
理解する為につくってみることにしました。

ModbusRTUは、シリアル通信プロトコルの1種で物理層はRS-485そのままです。
PLC向けの規格のため、FAや工場設備の制御など産業用途が多いです。この辺は、仕事で関わりがある知ってる人しか知らない情報かもしれません。通信速度は19.2kbpsと低速ですが、RS-485はマルチドロップのため、芋ずるでたくさんのリレーやランプ、スイッチ(接点)の制御するのに便利です。オープン規格なところもいいですね。プロトコルも複雑ではないのでマイコンに組み込めそうです。

マスタースレーブ方式のため、マスタ(PLCかPC)から問い合わせをかけたらスレーブが応答します。ファンクションコードという機能分類があり、デジタル値の読み出しやレジスタへの書き込みがあります。
スレーブIDの設定範囲は1~247、データアドレスは1~9999なので、がんばったら数百万ビットの制御ができそう。

ざっくり計算で、ファンクションコード1とし、19.2kbpsで1バイト分が10ビット送信として0.52msかかり、問い合わせに8バイト分80ビットで4.17ms、応答に6バイト分60ビットで3.12msとなり合計7.29ms(2バイト毎)。

プロトコルは、Modbusの業界団体のWEBページからみることができます。もっとも、RTUのイーサネット版のModbusTCPが主なようです。
http://modbus.org/

産業用ネットワーク(フィールドバスというらしい)は、まだまだ業界標準が定まってないようでいろいろな規格があります。用途が限定されず速度やリアルタイム性など要求が多様なためなんでしょうか。

まとめると、ちょっとON/OFF制御をいっぱいしたいときに使う通信ですね!




konashiを使う準備をする

2015年09月06日 20時28分15秒 | 工作
ひょんなことから、I2Cを使って遊びたくなって
ユカイ工学製のkonashiを買いました。

だって、スマホから動かしたいじゃないですか。今時。

ArduinoならAndroid端末と繋げられるんですけど、

普段つかってるのはiPhone5Sなので、iOSとリンクしたい。でも、

iOSは外部機器の接続がややこしくって、もう無線でもいいやと思って

見つけたのがkonashiです。Blutoothでつながるみたいなので、

さっと取り出して電池駆動でデモできるってのは凄くいい。

で、この土日で手をつけようとしたわけですが思わぬとこで躓きました。

まず、開発環境をインストールします。(ここ詰まった。)


1. iMacにGitHubからkonashiのsdkを入れます。

→Git(バージョン管理)がインストールされてないのでインストールしようとする

→homebrew(パッケージマネージャ)が入ってないのでインストールしようとする

→Xcode(統合開発環境)のコマンドラインツールがないと怒られる

→Xcodeが古かったのでちょっと新しめ(ver. 4.6.1)をインストールしようとする

→なぜかうまくいかない。

(いろいろ詰まったのは、検索して対処しました。素直にOSバージョンアップするほうが王道ですが、
iTunesとかアップデートすると使いにくくなりそうなので嫌厭)

という感じで、戻り戻りを繰り返してやっと、konashi-ios-sdkをインストールできました。

あんまり進んだ感じしないけど、また来週がんばろー

土曜日の日課

2015年01月17日 15時33分36秒 | 工作
なんとなく、土曜日に早起きできると週末が充実してる気がする。

できれば、おきたついでに喫茶店でモーニング食べて

ちょっと本か雑誌を読み進められるといい。

でも今日はもっと殊勝なことに勉強会の資料を準備してました。

たぶん、使うことがないとおもうけど鋳造設計について。

参考書読んでて思ったのですが、

最近流行の3Dプリンターで金属ができるものはどうなってんでしょうね。

強度とかそのへん。砂型をプリンタでつくってというなら、関係ないかもしれないけど。

なんにせよ奥深い。ちょっと、アルミダイキャスト体験とかあればやってみたいなー


ぜんぜん関係ないですが、鍛造、プレスはトヨタ博物館に見に行きました。

表示プレート

2015年01月12日 17時05分59秒 | 工作
何か手を動かしてないと駄目な気がして作ったのがこれ↓





・会議室の使用状態を表示するプレート

よくプラスチック製のものが売られてます。最近は、タブレットとネットと連携して予約と空室状態の共有をするものもあるようです。作った理由は、ないから(笑)


[参考]タブレット製の予約システム
http://bizmakoto.jp/bizid/articles/1412/05/news042.html

液晶画面とかまではいらいないかなーとも思うけど、ネット経由で空室情報を共有できるのはいいなと思う。
これくらいならマイクロ発電とセンサー組み合わせて、ネットに接続できそうやし、取り付け廃棄もカンタン!
なにより、見やすいわかりやすい!

まあ、ネット接続まではやらないかなw

製作時間:1時間くらい(だらだら
設計:パワポで適当に描いて、印刷型紙を製作