2026年4月23日木曜日

ラズピコ TinyGo-dht/MMBasic

 package main

import (

"fmt"

"machine"

"time"

"tinygo.org/x/drivers/dht"

)


func main() {

// ボードに合わせて変更(Picoなら machine.GP2, Arduinoなら machine.D2等)

pin := machine.GP2

sensor := dht.New(pin, dht.DHT11)

fmt.Println("--- DHT11 Reading Start ---")

for {

// 多くのバージョンで共通して実装されている ReadRaw (または RawRead) を試すか

// 最新の標準インターフェースに基づいた Measurements を使用します。

// それでもエラーが出る場合は、ドライバのバージョンが極端に古い可能性があります。

temp, humid, err := sensor.Measurements()

if err != nil {

fmt.Printf("Read Error: %v\n", err)

} else {

fmt.Printf("Temp: %.1f°C  Humid: %.1f%%\n", float32(temp)/10, float32(humid)/10)

}

time.Sleep(10* time.Second)

}

}

 tinygo flash -target=pico -monitor . でコマンドプロンプトで確認できた

データ読み取りに10秒間隔で正常なデータがでるようになった

湿度は正確だが、温度やや高めに推移(購入個体の問題か。。。)

----------------------------------------------------------------------

https://yumeiroandroid.blog.fc2.com/blog-entry-374.html ここでLチカ成功

2026年4月19日日曜日

Kalumajs ssd1351-draft/tone OK/picow softAP hello server OK/

ドラフト中

npm i https://github.com/niklauslee/ssd1351

アナログIO

tone(0, 200); // Generate 200Hz tone on the GPIO PIN0

delay(1000); // Wait for 1000ms (1sec)

noTone(0); // Stop the tone on the pin 0

ーーーーーーーーーーーーーーーーーーーーーーーーーーー

https://kalumajs.org/docs/api/wifi にあるコードばっちりうごいた 将来的に、これにdhtをくみあわせたい 

-----------------------------------------------------------------------------------

 let { WiFi } = require('wifi')

let wifi = new WiFi()

let http = require('http')

console.log('Starting...')

wifi.wifiApMode({ssid: 'PicoHTTPServer', password: 'password' }, (err) => {

    if (err) {

        console.error('err', err);

        return;

    }

    console.log('access point running')

    var message = '<h1>Hello</h1>';

    var port = 80;

    console.log(port);

    var server = http.createServer((req, res) => {

        console.log('Request path: ' + req.url);

        res.writeHead(200, 'OK', {

            'Content-Type': 'text/html',

            'Content-Length': message.length,

        });

        res.write(message);

        res.end();

    });

    console.log(server);

    console.log(server._dev.ip);

    server.listen(port, function () {

    console.log('HTTP server listening on ', server._dev.ip, ' port: ', port);

    console.log(server);

    });

})


// Show client list every 10 sec.

let show_cli_interval = setInterval(() => {

        console.log("AP Client")

        var clients = wifi.getWifiApClients();

        console.log(clients);

    }, 10*1000);


// Stop server after 10 min

let close_interval = setTimeout(() => {

        wifi.disableWifiApMode();

        clearTimeout(show_cli_interval);

        console.log("WIFI AP is disabled");

    }, 600*1000);


// User can access HTTP server with "http://192.168.4.1/

2026年4月16日木曜日

Go and Mutex vs RWMutex

 Cutajar:: chap4 で変更だけlock/unlockでおこない読み出しはrlock/runlock

でやるとコア数だけ応答性が改善した

2026年4月2日木曜日

paiza cloudで外部公開サーバを立てる方法(golang)

 PaizaCloud で Go 言語の HTTP サーバを立てて外部からアクセスできるようにするには、

「0.0.0.0」で待ち受けることと、PaizaCloud のポート公開設定を行う必要があります。

以下に手順とサンプルコードを示します。

1. Go HTTP サーバのサンプルコード

package main

import (
	"fmt"
	"log"
	"net/http"
)

// ハンドラ関数
func helloHandler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintln(w, "Hello from Go HTTP Server on PaizaCloud!")
}

func main() {
	http.HandleFunc("/", helloHandler)

	// PaizaCloud では 0.0.0.0 で待ち受ける必要がある
	addr := "0.0.0.0:8080"

	log.Printf("Starting server on %s ...", addr)
	if err := http.ListenAndServe(addr, nil); err != nil {
		log.Fatalf("Server failed: %v", err)
	}
}

2. PaizaCloud 側の設定

  1. PaizaCloud のエディタで上記コードを作成(例: main.go)。
  2. ターミナルで以下を実行してビルド&実行:
    go run main.go
    
  3. PaizaCloud の右側メニューにある 「Port」または「公開ポート」設定 を開く。
  4. 8080 ポートを追加して公開する。
  5. 表示される 外部アクセス用 URL(例: https://<your-id>.paiza.....)にアクセスすると、ブラウザからサーバに接続できる。login-browerでurlを確認する!

3. 注意点

  • localhost や 127.0.0.1 では外部からアクセスできないため、必ず 0.0.0.0 を指定。
  • PaizaCloud の無料プランではサーバは一定時間で停止するため、長時間稼働には向きません。
  • HTTPS は PaizaCloud 側で自動的に付与されます(Go 側で TLS 設定不要)。

✅ この方法で、PaizaCloud 上の Go HTTP サーバを外部公開できます。