port uf2boardとなるようにブートモードでrapsicoをつなぐがportが出てこん場合は
以下の設定変更を実施する必要あり
[ツール]→[Upload Method]の設定値 default uf2とする
[ツール]→[Operating system]の設定値 freeRTOS SMPとする
以下が書き込み成功したらserial monitorのportをCOMnにすると
どんな表示スピードでもOKとなる なんでやろ?
port uf2boardとなるようにブートモードでrapsicoをつなぐがportが出てこん場合は
以下の設定変更を実施する必要あり
[ツール]→[Upload Method]の設定値 default uf2とする
[ツール]→[Operating system]の設定値 freeRTOS SMPとする
以下が書き込み成功したらserial monitorのportをCOMnにすると
どんな表示スピードでもOKとなる なんでやろ?
#include <WiFi.h>
const char* ssid = "Pikara2-91d8e4";
const char* password = "";
WiFiServer server(80);
const int LED_PIN = LED_BUILTIN;
void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
Serial.println("Connecting...");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
server.begin();
}
void loop() {
WiFiClient client = server.available();
if (!client) {
return;
}
Serial.println("New Client");
String request = client.readStringUntil('\r');
Serial.println(request);
if (request.indexOf("/ON") >= 0) {
digitalWrite(LED_PIN, HIGH);
}
if (request.indexOf("/OFF") >= 0) {
digitalWrite(LED_PIN, LOW);
}
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();
client.println("<html><body>");
client.println("<h1>Pico W Web Server</h1>");
client.println("<a href=\"/ON\">LED ON</a><br>");
client.println("<a href=\"/OFF\">LED OFF</a>");
client.println("</body></html>");
delay(1000);
client.stop();
}
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
以下のリファクタが回答された
#include <WiFi.h>
const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";
WiFiServer server(80);
void sendPage(WiFiClient& client)
{
bool ledState = digitalRead(LED_BUILTIN);
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html; charset=UTF-8");
client.println("Connection: close");
client.println();
client.println("<!DOCTYPE html>");
client.println("<html>");
client.println("<head>");
client.println("<meta charset='utf-8'>");
client.println("<meta name='viewport' content='width=device-width,initial-scale=1'>");
client.println("<title>Pico W LED</title>");
client.println("</head>");
client.println("<body>");
client.println("<h1>Pico W Web Server</h1>");
if (ledState)
client.println("<p><b>LED = ON</b></p>");
else
client.println("<p><b>LED = OFF</b></p>");
client.println("<p><a href='/ON'><button style='font-size:24px'>LED ON</button></a></p>");
client.println("<p><a href='/OFF'><button style='font-size:24px'>LED OFF</button></a></p>");
client.println("</body>");
client.println("</html>");
}
void setup()
{
Serial.begin(115200);
delay(2000);
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
Serial.println();
Serial.println("Connecting WiFi...");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println("WiFi Connected");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
server.begin();
Serial.println("Server Started");
}
void loop()
{
WiFiClient client = server.available();
if (!client)
{
delay(1);
return;
}
Serial.println("Client Connected");
String request = "";
unsigned long timeout = millis();
while (client.connected() && millis() - timeout < 2000)
{
if (client.available())
{
char c = client.read();
request += c;
if (request.endsWith("\r\n\r\n"))
{
break;
}
}
}
Serial.println("----- REQUEST -----");
Serial.println(request);
if (request.indexOf("GET /ON") >= 0)
{
digitalWrite(LED_BUILTIN, HIGH);
client.println("HTTP/1.1 303 See Other");
client.println("Location: /");
client.println("Connection: close");
client.println();
}
else if (request.indexOf("GET /OFF") >= 0)
{
digitalWrite(LED_BUILTIN, LOW);
client.println("HTTP/1.1 303 See Other");
client.println("Location: /");
client.println("Connection: close");
client.println();
}
else
{
sendPage(client);
}
delay(10);
client.stop();
Serial.println("Client Disconnected");
}
ウィンドウズでonedriveに勝手にarduinoが割り当てられていたので
c:Arduinoフォルダを作って、preferenceで既定フォルダをそれにしてlibraryもコピーした
コンパイルも焼きこみも無事に終了 しかしdraw failed
そもそも購入したのがハズレでSDの読みが不安定(最後までカチとならん)
其の後、強く押し込む(ピンセットで)とカチとなった
#include <LGFX_AUTODETECT.hpp>
// チャタリング対策ずみコード チャット君に聞いた
package main
import (
"machine"
"time"
)
func main() {
button1 := machine.BUTTON_1
button1.Configure(machine.PinConfig{
Mode: machine.PinInput,
})
led := machine.LED
led.Configure(machine.PinConfig{
Mode: machine.PinOutput,
})
var changed bool
button1.SetInterrupt(machine.PinToggle, func(machine.Pin) {
changed = true
})
for {
if changed {
// チャタリングが収まるまで待つ
time.Sleep(30 * time.Millisecond)
led.Set(button1.Get())
changed = false
}
time.Sleep(1 * time.Millisecond)
}
}
lion(wmos)d1 esp w-room-02でいけた.asyncはだめのようだ。。。。チャットくんによるとRAMがたりんげな
esp32 dev module(devkit-c中華パチもん)でasyncばっちりでした
arduinoIDEめちゃ遅い、platformIOうごかん、micropython,ardupy,circuitpython全滅
しかしhttps://wiki.seeedstudio.com/ja/xiao_rp2040_microblocks/ microblocks偉大なり
https://qiita.com/ksakabe/items/3d8f97e6fe8b1122da72 イントロサイト
https://qiita.com/ksakabe/items/f14c89bdbeeadb3848ea にあるファームウエア群は
https://geoffg.net/picomite.html にある
https://qiita.com/ksakabe/items/f14c89bdbeeadb3848eaで各々の比較がある
とりあへずPicoMiteRP2040をいれてみた
teratermは115200baudにして、受信をauto、送信をcr+lfにした
HUMID コマンドは、デフォルトで上位モデルの「DHT22(AM2302)」を読み取る設定になっています。DHT11を使用する場合は、コマンドの末尾に 1(または , 1 や , DHT11)という引数を明示的に追加する必要があります。 [1, 2]1000% や 100% といった異常値として表示されてしまいます。' DHT11 センサー読み取りサンプル(修正版)
Dim FLOAT temp, humidity
Do
' ★ 末尾に「, 1」を足してDHT11モードに指定します
Device HUMID GP28, temp, humidity, 1
Print "Temperature: "; temp; " C"
Print "Humidity: "; humidity; " %"
Print "-------------------------"
' DHT11は連続読み取りに弱いため、少し長め(2秒)に待つのが確実です
Pause 2000
Loop
うごいた!そのほかhttp://blog.livedoor.jp/yokoshima_m/tag/MMBASICも参考になりそう。。。