IoTと聞くとさもや新しい技術のように聞こえますが、基盤となる技術は30年以上前のイーサネットを使ったサーバクライアントモデルと何ら違いはありません。
1990年代、大きくて高価なサーバと接続し様々な通信を行なっていました。
その大きくて高価なサーバが、いまや親指程度の大きさのコンピュータとなり(しかも無線LANやBluetooth,液晶ディスプレイも付いている!)、家中のいろんなものに組み込むことができるようになったため、家中のいろんな物をサーバとして通信することができるようになっただけの話です。
家中のいろいろなものにつけられたサーバは、キーボードやマウスの入力ではなく、センサから得た値を入力として蓄積し、処理し、外部からのリクエストに従いデータとして返答しているにすぎません。
もちろん、サーバを一から作ることもできますし、データとして返すバイト列も完全にオリジナルにすることも可能ですが、そんな車輪の再発明をしなくても、たとえばWebサーバを使い、JSON形式でデータを返す仕組み(あるいはMQTTとか)を流用すれば、サーバやクライアントの構築が安価に簡単に(いかないこともありますが)済むだけの話です。
もちろん、自宅などに置いた小さなサーバに、宅外から接続することは簡単ではありません。
それはお察しの通り、自宅や企業に置いたサーバというのは、いろんな事情で外部からは接続できないようにしてあるからです。それが単にグローバルなIPアドレスが足りないからという理由かもしれませんし、セキュリティの都合かもしれません。
もちろん、ルータに組み込まれたNATの設定を行い、ポートフォワーディングとかIPマスカレードなどの処理を行えば、宅外から自宅内への通信も行えますが、すべての人がIoTの恩恵を享受するには敷居が高いわけです(誰もがルータの設定を行えるわけじゃないですよね)
なのでどのようにして解決しているのかというと、家の外、つまり公衆がアクセスできる場所にサーバをおき、自宅にある小さなサーバは、その大きなサーバと定期的に通信を行い、自宅の気温や明るさなどのデータを置いたり、あるいは外部サーバに置かれたデータ(「電気をつけろ」という処理要求もデータとして考えてください)を取り寄せて、それに応じて電気をつけたりしているだけの話です。
めちゃくちゃ難しい話にみえるかもしれませんが、実は全ては単純な要素の組み合わせにしかすぎません。
なので、あまり難しく考えず、シンプルに「どのようにしてつながっているのか」と考えてみて、どのようにお互いがつながっているのか整理してみるとわかりやすくなるのではないでしょうか。
2000年初頭は「ユビキタスコンピューティング」という言葉も流行りましたが(研究概念としては1990年代にはありました)、本質的な技術は一緒です。
家をIoTにするというアイデアも、2000年代にジョージア工科大学などが研究として行なっています。
組み込みのためのOSも、1980年代には東大の坂村先生がTRONの研究を開始され、その成果は多くの組み込み機器OSとして使われています。
アイデアという形では相当早い時期からあったのですが、それを実現できるハードウェアが存在しなかっただけの話です。
質問者さんの背景がわからないので何とも言えませんが、簡単にいわゆるIoTをやってみたいというのであれば、M5StackでIoTが簡単でいいのかな、という気はします。
ArduinoやRaspberry Piでもいいと思いますが、M5Stackの方がひとつの箱に全てがまとまっている上、単体でLCDやボタンなどの入出力が備わっていますし、センサとの接続もケーブル一本の上、ピンアサインに迷うこともないため、余計なトラブルは少ないかと思います。
M5Stack本体でセンサのデータを監視できる上、Webサーバにもなるので、任意のブラウザを使ってセンサの値を表示させたり、あるいはLEDなどを点灯させるということもできます。
開発言語もPython, C などのほか、UIFlow なども使えるので敷居は低いのではないでしょうか。
もちろん、M5Stackでもラズパイも何でも、自宅外から接続するとなると考えなければいけないことは当然あります。
でも、まずはローカルで簡単なIoT環境を実現させ、簡単な流れを把握してから宅外からの接続にチャレンジしてみても悪くはないと思いますが、いかがでしょうか。