未分類」カテゴリーアーカイブ

ロシェ桃山2024-2025年末年始の営業時間

12/27 14:30-23:00

12/28 10:00-23:00

12/29 10:00-23:00

12/30 10:00-23:00

12/31 10:00-18:00

1/1 休業

1/2 12:00-23:00 要電話予約 ※

1/3 10:00-23:00 要電話予約 ※

1/4 10:00-23:00 要電話予約 ※

※自転車で移動できる範囲ぐらいにはいるので連絡直前でも大体大丈夫です

Aliexpressで買っているOLEDの微妙な違い

Aliexpressでよく1.3inchのOLEDを買っている。秋月で売っているこいつの少し大きい版みたいなやつ。

こいつが微妙なバージョン違いがある。

買ったやつはうらの金色の配線(フレキシブルフラットケーブル)に型番が書いてある。(aliの写真で見る限り書いていないやつなど色々ありそう)

DSC_0059

で手元にあるのはGME12864-70,GME12864-71,GME12864-77の3種類。なお、色と型番紐ついているかわからないけど(型番のとこに色も書いていたので色ごとに型番っぽい)70と77は白の、71は青のOLED文字色。

供給元と思われるとこのページをみると

GME12864-70のドライバはCH1116G/SH1106。

GME12864-77のドライバはSSD1315。しかも1.3inchでなく1.29inchらしい。

GME12864-71はページがないのでわからない。(後継っぽいGME12864-73があるけどそっちはI2Cがないタイプなので色々違いそう。)

GME12864-70,GME12864-71はAliで売っている互換Arduino NanoとAdafruit_SH1106.hの組み合わせで安定して動いている。

GME12864-77

GME12864-77はAdafruit_SH1106.hだと不安定というかすぐにとまる。Adafruit_SH110X.hだと動いている。

Adafruit_SH1106はAdafruit公式のOLEDに合わせてチューニングしているやつらしい。ちょっとパラメータが違うとダメっぽい。

なお、ラズピコや自作基盤のArduino互換機ではAdafruit_SH1106でも動くっぽい。

SSD1315と互換のあるSSD1306と互換のあるSH1106として動かしている状況なので色々無理が出るという状況っぽい。

ちゃんとするなら、ハードに合わせて使用ライブラリを交換するのがよいけど互換Nanoだとメモリが少ないのでOLEDライブラリ変えるとそれはそれでメモリ不足とか大変

Adafruit_SH110X

Adafruit_SH110Xライブラリの中のAdafruit_SH1106GはAdafruit_SH1106ライブラリのなかのものより若干メモリ使用量が多い模様。

メモリが足りない時に初期化でメモリ確保に失敗することがあるけど(ここ)、beginの中で戻り値を確認していないのですこしあとで死ぬ。多分続くdrawBitmapかoled_commandListで初期化されていないi2c_devを呼ぼうとした当たり。

google play consoleにてDUNSの登録を求められたが管理されている住所が違った

しばらく放置していたggolge playでAndroidアプリを公開するためのアカウントだが11/15だったかまでに支払いプロファイルを登録しないとアカウントを削除するという警告が来ていた。

面倒だが登録しようとすると組織アカウントだとDUNSという東京商工リサーチで管理してある番号が必要とのこと。

東京商工リサーチにて検索できるとのことで、検索ページから検索。

自社が登録されていたものの会社作った際の古い住所のままだった。google playにて登録する際に最近の取引明細の提出で確認が求められるようなニュアンスが書いてある。そのまま突き進むのは危険そうなのでgoogleに対してヘルプページから聞いたがAIによって違う窓口に振り向けられて担当窓口につながらない。

しかも、どの画面かスクリーンショットを取ってほしいといわれてとった際に、次へボタンを気軽に押したら半確定状態のようになってしまい一段と危険そうな状態に。

11/26の進捗に書いたが、DUNSに古い住所が登録されているまま支払いプロファイルを作成した場合は東京商工リサーチに修正依頼をかけてもgoogleの作成済み支払いプロファイルには自動反映されない模様。支払いプロファイルを新たに作成し再度DUNSを入力したところ反映された。

以下解決するかわからないけど時系列で追記していく

10/18 夕方

東京商工リサーチのページから更新依頼がかけられるというのを発見し実施。たしか動きがあるまで2~3営業日ぐらい必要とのことが申請画面の周りに書いてあった。

10/18 夜

googleの窓口からは「デベロッパー向けの専用サポート」にPlay Consoleヘルプから再度問い合わせてときていた。

10/19(または18深夜)

 google play console画面に「プロファイルを登録を延期依頼」みたいなリンクができていたので延長依頼を実施。クリックして画面が切り替わったぐらいのタイミングで申請期限が2025年2月13日まで延長されていた。期間に若干余裕ができたので少し待機。

10/24 夜

現時点で東京商工リサーチによる変更反映手続きはされていない模様。googleとappleの要求対応で処理がたまっており、8-10営業日ぐらいかかると東京商工リサーチのどこかのページに書いてあった。

10/31 13:47

東京商工リサーチより住所変更処理完了のメールが入った。13日(営業日だと10日ぐらい?)

14:30分にgoogle play consoleから支払いプロファイルの住所を確認したがまだ古い住所のまま。東京商工リサーチからgoogleのデータベースの住所に反映されるにはタイムラグがあるとどこかに書いてあったので少し待ってみる。

11/16 12:00

google play consoleから支払いプロファイルの住所を確認したがあいかわらずまだ古い住所のまま。2月まで確認期間延長済みなので問い合わせ等せずもうしばらく待ってみる。

11/26 15:00

いつまでも反映されないので、試しに「支払いプロファイルをつくる」からDUNSを入力し新しい支払いプロファイルを作成したところ新住所での支払いプロファイルが作成された。

住所やらの入力を求められたので何点か入力し保存実行。この後に書類提出があるはず。保存クリックから20分ほどたったがまだ、関連する通知は来ていない。

12/04

管理コンソールに入ったら本人確認までステップが進んでいた。多分メール通知等はなかったのでプロファイル確認が進んだかはログインしてチェックするしかなさそう。

会社の確認書類(登記簿か税務署からの書類か納税証明書)と個人確認の書類(免許かメモしなかったけど他いくつか)が必要。画像にしてアップロードしたところ「本人確認中」ステータスまで進んだ。

AliExpressで買ったレーザーポインタ使えた

aliで売っていた本体価格43円(送料200円前後)のレーザーポインターとりあえず使えた。(リンク

5個買って送料込み473円だったので一つ100円弱。3個必要なボタン電池ついていないので百均で2セット入り2パック買ってプラス150円ぐらい。

長さは指先サイズ。(57mmらしい)。

DSC_0042

部品はレーザー素子が入っている筒とボタン電池ホルダー(緑)、電極兼用と思られる蓋。頑丈層ではないけど安いしまあありだろう。

DSC_0043

電池が小さめのボタン電池LR41が3個必要。(コーナンに買いに行ったら高かったのでダイソーで調達。)

ボタン電池のセットが少し難しい。ボタン電池のホルダーは口が広い方と狭い方があるが、口の広い方にプラス面(直径の広い方)を向けて平になるように電池を3個詰め込む。蓋が電極を兼ねているみたいで奥に行くと接触しなそう。また、赤い筒の電極はばね式になっている。電池ホルダー内で隙間があるとばねがへたりそうなのでドライバー等で押し込んで隙間がないようにしといたほうがよさそう。

DSC_0044

出力が4mwあるので自分で使うのはよいが小売りはダメ。抵抗変更したら出力調整できるかもしれないけど分解は壊れてから。ためす

3Dプリンターでモデルの特定の場所が出なくなった

OpenSCADでモデル作成からstl出力。Repetier-HostV2.2.4というソフトでスライス&プリンタ操作をしている。使用しているプリンターはIUSEというアマゾンで安かった数年前のもの。

The object is not manifold.
This essentially means, that it is not watertight.
This normally causes problems during slicing, resulting in unwanted results.
We strongly advice to repair the model.

気付いたら上のエラーメッセージがRepetier-Hostにガッツリ出ている。しばらく出力していないモデルだけど昔は気づかなかった。

モデルがwatertight(防水?)でないのでうまくいかんかも知らんので修理しろと。watertightでないはモデルの部品が隙間なく並んでいても、重なる部分がないみたいな状態。1cmの立方体から1cmずらして立方体を置いたら隙間なく隣り合ってはいるけどかぶっている部分がないみたいな状態のはず。

なお、OpenSCADでは昔からnot manifoldという旨のメッセージが出ていたけど実際には出力されるから問題なしと放置していた。

いかにも修理ボタンがRepetier-Hostのエラーメッセージの横に出ているのでボタンを押してやると「オブジェクトは多様状態です」といかにも治った雰囲気のメッセージに変わった。

ところが実際に出力するとうまく出力されないと書こうとしたが、出力されたgcodeをRepetier-Hostのgcodeエディタから保存しオンラインシミュレーターで確認するといけそうなのが出力された。

とりあえず印刷中。ちゃんとOpenSCADでmanifoldにしてやってと書こうとしたが、gcode確認してうまく修理ボタンでなおったらそれでしのぐというのもありかもしれない。

結果が出たら追記する。->結果出た下に

manifoldにしてやらないでも動きそうなgcodeで通常通りに出力された。悪いgcodeと比較しようと思ったが何もしないでも動きそうなgcodeが現状出力されている。また、昔のうまくいかなかったときのgcodeは保存していないどころか観点になくチェックもしていない。

現時点では追加で調べられることもないので様子を見る。(調査いったん終了)

ロシェ桃山年末年始の営業時間

年末年始は30まで通常営業。

1/31日は18:00閉店 1/1 休業 1/2-4 は事前電話予約ある時間営業となります

12/27 14:30-23:00
12/28 14:30-23:00
12/29 14:30-23:00 
12/30 10:00-23:00 
12/31 10:00-18:00 
1/1 休業 
1/2 要電話予約(10:00-23:00) 
1/3 要電話予約(10:00-23:00) 
1/4 要電話予約(10:00-23:00)

ロシェ桃山年末年始予定

12/29-1/3は予約が必要です。

12/26 通常営業(18:00-23:00)

12/27 通常営業(14:30-23:00)

12/28 通常営業(14:30-23:00)

12/29 1時間程度前まで予約必要で終日営業(10:00-23:00)

12/30 前日まで予約必要で終日営業(10:00-23:00)

12/31 前日まで予約必要で短縮営業(10:00-19:00)

1/1 前日まで予約必要で短縮営業(13:00-22:00)

1/2 前日まで予約必要で短縮営業(11:00-22:00)

1/3 前日まで予約必要で終日営業(10:00-23:00)

1/4 通常営業再開(14:30-23:00)

連絡先 090-3524-7416  または 075-632-8978

携帯の方がつながりやすいと思います

MHZ19ターミナルタイプのコネクター

MHZ19をはじめとするMHZ14やその他Winsen社製のターミナルタイプですがコネクターがかなり固いです。

また、19はコネクターのメスとセンサー本体の間が折り取れるようになっているのでコネクター部分をしっかり押さえて差し込まないと折れてしまうことがあります。

向きは以下の写真の通りです。

CO2モニター用基板EPEA-CO2-NDIR-04へのプログラム書き込み

はじめに

EPEA-CO2-NDIR-04と書いていますが、マイコンはAtmega328P-PU(内部クロック3.3v/8MHz)なので、一般的なAtmega328Pへの書き込みと同じになります。

マイコンを基盤につけたままだと書き込みが成功しにくいので、基盤からマイコンを外して書き込むことが基本形となります。PC側のArduinoIDEの設定はこちらを参考にしてください

注 基盤にマイコンをつけたまま書き込もうとすると(少なくとも2021/1月時点では)TX,RXの1,2番ピンがMHZの信号と競合してなかなか書き込みに成功しません。

必要部品

書き込み対象マイコン

Atmega328P-PU(内部クロック3.3v/8MHz) 。ブートローダー書き込み済みのもの。壊してしまったら秋月電子等で購入できます。

ブレッドボード

普通のブレッドボード

ジャンパーピン

オスメスで7本

コンデンサ

0.1uF

USB-シリアル変換アダプター

スイッチサイエンスのこれをつかっていますが、機能的にはほかでもいけると思います。

接続方法

ピンの番号はこちらを参照

アダプターのDTRを0.1uFのコンデンサを挟んでマイコンのPIN1に※下記のtwetterリンク参照

アダプターのRX をマイコンのPIN3(TXD)に ※PIN2(RXD)でないので注意

アダプターのTX をマイコンのPIN”(RXD)に

アダプターのVCCをマイコンのPIN7(VCC)に、そこから分岐してさらにPIN20(AVCC)に ※下記のtwetterリンク参照

アダプターのGNDをマイコンのPIN8(GND)に、そこから分岐してさらにPIN22(GND)に ※下記のtwetterリンク参照

アダプターのマイクロUSBを書き込み用のPC(Arduino IDE)に

ライブラリインストール

外部ライブラリとしてMHZ19(CO2センサー用)とFaBoLCDmini_AQM0802A(LCD用)を使っています。IDEのツール、ライブラリを管理からAQM0802A,MHZ19(似た名前がかかるけどMH-Z19のほう)あたりで検索するとでてくると思います。

M5Stack + MHZ19C + WiFi (Local/http)

TODO あとでちゃんと書きなおす(余裕があれば)

飛ばす方 ソース

#include <M5Stack.h>
#include <MHZ19.h>
#include <WiFi.h>
#include <HTTPClient.h>

#define RX 16
#define TX 17
#define INTERVAL 6

const char* ssid     = "XXXXXXX";
const char* password = "XXXXXXX";

MHZ19 myMHZ19;

HardwareSerial  mySerial(1);

void setup(){

  M5.begin();
  M5.Power.begin();
  M5.Lcd.setTextSize(5);
  M5.Lcd.print("start");

  Serial.begin(115200);
  
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    M5.Lcd.print(".");
  }
  M5.Lcd.println("\r\n connected");
  M5.Lcd.print(WiFi. localIP());

  mySerial.begin(9600,SERIAL_8N1,RX,TX);
  delay(100);
  myMHZ19.begin(mySerial);
  myMHZ19.autoCalibration(false);

  delay(2000);
}

int count = 0;
int co2 = 0;
void loop()
{
  if ((count % INTERVAL) == 0 ) {
    co2 = myMHZ19.getCO2();
    displayCo2(co2);
    doPost(co2);
  } else {
     M5.Lcd.print(".");
  }
  count++;
  delay(1000);
}

void displayCo2(int co2) {
  M5.Lcd.clear(); 
  M5.Lcd.setCursor(0, 0);
  M5.Lcd.println("CO2 ppm");
  M5.Lcd.print(co2);
}

void doPost(int co2){
  char json[30];
  sprintf(json, "{\"co2\": \"%d\"}", co2);
  Serial.println(json);
  
  HTTPClient http;
  http.begin("http://192.168.1.3:8081/");
  http.addHeader("Content-Type", "application/json");
  int httpCode = http.POST(json);
  delay(1000);
  Serial.printf("[HTTP] GET... code: %d\n", httpCode);
  http.end();
     
}

受けるほう ソース index.ts (雰囲気)

import express from 'express'
import moment from 'moment'


const app: express.Express = express()
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.use(express.static('public'))

app.listen(8081, () => {
  console.log('Running at Port 8081...')
})


app.post('/', (req, res)=> {
  console.log("call")

  // console.log(moment().format())
  console.log(req.body )
  res.send('OK')
})

app.use((req, res) => {
  res.sendStatus(404)
})

URLの指定で末尾の/が抜けているとM5Stackがエラー&リブートを繰り返した。結構はまった。

試験用の配線は前のブログ参照。まだ、試験用でMHZへの電力がたぶんたりてないはず。