+2 голосов

Планирую собрать довольно штатное устройство для контроля температуры и влажности в помещении.

Приобрел для этих целей WiFi Slot к своему датчику влажности и температуры. Особенно радовала идея работать с JS как с Iskra JS.

Собрался писать код и не обнаружил собственно примеров работы с WiFi Slot на JS. Мне не хватает самых базовых скетчей, где есть пример подключения по WiFi с модуля. Я буду слать обычные пакеты с данными в теле запроса в формате JSON и скорее всего на Webhook Google Script App, как делал в прошлом проекте.

Проект и текущая первая же задача тут.
 

// Настраиваем интерфейс UART
Serial1.setup(115200);
 
// логин и пароль WiFi-сети
var SSID = 'Amperka.ru';
var PSWD = 'iskraJS';
 
var wifi = require('@amperka/wifi').setup(Serial1, function(err) {
  // подключаемся к Wi-Fi сети
  wifi.connect(SSID, PSWD, function(err) {
    print('Connected');
    // Выполняем запрос
    require('http').get('http://amperka.ru', function(res) {
      var response = '';
      res.on('data', function(d) { response += d; });
      res.on('close', function() { print(response); });
    });
  });
});
AT+RST
>AT+CWMODE=1
Connected
AT+CIPSTART=0,"TCP","amperka.ru",80
> 


Пока использовал следующие статьи:


Помогите найти материалы. Мне будут полезны любые работающие с WiFi скетчи на JS для WiFi Slot.

✅P.S.

В вот и решение вопроса из правильной статьи на espruino.com, которую и советовал найти Un_Ka:

const ssid = "ваш_ssid_сети";
const password = "ваш_пароль";

var wifi =require("Wifi");
wifi.connect(ssid,{password:password},function(e){
  if(e){
    console.log('error during connect:',e);
    wifi.disconnect();
  } else {
    console.log('connected to',ssid);
    wifi.stopAP();
    //wifi.save();
  }
});

Мне это решение подсказал ZAZ-965 с форума Амперки. Спасибо ему большое!
 

(12 баллов) 2 3 6
исправил
Пока нашел только статью про
Espruino WiFi - http://www.espruino.com/WiFi
и похожий по названию "Модуль Wi-Fi ESP8266 (ESP-01)" -
http://wiki.amperka.ru/%D0%BF%D1%80%D0%BE%D0%B4%D1%83%D0%BA%D1%82%D1%8B:esp8266-wifi-module?s[]=at&s[]=%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B

Уловил из описания модулей что сам по себе чип ESP8266EX во всех трех случаях, а уже его размещают в разную обвязку. Это нужно как минимум потому что для запуска программ этому чипу нужна внешняя память.

Я еще раз увидел комментарий что общение AT-командами идет по UART, но это в стандартной прошивке. В модуле WiFi Slot есть 2 аппаратных UART. Вопрос получается в том чтобы понять, а что же происходит когда прошита не AT прошивка, а под JS. Как в этом случае настраивается Wi-Fi.

Ну и соответственно является ли вышеуказанный мной код подходящим для ситуации где я не с Iskra JS на Troyka WiFi модуль с прошивкой под AT-команды стучусь, а программа заплевывается прямо на сам чип ESP8266EX и там обрабатывается.

Лично мое мнение, что нет. Только не нашел пока ни одного примера как по другому...

Пока пытаюсь залить программу на C++, но до сих пор этого не сделал, т.к. Arduino IDE вылетает при запуске. Пока не разобрался почему.

1 Ответ

+1 голос
 
Лучший ответ
На официальном сайте espruino поищите:http://www.espruino.com/
(3.1 тыс. баллов) 14 20 41
выбран
Все же если будут готовые решения под Amperka WiFi Slot - я был бы больше рад, т.к. пока я не знаю множества деталей работы разных контроллеров и не понимаю как вот так просто переписать скетч от того же Espruino WiFi под свои нужды.

Тут дело не в логике моей программы, тут надо понимать чем является сам Wi-Fi на слоте:
- Если он общается по UART, то какой у него адрес, как на него стучаться? Например для Troyka WiFi я указывал конкретные пины на которых будет создан Serial, а тут нет никаких пинов, все встроено.
- Как понять что прошито на чипе? Может быть Espruino IDE каким-то образом вводит в заблуждение что на моем модуле все готово для работы с JS? Вдруг мне нужно по инструкции перепрошивать свой модуль? Если да, то все равно есть вопросы..
- Например работают ли AT команды отдновременно с JS? Если нет, то почему библиотека для JS стучиться AT командами на чип ESP8266? Может ее нельзя использовать для WiFi Slot?

Вобщем вопросов из-за которых происходит недопонимание так много, что нужен хоть один реально работающий у других людей именно на WiFi Slot скетч
Вот правильная статья на espruino.com - https://www.espruino.com/EspruinoESP8266
Пример из статьи:
const ssid = "ваш_ssid_сети";
const password = "ваш_пароль";

var wifi =require("Wifi");
wifi.connect(ssid,{password:password},function(e){
  if(e){
    console.log('error during connect:',e);
    wifi.disconnect();
  } else {
    console.log('connected to',ssid);
    wifi.stopAP();
    //wifi.save();
  }
});

Мне подсказали это на форуме Амперки - http://forum.amperka.ru/threads/%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C-wifi-slot-%D0%BA-wifi.20747/#post-293540
Как я и думал AT командами стучаться когда на модуле прошито все для JS-интерпретатора не нужно. Так что @amperka/wi-fi не подходит для целей настройки именно WiFi Slot. С ним можно работать как с модулем ESP8266 WiFi
Спрыгивайте пока не поздно с JS и переходите туда где реальная тусовка.
Добро пожаловать на Бредборд! Сайт вопросов и ответов на тему Arduino, Raspberry Pi и хоббийной электроники в целом. Цель Бредборда — быть максимально полезным. Поэтому мы строго следим за соблюдением правил, боремся с холиворами и оффтопиком.

    За этот месяц ещё никого.

    ...