techemo(てけも)のブログ

30代リーマンの副業ブログ

【買ってよかった中国輸入品】MFRC-522 RFIDキット~特徴は?使い方は?~

📝 投稿: 🔄 更新:

319記事目(中国輸入品シリーズ)

 

こんばんは。いつも読んでいただきありがとうございます。

趣味で中国から面白そう・便利そうな商品を輸入して使ってみています。techemoです。

今日は最近購入したMFRC-522 RFIDキット(リーダー/ライターモジュール、タグ、カードセット)の紹介です。

RFIDキット MFRC-522

ICカードをかざすだけで認証できるシステムを自作したいと思い購入しました。

なんと付属のカードとキーホルダーもついて700円程度という驚きの価格!

ESP32-C3と組み合わせれば、WiFi対応のスマートロックだって作れちゃいます。

 

特徴は

・非接触でカード読み取り

13.56MHz帯のRFID/NFCカードを約3〜5cmの距離で読み書きできます

タッチするだけで認証完了、まさにSuicaのような操作感!

 

・読み取りだけでなく書き込みも可能

カードのUID読み取りはもちろん、データの書き込みもできます

独自の会員カードや入退室管理システムが作れます

 

・付属品が充実

S50カード(MIFARE Classic 1K互換)とキーホルダータグが付属

届いたその日からすぐに実験できます

 

・とにかく安い(700円程度)

付属カード込みでこの価格は破格!

同等品を日本で買うと1000円以上することも

 

Arduino/ESP32との連携が簡単

SPI通信で接続、専用ライブラリも充実

サンプルコードも豊富で初心者でも扱いやすい

 

 

・はんだ付けが必要

ピンヘッダが別で付属しているのではんだ付けしてから使います

 

📦 MFRC-522 セット内容

📡
MFRC-522

リーダー本体

💳
S50カード

MIFARE 1K互換

🔑
キーホルダー

持ち運び用タグ

※ピンヘッダは別売りの場合あり

技術仕様

動作電圧: 3.3V(5Vは使わないこと!)

動作周波数: 13.56MHz

対応カード: MIFARE Classic (S50/1K, S70/4K)、MIFARE Ultralight

通信方式: SPI(最大10Mbit/s)

読み取り距離: 約3〜5cm

データ転送速度: 106 kbit/s

動作温度: -20〜80℃

 

⚡ 通信仕様まとめ

通信方式

SPI(4線式)

周波数

13.56MHz(NFC帯域)

電圧

3.3V(5V厳禁!)

距離

約3〜5cm

使い道は

私は主にESP32-C3と組み合わせて、カード認証システムの実験に使ってみたいと考えています

 

他にもいろんな使い道が想定されます

 

DIYスマートロック

ESP32とリレーを組み合わせれば、カードをかざすだけで開くドアロックが作れます

WiFi経由でログ記録やリモート解錠も可能!

 

・出退勤・勤怠管理システム

社員証をかざすだけで打刻完了

Google スプレッドシートと連携すれば自動記録も

 

・PCのログイン認証

パスワード入力の代わりにカードタッチでログイン

セキュリティと利便性の両立

 

・子供のお小遣い管理

ポイントカード風のシステムを自作

お手伝いするとポイント付与、なんて使い方も

 

・IRリモコンやセンサーとの連携

以前紹介したIRリモコンやリレーモジュールと組み合わせれば

「カードをかざすとエアコンON」なんてこともできます

 

🔧 活用アイデア

🚪
スマートロック +リレー+サーボ
勤怠管理 +WiFi+GAS
💡
照明制御 +IRリモコン
💰
ポイント管理 +ディスプレイ

読み取れるカード・読み取れないカード

ここが一番重要なポイントです!

MFRC-522は13.56MHz帯のMIFARE規格専用なので、読めるカードと読めないカードがあります

 

📋 カード対応早見表

✅ 読み取り可能

  • 💳 付属のS50カード・キーホルダー
  • 🏢 MIFARE採用の社員証・学生証
  • 🏠 MIFARE採用のマンション入館証
  • 🏨 一部のホテルキーカード
  • 🏷️ NFCタグ(NTAG213/215/216)
  • 📱 NFC Type A対応機器

❌ 読み取り不可

※日本で普及している交通系ICはFeliCa方式のため非対応です

なぜSuicaが読めないの?

Suicaなどの交通系ICは同じ13.56MHzでも「FeliCa」という別規格です

MFRC-522は「MIFARENFC Type A)」専用なので互換性がありません

FeliCaを読みたい場合は、Sony製のRC-S380などの専用リーダーが必要です

 

⚠️ 日本特有の注意点

🇯🇵
日本で主流

FeliCaSony

Suica, おサイフケータイ

🌍
世界で主流

MIFARE(NXP)

海外の交通カード等

MFRC-522はMIFARE専用です。日本の交通系ICには使えません!

配線図

ESP32-C3との接続は以下の通りです

重要:必ず3.3Vで接続してください!5Vを繋ぐと壊れます

 

🔌 ESP32-C3 との接続(SPI通信)

MFRC-522
SDA(SS)
SCK
MOSI
MISO
GND
RST
3.3V
ESP32-C3
GPIO10
GPIO6
GPIO7
GPIO2
未接続
GND
GPIO1
3.3V

⚠️ 絶対に5Vを接続しないでください!

MFRC-522 ESP32-C3 備考
SDA(SS) GPIO10 チップセレクト
SCK GPIO6 クロック
MOSI GPIO7 データ送信
MISO GPIO2 データ受信
IRQ 未接続 今回は不使用
GND GND 必須!
RST GPIO1 リセット
3.3V 3.3V ⚠️ 5V厳禁!

使い方は

①ライブラリのインストール

ArduinoIDEのツール>ライブラリを管理

ライブラリマネージャーの検索窓に"MFRC522"と入力し

"MFRC522" by GithubCommunity をインストール

 

②ボード設定

ボード: "ESP32C3 Dev Module"

Upload Speed: 115200

シリアルモニタ: 115200 bps

 

③配線

上記の配線図を参考に接続します

特にGNDと3.3Vは確実に接続してください

 

④コードの書き込み

以下のサンプルコードを書き込みます

 

📝 サンプルコード(クリックで展開)
/*
 * MFRC-522 カード読み取りテスト for ESP32-C3
 * 通信エラー対策版
 */

#include <SPI.h>
#include <MFRC522.h>

// ESP32-C3のピン設定
#define RST_PIN     1   // RSTピン
#define SS_PIN      10  // SDA(SS)ピン

// ESP32-C3のSPIピン(明示的に定義)
#define SCK_PIN     6
#define MISO_PIN    2
#define MOSI_PIN    7

MFRC522 mfrc522(SS_PIN, RST_PIN);

void setup() {
  Serial.begin(115200);
  delay(1000);
  
  Serial.println("\n========================================");
  Serial.println("MFRC-522 接続テスト for ESP32-C3");
  Serial.println("========================================\n");
  
  // ピン状態の確認
  Serial.println("【ピン設定】");
  Serial.print("SS (SDA): GPIO");
  Serial.println(SS_PIN);
  Serial.print("RST:      GPIO");
  Serial.println(RST_PIN);
  Serial.print("SCK:      GPIO");
  Serial.println(SCK_PIN);
  Serial.print("MISO:     GPIO");
  Serial.println(MISO_PIN);
  Serial.print("MOSI:     GPIO");
  Serial.println(MOSI_PIN);
  Serial.println();
  
  // SPI通信開始(ピンを明示的に指定)
  Serial.println("SPI初期化中...");
  SPI.begin(SCK_PIN, MISO_PIN, MOSI_PIN, SS_PIN);
  delay(100);
  
  // MFRC-522初期化
  Serial.println("MFRC-522初期化中...");
  mfrc522.PCD_Init();
  delay(100);
  
  // セルフテスト実行
  Serial.println("\n【セルフテスト実行】");
  bool selfTestResult = mfrc522.PCD_PerformSelfTest();
  
  if (selfTestResult) {
    Serial.println("✅ セルフテスト: 成功");
  } else {
    Serial.println("❌ セルフテスト: 失敗");
    Serial.println("   配線を確認してください");
  }
  
  // 再初期化(セルフテスト後に必要)
  mfrc522.PCD_Init();
  delay(100);
  
  // リーダー情報表示
  Serial.println("\n【リーダー情報】");
  mfrc522.PCD_DumpVersionToSerial();
  
  // ファームウェアバージョンをチェック
  byte version = mfrc522.PCD_ReadRegister(mfrc522.VersionReg);
  Serial.print("ファームウェアバージョン: 0x");
  Serial.print(version, HEX);
  
  if (version == 0x00 || version == 0xFF) {
    Serial.println(" ❌ エラー");
    Serial.println("\n【トラブルシューティング】");
    Serial.println("1. 配線を確認してください");
    Serial.println("   特にGND、3.3V、MOSI、MISOを確認");
    Serial.println("2. 3.3V電源の電圧を確認");
    Serial.println("3. ブレッドボード接触不良の確認");
    Serial.println("4. MFRC-522モジュールの不良の可能性");
  } else {
    Serial.println(" ✅ 正常");
    Serial.println("\nカードをリーダーに近づけてください...\n");
  }
}

void loop() {
  // カードが近づいたかチェック
  if (!mfrc522.PICC_IsNewCardPresent()) {
    return;
  }

  // カードのUIDを読み取り
  if (!mfrc522.PICC_ReadCardSerial()) {
    return;
  }

  Serial.println("\n========================================");
  Serial.println("🎉 カード検出!");
  Serial.println("========================================");
  
  // カードタイプを判定
  printCardType();
  
  // UIDを表示(カードの固有番号)
  printUID();
  
  // カードの詳細情報
  printCardDetails();
  
  Serial.println("========================================\n");
  Serial.println("次のカードをかざしてください...\n");
  
  // カード処理終了
  mfrc522.PICC_HaltA();
  mfrc522.PCD_StopCrypto1();
  
  delay(2000); // 連続読み取り防止
}

// カードタイプを表示
void printCardType() {
  Serial.print("【カードタイプ】 ");
  
  MFRC522::PICC_Type piccType = mfrc522.PICC_GetType(mfrc522.uid.sak);
  String typeName = mfrc522.PICC_GetTypeName(piccType);
  
  Serial.println(typeName);
  
  // 日本語で詳細説明
  if (piccType == MFRC522::PICC_TYPE_MIFARE_MINI) {
    Serial.println("  → MIFARE Mini (320バイト)");
  }
  else if (piccType == MFRC522::PICC_TYPE_MIFARE_1K) {
    Serial.println("  → MIFARE Classic 1K (1KBメモリ)");
    Serial.println("  → 一般的なマンション入館証、社員証に使用");
  }
  else if (piccType == MFRC522::PICC_TYPE_MIFARE_4K) {
    Serial.println("  → MIFARE Classic 4K (4KBメモリ)");
  }
  else if (piccType == MFRC522::PICC_TYPE_MIFARE_UL) {
    Serial.println("  → MIFARE Ultralight (64バイト)");
    Serial.println("  → 使い捨てチケット、簡易NFCタグに使用");
  }
  else if (piccType == MFRC522::PICC_TYPE_MIFARE_PLUS) {
    Serial.println("  → MIFARE Plus");
  }
  else if (piccType == MFRC522::PICC_TYPE_MIFARE_DESFIRE) {
    Serial.println("  → MIFARE DESFire (高セキュリティ)");
  }
  else if (piccType == MFRC522::PICC_TYPE_TNP3XXX) {
    Serial.println("  → TNP3xxx");
  }
  else if (piccType == MFRC522::PICC_TYPE_ISO_14443_4) {
    Serial.println("  → ISO/IEC 14443-4 準拠");
  }
  else if (piccType == MFRC522::PICC_TYPE_ISO_18092) {
    Serial.println("  → ISO/IEC 18092 (NFC)");
  }
  else {
    Serial.println("  → 不明なカードタイプ");
  }
}

// UIDを表示(カードの固有ID)
void printUID() {
  Serial.print("【UID】 ");
  
  for (byte i = 0; i < mfrc522.uid.size; i++) {
    if (mfrc522.uid.uidByte[i] < 0x10) {
      Serial.print("0");
    }
    Serial.print(mfrc522.uid.uidByte[i], HEX);
    if (i < mfrc522.uid.size - 1) {
      Serial.print(":");
    }
  }
  Serial.println();
  
  Serial.print("  → UIDサイズ: ");
  Serial.print(mfrc522.uid.size);
  Serial.println(" バイト");
}

// カードの詳細情報を表示
void printCardDetails() {
  Serial.print("【SAK値】 0x");
  Serial.println(mfrc522.uid.sak, HEX);
  
  // 判定結果
  Serial.println("\n【判定結果】");
  
  MFRC522::PICC_Type piccType = mfrc522.PICC_GetType(mfrc522.uid.sak);
  
  if (piccType == MFRC522::PICC_TYPE_MIFARE_1K || 
      piccType == MFRC522::PICC_TYPE_MIFARE_4K) {
    Serial.println("✅ このカードは読み書き可能です");
    Serial.println("✅ アクセス制御システムに使用できます");
    Serial.println("✅ データ保存が可能です");
  }
  else if (piccType == MFRC522::PICC_TYPE_MIFARE_UL) {
    Serial.println("✅ このカードは読み取り可能です");
    Serial.println("⚠️  メモリ容量が小さいです(64バイト)");
  }
  else if (piccType == MFRC522::PICC_TYPE_NOT_COMPLETE) {
    Serial.println("❌ カードタイプを完全に識別できませんでした");
    Serial.println("   もう一度かざしてみてください");
  }
  else if (piccType == MFRC522::PICC_TYPE_UNKNOWN) {
    Serial.println("❌ 不明なカードです");
    Serial.println("   125kHz帯のカードの可能性があります");
    Serial.println("   → MFRC-522では読み取れません");
  }
  else {
    Serial.println("✅ このカードは対応しています");
  }
  
  // 詳細情報をダンプ(デバッグ用)
  Serial.println("\n【詳細情報】");
  mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
}

 

⑤動作確認

シリアルモニタを開いて、付属のカードをリーダーにかざします

「カード検出!」と表示されれば成功です

 

シリアルモニタ出力例

✅ 成功した場合

【セルフテスト実行】
✅ セルフテスト: 成功
ファームウェアバージョン: 0x92 ✅ 正常

カードをリーダーに近づけてください...

❌ 失敗した場合

【セルフテスト実行】
❌ セルフテスト: 失敗
ファームウェアバージョン: 0xFF ❌ エラー

【トラブルシューティング】
1. 配線を確認してください...

うまくいかない場合のチェックポイント

・GNDが確実に接続されているか

・3.3Vで給電しているか(5Vはダメ)

・ブレッドボードの接触不良はないか

・ピン番号が合っているか

 

手持ちのカードをいろいろかざしてみると面白いですよ

意外なカードがMIFARE対応だったりします

 

次はボタン付きディスプレイと組み合わせて、タグをコピーできるシステムを組んでみようかと考えています

 

まとめ

MFRC-522は本当にコスパ最強のRFIDリーダーだと思います

 

付属カード込みで700円程度、ESP32と組み合わせれば

WiFi対応のスマートロックやアクセス管理システムが作れます

 

ただし、日本で主流のSuicaおサイフケータイFeliCa)は非対応なので

その点だけは注意してください

 

付属のS50カードで実験するには十分な性能があるので

RFID/NFCに興味がある方はぜひ試してみてください

 

ESP32-C3についてはこちらの記事でも紹介しています

techemo.hatenablog.com

 

今日も最後までお付き合いいただきありがとうございました。

私が買ってよかった商品はネットショップで販売できればと思っています。

似たようなものはAmazonでも購入できます。

 

 

【やってよかった財テク】無料サービスを使い倒す⑧GoogleAIStudioでWebアプリ公開~使用感は?どこが難しい?~

📝 投稿: 🔄 更新:

28記事目(やってよかった財テクシリーズ)

 

こんばんは。いつも読んでいただきありがとうございます。

趣味で財テクや便利なサービスを試しています。techemoです。

今日はGoogle AI Studioを使って無料でWebアプリを作成・公開した体験を紹介します。

作成したWebアプリ

米国株(ドル建て)の価格変動だけでなく、為替レート(USD/JPY)の変動を掛け合わせた「日本円での評価額」の推移をチャート化するアプリを作ってみました

etf-tracker-421439986771.asia-northeast1.run.app

 

「プログラミングできないけどWebアプリ作ってみたい」

「AIに作らせたコードって本当に動くの?」

そんな疑問を持っている方、ぜひ参考にしてください!

 

Google AI Studioとは

GoogleのAIモデル「Gemini」を無料で使える開発環境です。

ChatGPTのようにチャットで指示を出すだけでコードを書いてくれます。

 

・無料で使える(重要!)

APIキーも無料で発行可能。個人開発なら十分な無料枠があります

 

・日本語で指示できる

「こんなアプリ作って」と自然な日本語で伝えるだけでOK

 

・コード生成精度が高い

Geminiは最新の技術にも対応しており、React等のモダンなコードも生成できます

 

🤖 無料で使えるAI開発ツール比較

Google AI Studio

無料 ✓

Gemini搭載

API無料枠あり

日本語対応◎

ChatGPT

無料/有料

GPT-4は有料

Code Interpreter

日本語対応◎

Claude

無料/有料

長文対応◎

Artifacts機能

日本語対応◎

今回はGoogle AI Studio + Google Antigravity(コード修正AI)の組み合わせで開発

今回作ったアプリ

「円建て米国ETFトラッカー」を作りました。

 

米国ETF(VOO、VT、SPYDなど)の価格推移を円建てで確認できるWebアプリです。

ドル建ての価格とドル円為替を自動取得して、円換算した価格推移をグラフ表示します。

 

なぜ作ったか?

米国ETFに投資していると「ドル建てでは上がってるけど円換算だとどうなの?」

という疑問がよく出てきます。これを一目で確認できるツールが欲しかったんです。

 

📊 円建て米国ETFトラッカーの仕組み

📈
ETF価格
(ドル建て)
×
💱
ドル円為替
(リアルタイム)
=
💴
円建て価格
(グラフ表示)

Yahoo Finance APIから自動でデータ取得 → 計算 → グラフ化

開発の流れ

プログラミング経験がなくても、以下の流れで作れました。

🔧 開発フロー(全5ステップ)

1
 
AI Studioでベースコード生成
日本語で「こんなアプリ作って」と指示
2
 
Antigravityで修正・改善
エラー修正やセキュリティ対策を追加
3
 
ローカルで動作確認
自分のPCで動くか検証
4
 
Docker化
クラウドで動かすための準備
5
 
Cloud Runにデプロイ
Googleのサーバーで24時間稼働!

最初のプロンプトはこれだけ:

円建てアメリETFの価格推移を確認できるWebアプリを作りたい
APIでドル建ての価格推移を取得し、合わせてドル円の為替推移を取得して
円建ての価格推移を確認できるようにしてください
まずはVOOで作ってみてください

これだけで動くコードのベースが出てきました。あとは「エラーが出た」「こう直して」と伝えながら修正していくだけです。

 

GoogleAIStudio内でデプロイまで完結させたかったのですが、エラーがループにハマってしまい断念しました

アプリの構成ファイルをダウンロードしてGoogleAntigravityでセキュリティ対策とデプロイまでを実行しました

必要なファイルのインストールや実行環境を整えるところもやってくれます



つまずきポイント

正直、スムーズにはいきませんでした。でもエラーもAIに聞けば解決策を教えてくれるので、なんとかなります。

⚠️ 実際につまずいたポイントと解決策

❌ つまずき①:Node.jsが入っていない

サーバーを動かそうとしたら「npm コマンドが見つかりません」

✓ 解決: winget install -e --id OpenJS.NodeJS.LTS でインストール → ターミナル再起動

❌ つまずき②:PowerShellの構文エラー

AIが出したコマンドをそのまま実行したらエラー(&の使い方が違う)

✓ 解決: コマンド先頭の & を削除、またはコマンドプロンプトで実行

❌ つまずき③:Googleの認証エラー

デプロイしようとしたら「ログインしていません」

✓ 解決: gcloud auth login でブラウザからログイン → プロジェクトID設定

❌ つまずき④:グラフが表示されない(最大の難関)

デプロイ成功したのにグラフが表示されない!

✓ 解決: CSP(セキュリティ設定)が厳しすぎた → 外部CDNを許可リストに追加

特に④が厄介でした。

セキュリティを強化するためにhelmetというライブラリを入れていたようですが、

設定が厳しすぎてGoogle FontsやTailwind CSSまでブロックしてしまっていたみたいです。

「動くはずなのに動かない」原因がセキュリティ設定だったとは…

 

エラーメッセージをよく読んで、AIに「このエラーの原因は?」と聞けば解決策を教えてくれます。

エラーメッセージは友達です!

 

費用は?

開発費用:0円で作れました。

 

💰 費用内訳

項目 費用
Google AI Studio(コード生成) 無料
Google Antigravity(コード修正) 無料
Google Cloud Run(サーバー) 無料枠内
Yahoo Finance API(データ取得) 無料
合計 0円

※ Cloud Runは月200万リクエストまで無料。個人利用なら十分すぎる枠です

運用上の注意点:

Cloud Runには無料枠がありますが、万が一のためにGoogle Cloud Consoleで予算アラートを設定しておくと安心です。

「月500円を超えたら通知」のように設定できます。



使ってみた感想

良かった点

・プログラミング未経験でも本格的なWebアプリが作れた

・エラーが出てもAIに聞けば解決策がわかる

・無料でここまでできるのは本当にすごい

・自分専用のツールを作れる達成感

 

難しかった点

・環境構築(Node.js、gcloudコマンドのインストール)が初心者には難関

・セキュリティ設定のバランスが難しい(厳しすぎると動かない)

・デプロイは何度もやり直しが必要だった

・エラーメッセージを読み解く力は多少必要

 

📊 難易度評価(5段階)

AIへの指示出し★★☆☆☆
 
環境構築★★★★☆
 
エラー対応★★★☆☆
 
デプロイ作業★★★★☆
 

環境構築とデプロイが山場。ここを乗り越えれば達成感あり!

こんな人におすすめ

・自分専用のツールを作りたい人

・プログラミングに興味はあるけど何から始めていいかわからない人

・AIの力を借りて何か形にしてみたい人

・投資関連のツールを自作したい人

 

まとめ

Google AI Studioを使えば、プログラミング未経験でも無料でWebアプリが作れる時代になりました。

 

今回学んだことは3つ:

①セキュリティは大事(でも設定しすぎると動かなくなる)

②エラーメッセージは友達(よく読むと解決策が書いてある)

③環境構築(Node.jsやCLIツールの準備)も基本AIがしてくれる時代

 

「自分でもアプリが作れた」という体験は、思った以上に楽しいものでした。

興味がある方はぜひチャレンジしてみてください!

 

今回作ったアプリはこちら:

etf-tracker-421439986771.asia-northeast1.run.app

 

今日も最後までお付き合いいただきありがとうございました。

 

【買ってよかった中国輸入品】静電センサーTTP223〜特徴は?使い道は?〜

📝 投稿: 🔄 更新:

318記事目(中国輸入品シリーズ)

 

こんばんは。いつも読んでいただきありがとうございます。

趣味で中国から面白そう・便利そうな商品を輸入して使ってみています。techemoです。

今日は最近購入した静電センサーTTP223の紹介です。

静電センサーTTP223

物理ボタンの代わりに使えるスイッチが売ってたので購入してみました。

なんと5個100円でこの機能!静電容量式なので機械的な摩耗もありません。

 

特徴は

・指で触れるだけで動作

静電容量式なので、軽く触れるだけでON/OFFが切り替わります

物理ボタンのような「押す」動作が不要で、スマートな操作感です

 

・セルフロック機能搭載

1回タッチでON、もう1回タッチでOFFのトグル動作が可能

マイコン側でトグル処理を書く必要がなく、回路設計がシンプルに

 

・とにかく安い(5個100円)

この機能でこの価格は驚きです。複数買って色々な用途に使えます

 

機械的接点がないため長寿命

物理スイッチのようなチャタリングがなく、摩耗もしません

防水カバーの下に設置することも可能です

 

・コンパクトサイズ(軽い)

基板サイズが小さいので、様々なプロジェクトに組み込みやすい



・はんだ付けが必要

ピンが付属していないので、自分ではんだ付けする必要があります

 

・感度が高い(触れなくても反応することも)

感度が非常に高く、近づけるだけで反応することがあります

用途によってはメリットにもデメリットにもなりますね

👆 タッチセンサー vs 物理ボタン

TTP223

チャタリングなし

✓ 摩耗しない

✓ 防水対応可

✓ トグル機能内蔵

価格: 100円

VS
物理ボタン

チャタリング発生

✗ 接点が摩耗

✗ 防水が難しい

✗ トグル処理が必要

価格: 10〜50円

耐久性・機能性重視ならタッチセンサーがおすすめ!

技術仕様

動作電圧: 2.0-5.5V(3.3Vでも5Vでも動きます)

出力方式: デジタル出力(HIGH/LOW)

動作モード: モーメンタリ / セルフロック(切替可能)

応答時間 約60ms(高速応答)

消費電力: 低消費電力設計

 

⚡ 接続方法(たった3本!)

VCC → 電源(3.3Vまたは5V)🔴
GND → グランド⚫
I/O (SIG) → デジタル入力ピン🟡

※I2Cではなくシンプルなデジタル出力なので配線が簡単!

🔄 2つの動作モード

📍 モーメンタリモード

触れている間だけON

離すとOFF

用途:押しボタン、トリガー

🔒 セルフロックモード

1回タッチ → ON維持

もう1回タッチ → OFF

用途:照明スイッチ、電源切替

※基板上のジャンパ設定で切り替え可能

使い道は

私は現在ラズパイPicoとIR送受信モジュールと組み合わせてリモコンを作成中です

物理ボタンだと押し心地やチャタリングが気になりますが、タッチセンサーならスマートに操作できます

 

他にもいろんな使い道が想定されます

 

・LEDライトのスイッチ

間接照明やデスクライトのON/OFF制御に最適

セルフロック機能でトグル処理不要

 

Arduinoプロジェクトの入力デバイス

ESP32やArduinoと組み合わせて様々なプロジェクトに

物理ボタンの代替として信頼性UP

 

・防水が必要な場所のスイッチ

アクリル板などで表面を覆えば、水回りでも使用可能

お風呂やキッチンのDIY

 

・家具への埋め込みスイッチ

鏡やテーブルに埋め込んで、タッチで照明制御

見た目がスッキリ、おしゃれな仕上がりに

 

💡 TTP223活用アイデア

💡

照明制御

📺

リモコン

🚿

防水スイッチ

🪞

スマートミラー

使い方は

①はんだ付け

ピンが付属していないので、まずピンヘッダをはんだ付けします

3ピンなのであっという間です



②配線

以下Raspberry Pi Pico側ピン⇒タッチセンサー側ピン

3.3V⇒VCC

GND⇒GND

GP2(任意のGPIO)⇒I/O

 

③動作モードの設定(必要に応じて)

基板上のジャンパ(A・Bパッド)で動作モードを切り替えられます

デフォルトはモーメンタリモードです

 

④コードの作成

シンプルなデジタル入力として読み取るだけ

特別なライブラリは不要です

 

📝 MicroPythonサンプルコード(クリックで展開)

from machine import Pin
import time

# タッチセンサーをGP15に接続
touch_sensor = Pin(15, Pin.IN)

while True:
    if touch_sensor.value() == 1:
        print("タッチされました!")
    time.sleep(0.1)

 

📝 Arduino サンプルコード(クリックで展開)

#define TOUCH_PIN 2
#define LED_PIN 13

void setup() {
  pinMode(TOUCH_PIN, INPUT);
  pinMode(LED_PIN, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int touchState = digitalRead(TOUCH_PIN);
  
  if (touchState == HIGH) {
    digitalWrite(LED_PIN, HIGH);
    Serial.println("タッチされました!");
  } else {
    digitalWrite(LED_PIN, LOW);
  }
  delay(100);
}

 

現在作成中のリモコンが完成したら、また記事にしたいと思います!

 

まとめ

TTP223タッチスイッチセンサーは100円で買える優秀なタッチセンサーです

 

はんだ付けというハードルはありますが、

それを乗り越えれば信頼性が高く、長寿命なスイッチが手に入ります

 

セルフロック機能のおかげでトグル処理を書く必要もなく、

防水対応も可能なので、DIYの幅が大きく広がります

 

ただし感度が高いので、触れなくても反応することがある点は注意が必要です

用途によっては基板から少し離れた場所にセンサー面を配置するなど工夫が必要かもしれません

 

物理ボタンに代わるスマートなスイッチを探している方は、ぜひ試してみてください!

 

今日も最後までお付き合いいただきありがとうございました。

私が買ってよかった商品はネットショップで販売できればと思っています。

似たようなものはAmazonでも購入できます。

 

 

【買ってよかった中国輸入品】Bluetoothカラオケスピーカー&マイクセット 〜特徴は?使い道は?〜

📝 投稿: 🔄 更新:

317記事目(中国輸入品シリーズ)

 

こんばんは。いつも読んでいただきありがとうございます。

趣味で中国から面白そう・便利そうな商品を輸入して使ってみています。techemoです。

今日は最近購入したBluetoothカラオケスピーカー&マイクセットの紹介です。

Bluetoothカラオケスピーカー&マイクセット

「家でカラオケしたいな~」と思っていたところ、

このセットを見つけました。小型なのにサブウーファー搭載で音が本格的!

 

特徴は

・小型ボディ(176g)で本格的な音響システム

独立サブウーファー+5W高周波ホーン×2基の3スピーカー構成

コンパクトなのにKTVレベルの迫力サウンドを実現しています

 

・3つの入力方式に対応

Bluetooth、TFカード(microSD)、USB

スマホからも音楽プレーヤーからも、好きな方法で再生できます

 

・Type-C充電に対応

最新の充電規格なので、スマホの充電器がそのまま使えます

専用ケーブルを探す必要がなくて便利!

 

・おしゃれなデザイン

ベージュカラーにレザー調ハンドル

インテリアにも馴染むデザインで、リビングに置いても違和感なし

 

・マイク付きでカラオケもOK

ワンクリックでミュート切替、マイクのボタン操作で声の高低を修正できる

カラオケアプリと組み合わせれば自宅がカラオケボックス

🔊 3スピーカー構成で迫力サウンド

🔈 高周波ホーン 5W × 2基
🔉 サブウーファー 独立駆動

高音域クリア × 低音域パワフル = KTVクオリティ

📱 3つの入力方式

📶
スマホから
ワイヤレス再生
💾
TFカード
microSD
直接再生
🔌
USBメモリを挿せる

技術仕様

スピーカー構成: 5W高周波ホーン×2 + 独立サブウーファー

接続方式: Bluetooth / TFカード / USB / AUX(3.5mm)

充電端子: Type-C

ライティング: RGB LEDライト(5モード)

マイク機能: ミュート切替、伴奏切替対応

カラー: ベージュ(レザー調ハンドル付き)

 

ライティング機能

カメラレベルのLED照明を搭載!パーティーを盛り上げる5つのモードがあります

 

✨ 5つのライティングモード

1 全色回転 パンクロマティック回転 🌈
2 交互点灯 色が交互に変化 🔄
3 グラデーション なめらかな色変化 🎨
4 全色呼吸 全色で明滅 💫
5 ライト呼吸 単色で明滅 💡

部屋を暗くすると雰囲気抜群!パーティーやイベントに最適

使い道は

私は主に家族でのカラオケパーティーに使っています

 

他にもいろんな使い道が想定されます

・ホームパーティーのBGMスピーカーとして

ライティング機能でパーティー気分を演出

Bluetooth接続でスマホから簡単に音楽再生

 

・子供の誕生日会で

カラオケ大会で盛り上がること間違いなし

カラフルなライトで子供たちも大興奮

 

一人カラオケの練習用に

カラオケアプリと組み合わせて自宅で練習

ワンクリックで伴奏モードに切り替えられるので便利

 

・キャンプやBBQで

コンパクトで持ち運びやすいので屋外イベントにも

レザー調ハンドルがおしゃれで持ちやすい

 

🎤 マイクのワンクリック機能

🔇

ミュート切替

ワンタッチで
音声ON/OFF

🎵

変声機能

声の高さを
調整

使い方は

①充電する

Type-Cケーブルで充電します

スマホの充電器がそのまま使えるので便利

 

②電源を入れる

電源ボタンを押してスピーカーを起動

 

③接続方法を選ぶ

お好みの方法で音源を接続します

Bluetoothの場合: スマホBluetooth設定から「Karaoke Speaker」を選択してペアリング
TFカード/USBの場合: 音楽ファイルを入れたメディアを挿入するだけで自動再生
AUXの場合: 3.5mmオーディオケーブルでデバイスと接続

④カラオケを楽しむ場合

テレビやモニターにスマホを接続(ミラーリングなど)

カラオケアプリを起動

マイクのワンクリックボタンで伴奏モードに切り替え

あとは歌うだけ!

 

⑤ライティングを楽しむ

ライトボタンを押すたびにモードが切り替わります

部屋を暗くすると雰囲気抜群です

 

まとめ

このBluetoothカラオケスピーカーは家庭用としてかなり優秀だと思います

 

📊 評価まとめ

✅ 良いところ
  • 小型なのに迫力の音質
  • 4つの入力方式で便利
  • ライティングが楽しい
  • Type-C充電対応
  • おしゃれなデザイン
⚠️ 注意点
  • 本格的なKTV機材には劣る
  • マイクの遅延が気になる場合も
  • 長時間使用でバッテリー消耗

小型ボディに3スピーカー構成を詰め込んでいるので、

サイズの割にはかなり迫力のある音が出ます

 

ライティング機能も5モードあって、パーティー気分を盛り上げてくれます

特にエフェクトで低い声で歌ったり高い声で話したりするだけでも笑いが生まれます

 

「家でカラオケしたい」という方にはちょうどいい選択肢だと思います

 

今日も最後までお付き合いいただきありがとうございました。

私が買ってよかった商品はネットショップで販売できればと思っています。

似たようなものはAmazonでも購入できます。

【買ってよかった中国輸入品】ArduinoUno多機能拡張ボード 〜特徴は?使い道は?〜

📝 投稿: 🔄 更新:

316記事目(中国輸入品シリーズ)

 

こんばんは。いつも読んでいただきありがとうございます。

趣味で中国から面白そう・便利そうな商品を輸入して使ってみています。techemoです。

今日は最近購入したArduinoUno多機能拡張ボードの紹介です。

ArduinounoUno拡張ボード

Arduino UNOで色々試したいなぁと思っていたところ、

このボードを見つけました。300円でこの機能は驚きです!

…と思ったのですが、実際に使ってみるとちょっと注意点がありました。

 

特徴は

・とにかく安い(300円)

Arduino学習用のシールドとしては破格の安さです

個別にパーツを揃えるより圧倒的にコスパが良い

 

・4桁7セグメントディスプレイ付き

74HC595シフトレジスタで駆動

時計やカウンター、温度表示などに使えます

 

・独立ボタン3個+LED4個+ブザー

基本的な入出力の学習がすぐにできます

配線不要でプログラミングに集中できるのが嬉しい

 

・可変抵抗(ボリューム)付き

アナログ入力の学習に最適

明るさ調整やサーボ角度制御の実験に

 

・拡張インターフェースが豊富

温度センサー、赤外線、Bluetooth、サーボなど

ただし、モジュールは別売り!(ここ重要)

 

⚠️ 購入前に知っておきたいこと

商品説明を見ると「多機能!」と思いますが、実際にボード上に実装されているのは一部だけです。温度センサーや赤外線受信、Bluetoothなどは接続端子があるだけで、モジュール自体は別途購入が必要です。

 

実装済み機能と別売り機能

ここが一番重要なポイントです!

商品説明の機能が全部使えると思って買うと「あれ?」となります

 

📦 実装済み vs 別売り 機能一覧

✅ すぐ使える(実装済み)

  • 4桁7セグメントディスプレイ
  • LED × 4個
  • タクトボタン × 3個
  • ブザー × 1個
  • 可変抵抗(3296)
  • リセットボタン

❌ 要追加購入(端子のみ)

商品説明の機能は半分くらいが「端子があるだけ」です

 

実装済み部品の詳細:

・7セグメントディスプレイ

74HC595シフトレジスタ(595チップ)で駆動

IOピンを節約しながら4桁表示が可能

 

・ボタン(S1〜S3)

デジタル入力の基礎学習に

デバウンス処理や割り込みの練習に最適

 

・3296精密可変抵抗

アナログ入力(A0)に接続済み

回転角度を数値化する実験がすぐできます

 

🔌 主な接続インターフェース

温度センサー LM35 / DS18B20用端子
赤外線受信 IR受信モジュール用端子
Bluetooth HC-05/06用端子
サーボ/センサー 3ピンコネクタ × 複数

※すべて端子のみ。モジュールは別途購入が必要です

使い道は

実装済み部品だけでできること】

 

・デジタル時計

7セグメントで時刻表示、ボタンで時刻設定、ブザーでアラーム

Arduino入門の定番プロジェクトがすぐ作れます

 

・ストップウォッチ/カウンター

ボタンでスタート/ストップ/リセット

7セグメントに計測値を表示

 

・簡易ゲーム

LEDを使った反射神経ゲーム

スコア表示+効果音付きで本格的に

 

・PWM/アナログ入力の学習

可変抵抗でLEDの明るさを調整

アナログ値を7セグメントに表示

 

📚 段階的学習プラン

Step 1: LED点灯 → デジタル出力の基礎

Step 2: ボタン入力 → デジタル入力の基礎

Step 3: ブザー → tone()関数でメロディ

Step 4: 可変抵抗 → アナログ入力

Step 5: 7セグメント → シフトレジスタ制御

Step 6: センサー追加 → IoTへ発展!

 

【モジュールを追加すると…】

 

・温度センサー(DS18B20)追加

室温モニター、温度データロガー

設定温度でブザーアラート

 

・赤外線受信モジュール追加

リモコン信号の解析・学習

カスタムリモコンの製作

 

Bluetoothモジュール追加

スマホからの遠隔制御

センサーデータの無線送信

 

私は過去に購入したセンサー類を接続して遊んでいます

モジュールを既に持っている人には便利なボードです

 

プログラミング(3桁タイマー)

さっそく7セグメントディスプレイを使ってタイマーを作ろうとしたのですが…

 

💥 ハードウェア不良発覚!

私が購入した個体では、7セグメントの左から3桁目が点灯しない不良がありました。

300円なので返品するほどでもないし…動く3桁でなんとかしてみます!

 

こういうのも中国輸入品あるあるですね

安いので多少の不良は覚悟の上です

 

📺 表示イメージ

正常な4桁の場合:

[1][2][3][4]

私のボード(3桁目不良):

[1][2][][4] ← 3桁目は常に消灯

タイマー表示例(M.SS形式):

1.30 → 1分30秒(「1. 3 _ 0」のように見える)

0.05 → 5秒

 

作戦:桁1=分、桁2=秒10の位、桁4=秒1の位

3桁目をスキップして表示する方式で対応しました

最大9分59秒まで計測できます

 

🔧 HW-262 ピン対応表

機能 ピン 備考
7セグメントLED
LATCH D4 74HC595 ラッチ
CLK D7 74HC595 クロック
DATA D8 74HC595 データ
桁1(左端) 0xF1 ✅ 動作OK
桁2 0xF2 ✅ 動作OK
桁3 0xF4 ❌ 不良
桁4(右端) 0xF8 ✅ 動作OK
ボタン
ボタン1 A1 アクティブLOW
ボタン2 A2 アクティブLOW
ボタン3 A3 アクティブLOW
その他
ブザー D3 INPUT/OUTPUT切替方式
LED1〜4 D13〜D10  
ポテンショメータ A0  

 

サンプルコード(3桁カウントダウンタイマー)

 

/*
 * HW-262 カウントダウンタイマー
 * 3桁表示版(桁3不良対応)
 * 
 * 表示形式: M.SS(桁1=分、桁2=秒10の位、桁4=秒1の位)
 */

// === 7セグメントLED ピン定義 ===
#define LATCH_PIN 4
#define CLK_PIN 7
#define DATA_PIN 8

// === ボタン・ブザー ピン定義 ===
#define BUTTON_1 A1
#define BUTTON_2 A2  
#define BUTTON_3 A3
#define BUZZER_PIN 3

// === 桁選択パターン(アクティブHIGH) ===
const byte DIGIT_1 = 0xF1;  // 左端(分)
const byte DIGIT_2 = 0xF2;  // 秒10の位
// const byte DIGIT_3 = 0xF4;  // 不良のため使用しない
const byte DIGIT_4 = 0xF8;  // 右端(秒1の位)

// === コモンアノード用数字パターン ===
const byte SEGMENT_MAP[] = {
  0xC0, 0xF9, 0xA4, 0xB0, 0x99,  // 0-4
  0x92, 0x82, 0xF8, 0x80, 0x90   // 5-9
};

// 小数点付き(分と秒の区切り用)
const byte SEGMENT_MAP_DP[] = {
  0x40, 0x79, 0x24, 0x30, 0x19,  // 0.-4.
  0x12, 0x02, 0x78, 0x00, 0x10   // 5.-9.
};

// === タイマー変数 ===
unsigned long totalSeconds = 60;
unsigned long remainingSeconds = 60;
unsigned long lastUpdateTime = 0;
unsigned long lastDisplayTime = 0;
bool isRunning = false;
bool isFinished = false;

// === 表示用変数 ===
byte displayDigits[3];
int currentDigit = 0;

void setup() {
  Serial.begin(115200);
  
  pinMode(LATCH_PIN, OUTPUT);
  pinMode(CLK_PIN, OUTPUT);
  pinMode(DATA_PIN, OUTPUT);
  
  pinMode(BUTTON_1, INPUT_PULLUP);
  pinMode(BUTTON_2, INPUT_PULLUP);
  pinMode(BUTTON_3, INPUT_PULLUP);
  pinMode(BUZZER_PIN, INPUT);
  
  Serial.println(F("カウントダウンタイマー(3桁版)"));
  Serial.println(F("ボタン1: スタート/停止"));
  Serial.println(F("ボタン2: リセット"));
  Serial.println(F("ボタン3: +1分"));
  
  updateDisplayDigits();
}

void loop() {
  refreshDisplay();
  handleButtons();
  
  if (isRunning && !isFinished) {
    if (millis() - lastUpdateTime >= 1000) {
      lastUpdateTime = millis();
      
      if (remainingSeconds > 0) {
        remainingSeconds--;
        updateDisplayDigits();
        
        if (remainingSeconds <= 10 && remainingSeconds > 0) {
          beep(800, 50);  // 残り10秒で警告音
        }
      } else {
        isRunning = false;
        isFinished = true;
      }
    }
  }
  
  if (isFinished) {
    playAlarm();
  }
}

void sendToDisplay(byte digitSelect, byte segmentData) {
  digitalWrite(LATCH_PIN, LOW);
  shiftOut(DATA_PIN, CLK_PIN, MSBFIRST, segmentData);
  shiftOut(DATA_PIN, CLK_PIN, MSBFIRST, digitSelect);
  digitalWrite(LATCH_PIN, HIGH);
}

void refreshDisplay() {
  if (millis() - lastDisplayTime < 3) return;
  lastDisplayTime = millis();
  
  // 終了時は点滅
  if (isFinished && (millis() / 300) % 2 == 0) {
    sendToDisplay(0x00, 0xFF);
    return;
  }
  
  switch (currentDigit) {
    case 0: sendToDisplay(DIGIT_1, displayDigits[0]); break;
    case 1: sendToDisplay(DIGIT_2, displayDigits[1]); break;
    case 2: sendToDisplay(DIGIT_4, displayDigits[2]); break;
  }
  
  currentDigit = (currentDigit + 1) % 3;
}

void updateDisplayDigits() {
  int minutes = remainingSeconds / 60;
  int seconds = remainingSeconds % 60;
  
  if (minutes > 9) minutes = 9;
  
  displayDigits[0] = SEGMENT_MAP_DP[minutes];
  displayDigits[1] = SEGMENT_MAP[seconds / 10];
  displayDigits[2] = SEGMENT_MAP[seconds % 10];
}

void handleButtons() {
  // ボタン1: スタート/停止
  if (digitalRead(BUTTON_1) == LOW) {
    delay(50);
    if (digitalRead(BUTTON_1) == LOW) {
      while (digitalRead(BUTTON_1) == LOW) refreshDisplay();
      
      if (!isFinished) {
        isRunning = !isRunning;
        if (isRunning) lastUpdateTime = millis();
        beep(isRunning ? 1200 : 800, 80);
      }
    }
  }
  
  // ボタン2: リセット
  if (digitalRead(BUTTON_2) == LOW) {
    delay(50);
    if (digitalRead(BUTTON_2) == LOW) {
      while (digitalRead(BUTTON_2) == LOW) refreshDisplay();
      
      isRunning = false;
      isFinished = false;
      remainingSeconds = totalSeconds;
      beep(1000, 80);
      updateDisplayDigits();
    }
  }
  
  // ボタン3: +1分
  if (digitalRead(BUTTON_3) == LOW) {
    delay(50);
    if (digitalRead(BUTTON_3) == LOW) {
      while (digitalRead(BUTTON_3) == LOW) refreshDisplay();
      
      if (!isRunning && !isFinished) {
        totalSeconds += 60;
        if (totalSeconds > 599) totalSeconds = 60;
        remainingSeconds = totalSeconds;
        beep(1500, 80);
        updateDisplayDigits();
      }
    }
  }
}

void beep(int frequency, int duration) {
  pinMode(BUZZER_PIN, OUTPUT);
  tone(BUZZER_PIN, frequency);
  delay(duration);
  noTone(BUZZER_PIN);
  pinMode(BUZZER_PIN, INPUT);
}

void playAlarm() {
  static unsigned long lastAlarmTime = 0;
  if (millis() - lastAlarmTime > 500) {
    lastAlarmTime = millis();
    beep(2000, 150);
  }
}

 

⏱️ タイマーの操作方法

ボタン 機能
ボタン1 (A1) スタート / 一時停止
ボタン2 (A2) リセット
ボタン3 (A3) +1分(停止中のみ、最大9分)

特徴:残り10秒で警告音、終了時に点滅+アラーム音

ハードウェア不良があっても工夫次第で使えます

これも電子工作の醍醐味ですね

 

使い方は

Arduino UNOに装着

ピンヘッダがArduino UNOに合わせて設計されているので

そのまま差し込むだけでOK

Arduino Mega等には非対応)

 

②サンプルコードで動作確認

まずはLED点滅やボタン入力から試してみましょう

7セグメントの制御は74HC595シフトレジスタの理解が必要です

 

③必要に応じてモジュールを追加

端子の仕様を確認して、対応するモジュールを接続

温度センサーならDS18B20がおすすめです

 

まとめ

Arduino多機能拡張ボード、300円という価格を考えれば十分アリです

 

ただし、商品説明の機能が全部使えるわけではない点は注意

実際に実装されているのは7セグ、ボタン、LED、ブザー、可変抵抗くらい

温度センサーや赤外線、Bluetooth端子があるだけです

 

さらに私の個体は7セグの3桁目が不良でした…

でも残りの3桁でタイマーを作れたので結果オーライです

 

💡 このボードをおすすめできる人

Arduino入門で基礎を学びたい人

✅ 配線なしでプログラミングに集中したい人

✅ 既にセンサー類を持っていて活用したい人

✅ 多少の不良は工夫で乗り越える気概がある人

❌ 買ってすぐ全機能を使いたい人

❌ ESP32など他のマイコンで使いたい人

 

私の感想としては、安いので仕方ないけど期待しすぎは禁物

でも、モジュールを既に持っていれば色々遊べて楽しいです

 

Arduino学習の「段階的な演習場」として考えれば、

300円の投資は十分価値があると思います

 

今日も最後までお付き合いいただきありがとうございました。

私が買ってよかった商品はネットショップで販売できればと思っています。

似たようなものはAmazonでも購入できます。

 

【買ってよかった中国輸入品】レゴもどき(互換品)機関車~品質は?互換性は?~

📝 投稿: 🔄 更新:

315記事目(中国輸入品シリーズ)

 

こんばんは。いつも読んでいただきありがとうございます。

趣味で中国から面白そう・便利そうな商品を輸入して使ってみています。techemoです。

今日は最近購入したレゴもどき(互換品)機関車ブロックの紹介です。

レゴもどき(互換品)機関車

子供の頃レゴで遊んだ記憶がある方も多いのではないでしょうか

本家レゴは高いので、互換品を試してみました。300円でこのクオリティは驚きです!

 

特徴は

・とにかく安い(300円)

本家レゴの似たようなセットは数千円〜1万円以上

互換品なら300円で蒸気機関車が作れます!

 

・基本パーツが多く汎用性がある

機関車専用パーツだけでなく、汎用的なブロックも多数入っています

組み替えて別のものを作ることも可能

 

・レゴと互換性あり

手持ちのレゴブロックと組み合わせて使えます

パーツが足りない時に互換品で補充するのもアリ

 

・説明書付きで初心者でも安心

組み立て手順が図解されていて迷いません

・一部部品に欠陥あり

後述しますが、一部のパーツに成形不良がありました

300円なので許容範囲ですが、完璧を求める方は注意



🧱 本家レゴ vs 互換品 比較

🇨🇳 互換品

価格: 300円 ✓

品質: △(個体差あり)

互換性: ○

精度: やや甘い

コスパ: ◎

VS
🇩🇰 本家レゴ

価格: 数千円〜 ✗

品質: ◎

互換性: ◎

精度: 高精度

コスパ: △

用途で選択:コスパ重視なら互換品、コレクション・品質重視なら本家

製品仕様

型番: 8971-4

パーツ数: 約110ピース程度

完成サイズ: 約15cm × 5cm × 5cm(長さ×幅×高さ)

対象年齢: 6歳以上

付属品: 説明書、パーツ

 

🔧 互換品を選ぶポイント

✓ スタッド間隔 → 8mm(レゴ規格と同じか確認)
✓ 高さ規格 → プレート3枚=ブロック1個
✓ ABS樹脂 → 素材が同じなら相性◎
△ 精度 → 個体差あり、わずかにユルい・キツいものも

組み立ててみた

さっそく開封して組み立ててみました

 

開封

袋にパーツがまとめて入っています

本家のように番号別に分かれていないので、パーツ探しが少し大変

 

②パーツ確認

黒を基調に、赤・グレー・黄色(クリア)のパーツ構成

蒸気機関車らしい重厚感のあるカラーリングです

 

③組み立て

説明書を見ながら約30分で完成

嵌合はやや固めのパーツとユルいパーツが混在していました

 

④完成!

クラシックな蒸気機関車のディテールがしっかり再現されています

煙突、運転席の窓、動輪など細部までよくできています



互換性は

結論:問題なく互換性あり

 

手持ちの本家レゴブロックと組み合わせてみましたが、問題なく接続できました

スタッド(突起)のサイズ、間隔ともにレゴ規格と同等です

 

ただし個体差があるようで、一部パーツは本家より少しユルい印象

逆にキツくて外しにくいパーツもありました

 

互換品同士の組み合わせ

他メーカーの互換品とも基本的に互換性があります

足りないパーツを別の互換品で補うことも可能

 

注意点

⚠️ 一部部品に欠陥がありました

 

今回購入した商品では以下の問題がありました

 

・成形不良パーツ

成形時に樹脂が足りずへこんでいて、うまく嵌まらないものがありました

 

・予備パーツなし

本家レゴには予備の小パーツが入っていますが、互換品にはありません

パーツを紛失すると代替が難しい場合も

 

⚠️ 購入前に知っておきたいこと

・品質にバラつきあり(当たり外れがある)

・説明書の印刷が粗い場合がある

・パーツ不足の可能性(私は問題なかった)

・300円なので期待値を下げておくのが吉

まとめ

レゴ互換品の機関車、300円でこのクオリティなら大満足です

 

確かに一部パーツに欠陥はありましたが、

本家の1/10以下の価格と考えれば十分許容範囲

 

レゴとの互換性もあるので、

パーツ補充や子供の練習用として使うのに最適だと思います

 

こんな人におすすめ

コスパ重視でブロック遊びを楽しみたい方

・手持ちのレゴパーツを増やしたい方

・多少の品質差は気にしない方

 

おすすめしない人

・完璧な品質を求める方

・コレクション目的の方

・小さな子供に与える場合(バリで怪我の可能性)

 

興味がある方はぜひ試してみてください

互換品はさすがに日本では購入できなさそうなので本家のレゴで遊んでください

今日も最後までお付き合いいただきありがとうございました。

私が買ってよかった商品はネットショップで販売できればと思っています。

 

【買ってよかった中国輸入品】ワイヤレスイヤホン交換用電池(SONY WF-1000XM4、WF-1000XM3)~交換方法は?結果は?~

📝 投稿: 🔄 更新:

314記事目(中国輸入品シリーズ)

 

こんばんは。いつも読んでいただきありがとうございます。

趣味で中国から面白そう・便利そうな商品を輸入して使ってみています。techemoです。

今日は最近購入したワイヤレスイヤホン交換用電池(ZeniPower Z55H)の紹介です。

ワイヤレスイヤホン交換用電(ZeniPowerZ55H)

WF-1000XM4の電池持ちが悪くなってきて「新しく買うか…」と悩んでいたところ、

この交換用電池セットを見つけました。たった600円で新品同様の電池持ちが復活するなんて驚きです!

 

特徴は

・とにかく安い(600円)

新品購入なら3万円以上、修理でも1万円前後かかることを考えると破格です

電池2個と専用工具のセットでこの価格は本当にありがたい

 

・純正品相当の電池付き

ZeniPowerは実はSONYの純正採用メーカーらしく品質は折り紙付き??

Z55HはXM4用、Z55はXM3用ですが、実は互換性があるようでXM3への試してみました

 

・専用工具付きで初心者でも安心

開封に必要な工具がセットになっているので別途購入不要

実は精密ドライバーでも代用可能ですが、専用工具の方が確実に開けられます



・動画での解説が豊富

YouTubeに交換方法の動画がたくさんアップされているので参考になります

初めてでも動画を見ながら作業すれば30分程度で完了します

 

 

🔋 電池交換前後の比較

交換前

連続再生: 0.5時間 😢

電池残量: すぐに減る

ストレス大 ⚠️

交換後

連続再生: 5時間 🎉

電池残量: 安定

快適 ✨

💰 たった600円で新品同様の性能に復活!

交換方法は(WF-1000XM4編)

WF-1000XM4の電池交換は少し手間がかかりますが、順を追って作業すれば大丈夫です

 

【必要なもの】

・ZeniPower Z55H電池セット

・↑の中の瞬間接着剤(重要!XM4は接着が必要)

・万力(あると便利)

 

🔧 WF-1000XM4 交換手順

1
万力でカバーをちょっとゆるめる
万力で壊れないようにすこしずつ力をかけていくと、パキッと音がしてカバーが少し空きます

2
できた隙間にピックを挿し込みカバーをあける
付属のピック(薄)を隙間に差し込み、慎重に開けていきます。2枚使って周囲をぐるっと開けたらカバーが開きます

3
電池の接着を剝がす
電池は黒い両面テープで上下の電極に固定されているので精密ドライバーなどの工具で慎重にはがしていきます。この際電極を傷つけないよう注意

4
古い電池を取り出す
電池は磁石でもくっついているのでピンセットなど掴んで引き抜きます

5
新しい電池を装着
Z55Hを正しい向きで差し込みます(+-に注意!)
6
瞬間接着剤で固定(重要!)
カバーの接合部に少量の接着剤を塗布して組み立てます

⚠️ WF-1000XM4は接着剤が必須です! 忘れるとカバーが固定できません

交換方法は(WF-1000XM3編)

WF-1000XM3の方がWF-1000XM4より交換が簡単です。接着剤も不要でお手軽!

 

【必要なもの】

・ZeniPower Z55H電池セット(Z55でも可)

・付属の専用工具のみ

 

🎯 WF-1000XM3 交換手順(より簡単!)

1
隙間にピックを挿し込みカバーをあける
万力なしでピックが刺さります

2
フロントカバーを外し、電池台のネジ外す
黒い両面テープでくっついているのでゆっくり開けます。精密ドライバーでネジを外すと裏に電池がくっついています

3
電池交換
両面テープで引っ付いている古い電池を慎重に抜いて、新しい電池を差し込むだけ

4
カバーを戻す
ねじ止めを忘れずに、カバーはパチッとはめ込むだけ!接着剤不要 ✨

😊 WF-1000XM3は接着剤不要! 両方持ってるならWF-1000XM3から始めるのがおすすめです

 

・XM3にZ55Hも使える?

実は互換性があるようで、Z55HもWF-1000XM3に使用可能?

Z55Hの方が電圧が若干高いようですが調べると交換してる方が多くいるので大丈夫かと思われます

 

注意点

⚠️ 作業前の注意事項

  • 自己責任での作業となります
    メーカー保証は完全に無効になります
  • 防水性能が低下する可能性
    特にWF-1000XM4は接着剤の塗布量によって防水性が変わります
  • 細かい部品の紛失に注意
    作業は明るい場所で、下に白い紙を敷いて行いましょう
  • 電池の向きを必ず確認
    逆に装着すると故障の原因になります
  • 接着剤は少量で
    WF-1000XM4の場合、接着剤を付けすぎると溢れて内部に入る恐れがあります

 

・作業時間の目安

WF-1000XM3:片耳10分程度(初心者でも15分)

WF-1000XM4:片耳15-20分程度(接着剤の乾燥時間含まず)

 

・動画を見ながらの作業がおすすめ

YouTubeで「WF-1000XM4 電池交換」「WF-1000XM3 battery replacement」などで検索すると、

詳しい解説動画がたくさん見つかります。初めての方は必ず動画を参考にしてください

 

まとめ

ZeniPower Z55H交換セットは、本当にコスパ最強の救世主でした

 

思ったより簡単に交換できて、たった600円で3万円のイヤホンが復活するなんて感動です

 

1ヶ月使用してみましたが、アプリで電池残量を確認しても問題なし、

電池の減りは新品購入時と同等レベルまで改善されました

 

専用工具なしでも交換は可能ですが、XM4は接着剤が必要なので

セット購入がおすすめです。工具があると確実に開けられます

 

WF-1000XMシリーズの電池持ちに悩んでいる方、

新品買い替え前にぜひ電池交換を試してみてください!

 

過去に紹介した中国輸入品が役に立ちました

techemo.hatenablog.com

techemo.hatenablog.com

 

今日も最後までお付き合いいただきありがとうございました。

私が買ってよかった商品はネットショップで販売できればと思っています。

似たようなものはAmazonでも購入できます。