fstab もトラップ
糞設計のsystemdが軌道を途中で止めるのでなにもできなくなる
ESP32 のシリアルサーバー繋げと言うのか・。
とりあえず/etc/fstabはこうする
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 0
/dev/mmcblk0p2 / ext4 defaults,noatime 0 0
しかたねーので、esp32devモジュールでtelnetシリアルサーバー作って繋げておくことにする。
ほんとらずぱいくそくそ...
/* WiFiTelnetToSerial - Example Transparent UART to Telnet Server for ESP32 Copyright (c) 2017 Hristo Gochkov. All rights reserved. This file is part of the ESP32 WiFi library for Arduino environment. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include <WiFi.h> #include <WiFiMulti.h> #include <WiFi.h> #include <ESPmDNS.h> #include <WiFiUdp.h> #include <ArduinoOTA.h> WiFiMulti wifiMulti; //how many clients should be able to telnet to this ESP32 #define MAX_SRV_CLIENTS 1 const char* ssid = "xxxxxxxx"; const char* password = "xxxxxxxx"; WiFiServer server(23); WiFiClient serverClients[MAX_SRV_CLIENTS]; HardwareSerial Serial1(2); // UART1/Serial1 pins 16,17 // 17 tx // 16 rx void setup() { //start UART and the server Serial1.begin(115200); Serial.begin(115200); Serial.println("Booting"); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); while (WiFi.waitForConnectResult() != WL_CONNECTED) { Serial.println("Connection Failed! Rebooting..."); delay(5000); ESP.restart(); } ArduinoOTA.setHostname("myesp32"); ArduinoOTA .onStart([]() { String type; if (ArduinoOTA.getCommand() == U_FLASH) type = "sketch"; else // U_SPIFFS type = "filesystem"; // NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end() Serial.println("Start updating " + type); }) .onEnd([]() { Serial.println("\nEnd"); }) .onProgress([](unsigned int progress, unsigned int total) { Serial.printf("Progress: %u%%\r", (progress / (total / 100))); }) .onError([](ota_error_t error) { Serial.printf("Error[%u]: ", error); if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed"); else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed"); else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed"); else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed"); else if (error == OTA_END_ERROR) Serial.println("End Failed"); }); ArduinoOTA.begin(); server.begin(); server.setNoDelay(true); Serial.print("Ready! Use 'telnet "); Serial.print(WiFi.localIP()); Serial.println(" 23' to connect"); } void loop() { uint8_t i; ArduinoOTA.handle(); if (wifiMulti.run() == WL_CONNECTED) { //check if there are any new clients if (server.hasClient()){ for(i = 0; i < MAX_SRV_CLIENTS; i++){ //find free/disconnected spot if (!serverClients[i] || !serverClients[i].connected()){ if(serverClients[i]) serverClients[i].stop(); serverClients[i] = server.available(); if (!serverClients[i]) Serial.println("available broken"); Serial.print("New client: "); Serial.print(i); Serial.print(' '); Serial.println(serverClients[i].remoteIP()); break; } } if (i >= MAX_SRV_CLIENTS) { //no free/disconnected spot so reject server.available().stop(); } } //check clients for data for(i = 0; i < MAX_SRV_CLIENTS; i++){ if (serverClients[i] && serverClients[i].connected()){ if(serverClients[i].available()){ //get data from the telnet client and push it to the UART while(serverClients[i].available()) Serial1.write(serverClients[i].read()); } } else { if (serverClients[i]) { serverClients[i].stop(); } } } //check UART for data if(Serial1.available()){ size_t len = Serial1.available(); uint8_t sbuf[len]; Serial1.readBytes(sbuf, len); //push UART data to all connected telnet clients for(i = 0; i < MAX_SRV_CLIENTS; i++){ if (serverClients[i] && serverClients[i].connected()){ serverClients[i].write(sbuf, len); delay(1); } } } } else { Serial.println("WiFi not connected!"); for(i = 0; i < MAX_SRV_CLIENTS; i++) { if (serverClients[i]) serverClients[i].stop(); } delay(1000); } }
HiLetgo ESP32 ESP-32S NodeMCU開発ボード2.4GHz WiFi + Bluetoothデュアルモード
- 出版社/メーカー: HiLetgo
- メディア: オフィス用品
- この商品を含むブログを見る
ラブパイのカメラはトラップ。
mmal: No data received from sensor. Check all connections, including the Sunny one on the camera board
# vcgencmd get_camera
supported=1 detected=1
しかしこの現象 zero Wでしかみてないので
zero 刑でおこるのかな。
ついでに折れたSD差してるとすげえあつくなるので
サーミスタで監視したい。
あっ ESPはアナログポートあるザンスネ...
震度計追加
pythonしね
printにいらん スペース突っ込むなぼけ
3.0 では sep='' つけると回避できますらしいが
3.0とかクソ
仕方ないから
2.7
File "
print ,sep=''
^
はぁぁぁぁぁ????
しねしねしねしねしね
なんじゃこのくそげんごはぁぁぁぁぁぁぁぁぁぁぁぁ
rrdinfo /var/lib/rrd/mpu_x.rrd
filename = "/var/lib/rrd/mpu_x.rrd"
ds[mpu_x].last_ds = "78.873 "
こうなると rrdツールが描画してくれませんのでお怒りです。
python /root/mpu.py | sed -e 's/ //g'
しました。
あと
python /root/mpu.py | head +1
とかしても なんも出てこんのですが。
クソ言語ですね
mpu92/65 よいすね。
i2ctoolsかperl でアクセスしたいところ
■
00 * * * * raspistill -w 960 -h 720 -n -ex verylong -ifx none -o /var/www/html/`date +\%H`00.jpg 15 * * * * raspistill -w 960 -h 720 -n -ex verylong -ifx none -o /var/www/html/`date +\%H`15.jpg 30 * * * * raspistill -w 960 -h 720 -n -ex verylong -ifx none -o /var/www/html/`date +\%H`30.jpg 45 * * * * raspistill -w 960 -h 720 -n -ex verylong -ifx none -o /var/www/html/`date +\%H`45.jpg */15 * * * * raspistill -w 960 -h 720 -n -ex verylong -ifx none -o /var/www/html/image.jpg
cronが起動しないとおもったら、
raspistill が多重起動してただけの罠。